documentation.html 892 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <title>Documentation</title>
  8. <style>/*!
  9. * Bootstrap v3.3.5 (http://getbootstrap.com)
  10. * Copyright 2011-2015 Twitter, Inc.
  11. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  12. */
  13. /*!
  14. * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=ca1d29b8c16a782c676c)
  15. * Config saved to config.json and https://gist.github.com/ca1d29b8c16a782c676c
  16. */
  17. /*!
  18. * Bootstrap v3.3.5 (http://getbootstrap.com)
  19. * Copyright 2011-2015 Twitter, Inc.
  20. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  21. */
  22. /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
  23. html {
  24. font-family: sans-serif;
  25. -ms-text-size-adjust: 100%;
  26. -webkit-text-size-adjust: 100%;
  27. }
  28. body {
  29. margin: 0;
  30. }
  31. article,
  32. aside,
  33. details,
  34. figcaption,
  35. figure,
  36. footer,
  37. header,
  38. hgroup,
  39. main,
  40. menu,
  41. nav,
  42. section,
  43. summary {
  44. display: block;
  45. }
  46. audio,
  47. canvas,
  48. progress,
  49. video {
  50. display: inline-block;
  51. vertical-align: baseline;
  52. }
  53. audio:not([controls]) {
  54. display: none;
  55. height: 0;
  56. }
  57. [hidden],
  58. template {
  59. display: none;
  60. }
  61. a {
  62. background-color: transparent;
  63. }
  64. a:active,
  65. a:hover {
  66. outline: 0;
  67. }
  68. abbr[title] {
  69. border-bottom: 1px dotted;
  70. }
  71. b,
  72. strong {
  73. font-weight: bold;
  74. }
  75. dfn {
  76. font-style: italic;
  77. }
  78. h1 {
  79. font-size: 2em;
  80. margin: 0.67em 0;
  81. }
  82. mark {
  83. background: #ff0;
  84. color: #000;
  85. }
  86. small {
  87. font-size: 80%;
  88. }
  89. sub,
  90. sup {
  91. font-size: 75%;
  92. line-height: 0;
  93. position: relative;
  94. vertical-align: baseline;
  95. }
  96. sup {
  97. top: -0.5em;
  98. }
  99. sub {
  100. bottom: -0.25em;
  101. }
  102. img {
  103. border: 0;
  104. }
  105. svg:not(:root) {
  106. overflow: hidden;
  107. }
  108. figure {
  109. margin: 1em 40px;
  110. }
  111. hr {
  112. -webkit-box-sizing: content-box;
  113. -moz-box-sizing: content-box;
  114. box-sizing: content-box;
  115. height: 0;
  116. }
  117. pre {
  118. overflow: auto;
  119. }
  120. code,
  121. kbd,
  122. pre,
  123. samp {
  124. font-family: monospace, monospace;
  125. font-size: 1em;
  126. }
  127. button,
  128. input,
  129. optgroup,
  130. select,
  131. textarea {
  132. color: inherit;
  133. font: inherit;
  134. margin: 0;
  135. }
  136. button {
  137. overflow: visible;
  138. }
  139. button,
  140. select {
  141. text-transform: none;
  142. }
  143. button,
  144. html input[type="button"],
  145. input[type="reset"],
  146. input[type="submit"] {
  147. -webkit-appearance: button;
  148. cursor: pointer;
  149. }
  150. button[disabled],
  151. html input[disabled] {
  152. cursor: default;
  153. }
  154. button::-moz-focus-inner,
  155. input::-moz-focus-inner {
  156. border: 0;
  157. padding: 0;
  158. }
  159. input {
  160. line-height: normal;
  161. }
  162. input[type="checkbox"],
  163. input[type="radio"] {
  164. -webkit-box-sizing: border-box;
  165. -moz-box-sizing: border-box;
  166. box-sizing: border-box;
  167. padding: 0;
  168. }
  169. input[type="number"]::-webkit-inner-spin-button,
  170. input[type="number"]::-webkit-outer-spin-button {
  171. height: auto;
  172. }
  173. input[type="search"] {
  174. -webkit-appearance: textfield;
  175. -webkit-box-sizing: content-box;
  176. -moz-box-sizing: content-box;
  177. box-sizing: content-box;
  178. }
  179. input[type="search"]::-webkit-search-cancel-button,
  180. input[type="search"]::-webkit-search-decoration {
  181. -webkit-appearance: none;
  182. }
  183. fieldset {
  184. border: 1px solid #c0c0c0;
  185. margin: 0 2px;
  186. padding: 0.35em 0.625em 0.75em;
  187. }
  188. legend {
  189. border: 0;
  190. padding: 0;
  191. }
  192. textarea {
  193. overflow: auto;
  194. }
  195. optgroup {
  196. font-weight: bold;
  197. }
  198. table {
  199. border-collapse: collapse;
  200. border-spacing: 0;
  201. }
  202. td,
  203. th {
  204. padding: 0;
  205. }
  206. /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
  207. @media print {
  208. *,
  209. *:before,
  210. *:after {
  211. background: transparent !important;
  212. color: #000 !important;
  213. -webkit-box-shadow: none !important;
  214. box-shadow: none !important;
  215. text-shadow: none !important;
  216. }
  217. a,
  218. a:visited {
  219. text-decoration: underline;
  220. }
  221. a[href]:after {
  222. content: " (" attr(href) ")";
  223. }
  224. abbr[title]:after {
  225. content: " (" attr(title) ")";
  226. }
  227. a[href^="#"]:after,
  228. a[href^="javascript:"]:after {
  229. content: "";
  230. }
  231. pre,
  232. blockquote {
  233. border: 1px solid #999;
  234. page-break-inside: avoid;
  235. }
  236. thead {
  237. display: table-header-group;
  238. }
  239. tr,
  240. img {
  241. page-break-inside: avoid;
  242. }
  243. img {
  244. max-width: 100% !important;
  245. }
  246. p,
  247. h2,
  248. h3 {
  249. orphans: 3;
  250. widows: 3;
  251. }
  252. h2,
  253. h3 {
  254. page-break-after: avoid;
  255. }
  256. .navbar {
  257. display: none;
  258. }
  259. .btn > .caret,
  260. .dropup > .btn > .caret {
  261. border-top-color: #000 !important;
  262. }
  263. .label {
  264. border: 1px solid #000;
  265. }
  266. .table {
  267. border-collapse: collapse !important;
  268. }
  269. .table td,
  270. .table th {
  271. background-color: #fff !important;
  272. }
  273. .table-bordered th,
  274. .table-bordered td {
  275. border: 1px solid #ddd !important;
  276. }
  277. }
  278. @font-face {
  279. font-family: 'Glyphicons Halflings';
  280. src: url('../fonts/glyphicons-halflings-regular.eot');
  281. src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
  282. }
  283. .glyphicon {
  284. position: relative;
  285. top: 1px;
  286. display: inline-block;
  287. font-family: 'Glyphicons Halflings';
  288. font-style: normal;
  289. font-weight: normal;
  290. line-height: 1;
  291. -webkit-font-smoothing: antialiased;
  292. -moz-osx-font-smoothing: grayscale;
  293. }
  294. .glyphicon-asterisk:before {
  295. content: "\2a";
  296. }
  297. .glyphicon-plus:before {
  298. content: "\2b";
  299. }
  300. .glyphicon-euro:before,
  301. .glyphicon-eur:before {
  302. content: "\20ac";
  303. }
  304. .glyphicon-minus:before {
  305. content: "\2212";
  306. }
  307. .glyphicon-cloud:before {
  308. content: "\2601";
  309. }
  310. .glyphicon-envelope:before {
  311. content: "\2709";
  312. }
  313. .glyphicon-pencil:before {
  314. content: "\270f";
  315. }
  316. .glyphicon-glass:before {
  317. content: "\e001";
  318. }
  319. .glyphicon-music:before {
  320. content: "\e002";
  321. }
  322. .glyphicon-search:before {
  323. content: "\e003";
  324. }
  325. .glyphicon-heart:before {
  326. content: "\e005";
  327. }
  328. .glyphicon-star:before {
  329. content: "\e006";
  330. }
  331. .glyphicon-star-empty:before {
  332. content: "\e007";
  333. }
  334. .glyphicon-user:before {
  335. content: "\e008";
  336. }
  337. .glyphicon-film:before {
  338. content: "\e009";
  339. }
  340. .glyphicon-th-large:before {
  341. content: "\e010";
  342. }
  343. .glyphicon-th:before {
  344. content: "\e011";
  345. }
  346. .glyphicon-th-list:before {
  347. content: "\e012";
  348. }
  349. .glyphicon-ok:before {
  350. content: "\e013";
  351. }
  352. .glyphicon-remove:before {
  353. content: "\e014";
  354. }
  355. .glyphicon-zoom-in:before {
  356. content: "\e015";
  357. }
  358. .glyphicon-zoom-out:before {
  359. content: "\e016";
  360. }
  361. .glyphicon-off:before {
  362. content: "\e017";
  363. }
  364. .glyphicon-signal:before {
  365. content: "\e018";
  366. }
  367. .glyphicon-cog:before {
  368. content: "\e019";
  369. }
  370. .glyphicon-trash:before {
  371. content: "\e020";
  372. }
  373. .glyphicon-home:before {
  374. content: "\e021";
  375. }
  376. .glyphicon-file:before {
  377. content: "\e022";
  378. }
  379. .glyphicon-time:before {
  380. content: "\e023";
  381. }
  382. .glyphicon-road:before {
  383. content: "\e024";
  384. }
  385. .glyphicon-download-alt:before {
  386. content: "\e025";
  387. }
  388. .glyphicon-download:before {
  389. content: "\e026";
  390. }
  391. .glyphicon-upload:before {
  392. content: "\e027";
  393. }
  394. .glyphicon-inbox:before {
  395. content: "\e028";
  396. }
  397. .glyphicon-play-circle:before {
  398. content: "\e029";
  399. }
  400. .glyphicon-repeat:before {
  401. content: "\e030";
  402. }
  403. .glyphicon-refresh:before {
  404. content: "\e031";
  405. }
  406. .glyphicon-list-alt:before {
  407. content: "\e032";
  408. }
  409. .glyphicon-lock:before {
  410. content: "\e033";
  411. }
  412. .glyphicon-flag:before {
  413. content: "\e034";
  414. }
  415. .glyphicon-headphones:before {
  416. content: "\e035";
  417. }
  418. .glyphicon-volume-off:before {
  419. content: "\e036";
  420. }
  421. .glyphicon-volume-down:before {
  422. content: "\e037";
  423. }
  424. .glyphicon-volume-up:before {
  425. content: "\e038";
  426. }
  427. .glyphicon-qrcode:before {
  428. content: "\e039";
  429. }
  430. .glyphicon-barcode:before {
  431. content: "\e040";
  432. }
  433. .glyphicon-tag:before {
  434. content: "\e041";
  435. }
  436. .glyphicon-tags:before {
  437. content: "\e042";
  438. }
  439. .glyphicon-book:before {
  440. content: "\e043";
  441. }
  442. .glyphicon-bookmark:before {
  443. content: "\e044";
  444. }
  445. .glyphicon-print:before {
  446. content: "\e045";
  447. }
  448. .glyphicon-camera:before {
  449. content: "\e046";
  450. }
  451. .glyphicon-font:before {
  452. content: "\e047";
  453. }
  454. .glyphicon-bold:before {
  455. content: "\e048";
  456. }
  457. .glyphicon-italic:before {
  458. content: "\e049";
  459. }
  460. .glyphicon-text-height:before {
  461. content: "\e050";
  462. }
  463. .glyphicon-text-width:before {
  464. content: "\e051";
  465. }
  466. .glyphicon-align-left:before {
  467. content: "\e052";
  468. }
  469. .glyphicon-align-center:before {
  470. content: "\e053";
  471. }
  472. .glyphicon-align-right:before {
  473. content: "\e054";
  474. }
  475. .glyphicon-align-justify:before {
  476. content: "\e055";
  477. }
  478. .glyphicon-list:before {
  479. content: "\e056";
  480. }
  481. .glyphicon-indent-left:before {
  482. content: "\e057";
  483. }
  484. .glyphicon-indent-right:before {
  485. content: "\e058";
  486. }
  487. .glyphicon-facetime-video:before {
  488. content: "\e059";
  489. }
  490. .glyphicon-picture:before {
  491. content: "\e060";
  492. }
  493. .glyphicon-map-marker:before {
  494. content: "\e062";
  495. }
  496. .glyphicon-adjust:before {
  497. content: "\e063";
  498. }
  499. .glyphicon-tint:before {
  500. content: "\e064";
  501. }
  502. .glyphicon-edit:before {
  503. content: "\e065";
  504. }
  505. .glyphicon-share:before {
  506. content: "\e066";
  507. }
  508. .glyphicon-check:before {
  509. content: "\e067";
  510. }
  511. .glyphicon-move:before {
  512. content: "\e068";
  513. }
  514. .glyphicon-step-backward:before {
  515. content: "\e069";
  516. }
  517. .glyphicon-fast-backward:before {
  518. content: "\e070";
  519. }
  520. .glyphicon-backward:before {
  521. content: "\e071";
  522. }
  523. .glyphicon-play:before {
  524. content: "\e072";
  525. }
  526. .glyphicon-pause:before {
  527. content: "\e073";
  528. }
  529. .glyphicon-stop:before {
  530. content: "\e074";
  531. }
  532. .glyphicon-forward:before {
  533. content: "\e075";
  534. }
  535. .glyphicon-fast-forward:before {
  536. content: "\e076";
  537. }
  538. .glyphicon-step-forward:before {
  539. content: "\e077";
  540. }
  541. .glyphicon-eject:before {
  542. content: "\e078";
  543. }
  544. .glyphicon-chevron-left:before {
  545. content: "\e079";
  546. }
  547. .glyphicon-chevron-right:before {
  548. content: "\e080";
  549. }
  550. .glyphicon-plus-sign:before {
  551. content: "\e081";
  552. }
  553. .glyphicon-minus-sign:before {
  554. content: "\e082";
  555. }
  556. .glyphicon-remove-sign:before {
  557. content: "\e083";
  558. }
  559. .glyphicon-ok-sign:before {
  560. content: "\e084";
  561. }
  562. .glyphicon-question-sign:before {
  563. content: "\e085";
  564. }
  565. .glyphicon-info-sign:before {
  566. content: "\e086";
  567. }
  568. .glyphicon-screenshot:before {
  569. content: "\e087";
  570. }
  571. .glyphicon-remove-circle:before {
  572. content: "\e088";
  573. }
  574. .glyphicon-ok-circle:before {
  575. content: "\e089";
  576. }
  577. .glyphicon-ban-circle:before {
  578. content: "\e090";
  579. }
  580. .glyphicon-arrow-left:before {
  581. content: "\e091";
  582. }
  583. .glyphicon-arrow-right:before {
  584. content: "\e092";
  585. }
  586. .glyphicon-arrow-up:before {
  587. content: "\e093";
  588. }
  589. .glyphicon-arrow-down:before {
  590. content: "\e094";
  591. }
  592. .glyphicon-share-alt:before {
  593. content: "\e095";
  594. }
  595. .glyphicon-resize-full:before {
  596. content: "\e096";
  597. }
  598. .glyphicon-resize-small:before {
  599. content: "\e097";
  600. }
  601. .glyphicon-exclamation-sign:before {
  602. content: "\e101";
  603. }
  604. .glyphicon-gift:before {
  605. content: "\e102";
  606. }
  607. .glyphicon-leaf:before {
  608. content: "\e103";
  609. }
  610. .glyphicon-fire:before {
  611. content: "\e104";
  612. }
  613. .glyphicon-eye-open:before {
  614. content: "\e105";
  615. }
  616. .glyphicon-eye-close:before {
  617. content: "\e106";
  618. }
  619. .glyphicon-warning-sign:before {
  620. content: "\e107";
  621. }
  622. .glyphicon-plane:before {
  623. content: "\e108";
  624. }
  625. .glyphicon-calendar:before {
  626. content: "\e109";
  627. }
  628. .glyphicon-random:before {
  629. content: "\e110";
  630. }
  631. .glyphicon-comment:before {
  632. content: "\e111";
  633. }
  634. .glyphicon-magnet:before {
  635. content: "\e112";
  636. }
  637. .glyphicon-chevron-up:before {
  638. content: "\e113";
  639. }
  640. .glyphicon-chevron-down:before {
  641. content: "\e114";
  642. }
  643. .glyphicon-retweet:before {
  644. content: "\e115";
  645. }
  646. .glyphicon-shopping-cart:before {
  647. content: "\e116";
  648. }
  649. .glyphicon-folder-close:before {
  650. content: "\e117";
  651. }
  652. .glyphicon-folder-open:before {
  653. content: "\e118";
  654. }
  655. .glyphicon-resize-vertical:before {
  656. content: "\e119";
  657. }
  658. .glyphicon-resize-horizontal:before {
  659. content: "\e120";
  660. }
  661. .glyphicon-hdd:before {
  662. content: "\e121";
  663. }
  664. .glyphicon-bullhorn:before {
  665. content: "\e122";
  666. }
  667. .glyphicon-bell:before {
  668. content: "\e123";
  669. }
  670. .glyphicon-certificate:before {
  671. content: "\e124";
  672. }
  673. .glyphicon-thumbs-up:before {
  674. content: "\e125";
  675. }
  676. .glyphicon-thumbs-down:before {
  677. content: "\e126";
  678. }
  679. .glyphicon-hand-right:before {
  680. content: "\e127";
  681. }
  682. .glyphicon-hand-left:before {
  683. content: "\e128";
  684. }
  685. .glyphicon-hand-up:before {
  686. content: "\e129";
  687. }
  688. .glyphicon-hand-down:before {
  689. content: "\e130";
  690. }
  691. .glyphicon-circle-arrow-right:before {
  692. content: "\e131";
  693. }
  694. .glyphicon-circle-arrow-left:before {
  695. content: "\e132";
  696. }
  697. .glyphicon-circle-arrow-up:before {
  698. content: "\e133";
  699. }
  700. .glyphicon-circle-arrow-down:before {
  701. content: "\e134";
  702. }
  703. .glyphicon-globe:before {
  704. content: "\e135";
  705. }
  706. .glyphicon-wrench:before {
  707. content: "\e136";
  708. }
  709. .glyphicon-tasks:before {
  710. content: "\e137";
  711. }
  712. .glyphicon-filter:before {
  713. content: "\e138";
  714. }
  715. .glyphicon-briefcase:before {
  716. content: "\e139";
  717. }
  718. .glyphicon-fullscreen:before {
  719. content: "\e140";
  720. }
  721. .glyphicon-dashboard:before {
  722. content: "\e141";
  723. }
  724. .glyphicon-paperclip:before {
  725. content: "\e142";
  726. }
  727. .glyphicon-heart-empty:before {
  728. content: "\e143";
  729. }
  730. .glyphicon-link:before {
  731. content: "\e144";
  732. }
  733. .glyphicon-phone:before {
  734. content: "\e145";
  735. }
  736. .glyphicon-pushpin:before {
  737. content: "\e146";
  738. }
  739. .glyphicon-usd:before {
  740. content: "\e148";
  741. }
  742. .glyphicon-gbp:before {
  743. content: "\e149";
  744. }
  745. .glyphicon-sort:before {
  746. content: "\e150";
  747. }
  748. .glyphicon-sort-by-alphabet:before {
  749. content: "\e151";
  750. }
  751. .glyphicon-sort-by-alphabet-alt:before {
  752. content: "\e152";
  753. }
  754. .glyphicon-sort-by-order:before {
  755. content: "\e153";
  756. }
  757. .glyphicon-sort-by-order-alt:before {
  758. content: "\e154";
  759. }
  760. .glyphicon-sort-by-attributes:before {
  761. content: "\e155";
  762. }
  763. .glyphicon-sort-by-attributes-alt:before {
  764. content: "\e156";
  765. }
  766. .glyphicon-unchecked:before {
  767. content: "\e157";
  768. }
  769. .glyphicon-expand:before {
  770. content: "\e158";
  771. }
  772. .glyphicon-collapse-down:before {
  773. content: "\e159";
  774. }
  775. .glyphicon-collapse-up:before {
  776. content: "\e160";
  777. }
  778. .glyphicon-log-in:before {
  779. content: "\e161";
  780. }
  781. .glyphicon-flash:before {
  782. content: "\e162";
  783. }
  784. .glyphicon-log-out:before {
  785. content: "\e163";
  786. }
  787. .glyphicon-new-window:before {
  788. content: "\e164";
  789. }
  790. .glyphicon-record:before {
  791. content: "\e165";
  792. }
  793. .glyphicon-save:before {
  794. content: "\e166";
  795. }
  796. .glyphicon-open:before {
  797. content: "\e167";
  798. }
  799. .glyphicon-saved:before {
  800. content: "\e168";
  801. }
  802. .glyphicon-import:before {
  803. content: "\e169";
  804. }
  805. .glyphicon-export:before {
  806. content: "\e170";
  807. }
  808. .glyphicon-send:before {
  809. content: "\e171";
  810. }
  811. .glyphicon-floppy-disk:before {
  812. content: "\e172";
  813. }
  814. .glyphicon-floppy-saved:before {
  815. content: "\e173";
  816. }
  817. .glyphicon-floppy-remove:before {
  818. content: "\e174";
  819. }
  820. .glyphicon-floppy-save:before {
  821. content: "\e175";
  822. }
  823. .glyphicon-floppy-open:before {
  824. content: "\e176";
  825. }
  826. .glyphicon-credit-card:before {
  827. content: "\e177";
  828. }
  829. .glyphicon-transfer:before {
  830. content: "\e178";
  831. }
  832. .glyphicon-cutlery:before {
  833. content: "\e179";
  834. }
  835. .glyphicon-header:before {
  836. content: "\e180";
  837. }
  838. .glyphicon-compressed:before {
  839. content: "\e181";
  840. }
  841. .glyphicon-earphone:before {
  842. content: "\e182";
  843. }
  844. .glyphicon-phone-alt:before {
  845. content: "\e183";
  846. }
  847. .glyphicon-tower:before {
  848. content: "\e184";
  849. }
  850. .glyphicon-stats:before {
  851. content: "\e185";
  852. }
  853. .glyphicon-sd-video:before {
  854. content: "\e186";
  855. }
  856. .glyphicon-hd-video:before {
  857. content: "\e187";
  858. }
  859. .glyphicon-subtitles:before {
  860. content: "\e188";
  861. }
  862. .glyphicon-sound-stereo:before {
  863. content: "\e189";
  864. }
  865. .glyphicon-sound-dolby:before {
  866. content: "\e190";
  867. }
  868. .glyphicon-sound-5-1:before {
  869. content: "\e191";
  870. }
  871. .glyphicon-sound-6-1:before {
  872. content: "\e192";
  873. }
  874. .glyphicon-sound-7-1:before {
  875. content: "\e193";
  876. }
  877. .glyphicon-copyright-mark:before {
  878. content: "\e194";
  879. }
  880. .glyphicon-registration-mark:before {
  881. content: "\e195";
  882. }
  883. .glyphicon-cloud-download:before {
  884. content: "\e197";
  885. }
  886. .glyphicon-cloud-upload:before {
  887. content: "\e198";
  888. }
  889. .glyphicon-tree-conifer:before {
  890. content: "\e199";
  891. }
  892. .glyphicon-tree-deciduous:before {
  893. content: "\e200";
  894. }
  895. .glyphicon-cd:before {
  896. content: "\e201";
  897. }
  898. .glyphicon-save-file:before {
  899. content: "\e202";
  900. }
  901. .glyphicon-open-file:before {
  902. content: "\e203";
  903. }
  904. .glyphicon-level-up:before {
  905. content: "\e204";
  906. }
  907. .glyphicon-copy:before {
  908. content: "\e205";
  909. }
  910. .glyphicon-paste:before {
  911. content: "\e206";
  912. }
  913. .glyphicon-alert:before {
  914. content: "\e209";
  915. }
  916. .glyphicon-equalizer:before {
  917. content: "\e210";
  918. }
  919. .glyphicon-king:before {
  920. content: "\e211";
  921. }
  922. .glyphicon-queen:before {
  923. content: "\e212";
  924. }
  925. .glyphicon-pawn:before {
  926. content: "\e213";
  927. }
  928. .glyphicon-bishop:before {
  929. content: "\e214";
  930. }
  931. .glyphicon-knight:before {
  932. content: "\e215";
  933. }
  934. .glyphicon-baby-formula:before {
  935. content: "\e216";
  936. }
  937. .glyphicon-tent:before {
  938. content: "\26fa";
  939. }
  940. .glyphicon-blackboard:before {
  941. content: "\e218";
  942. }
  943. .glyphicon-bed:before {
  944. content: "\e219";
  945. }
  946. .glyphicon-apple:before {
  947. content: "\f8ff";
  948. }
  949. .glyphicon-erase:before {
  950. content: "\e221";
  951. }
  952. .glyphicon-hourglass:before {
  953. content: "\231b";
  954. }
  955. .glyphicon-lamp:before {
  956. content: "\e223";
  957. }
  958. .glyphicon-duplicate:before {
  959. content: "\e224";
  960. }
  961. .glyphicon-piggy-bank:before {
  962. content: "\e225";
  963. }
  964. .glyphicon-scissors:before {
  965. content: "\e226";
  966. }
  967. .glyphicon-bitcoin:before {
  968. content: "\e227";
  969. }
  970. .glyphicon-btc:before {
  971. content: "\e227";
  972. }
  973. .glyphicon-xbt:before {
  974. content: "\e227";
  975. }
  976. .glyphicon-yen:before {
  977. content: "\00a5";
  978. }
  979. .glyphicon-jpy:before {
  980. content: "\00a5";
  981. }
  982. .glyphicon-ruble:before {
  983. content: "\20bd";
  984. }
  985. .glyphicon-rub:before {
  986. content: "\20bd";
  987. }
  988. .glyphicon-scale:before {
  989. content: "\e230";
  990. }
  991. .glyphicon-ice-lolly:before {
  992. content: "\e231";
  993. }
  994. .glyphicon-ice-lolly-tasted:before {
  995. content: "\e232";
  996. }
  997. .glyphicon-education:before {
  998. content: "\e233";
  999. }
  1000. .glyphicon-option-horizontal:before {
  1001. content: "\e234";
  1002. }
  1003. .glyphicon-option-vertical:before {
  1004. content: "\e235";
  1005. }
  1006. .glyphicon-menu-hamburger:before {
  1007. content: "\e236";
  1008. }
  1009. .glyphicon-modal-window:before {
  1010. content: "\e237";
  1011. }
  1012. .glyphicon-oil:before {
  1013. content: "\e238";
  1014. }
  1015. .glyphicon-grain:before {
  1016. content: "\e239";
  1017. }
  1018. .glyphicon-sunglasses:before {
  1019. content: "\e240";
  1020. }
  1021. .glyphicon-text-size:before {
  1022. content: "\e241";
  1023. }
  1024. .glyphicon-text-color:before {
  1025. content: "\e242";
  1026. }
  1027. .glyphicon-text-background:before {
  1028. content: "\e243";
  1029. }
  1030. .glyphicon-object-align-top:before {
  1031. content: "\e244";
  1032. }
  1033. .glyphicon-object-align-bottom:before {
  1034. content: "\e245";
  1035. }
  1036. .glyphicon-object-align-horizontal:before {
  1037. content: "\e246";
  1038. }
  1039. .glyphicon-object-align-left:before {
  1040. content: "\e247";
  1041. }
  1042. .glyphicon-object-align-vertical:before {
  1043. content: "\e248";
  1044. }
  1045. .glyphicon-object-align-right:before {
  1046. content: "\e249";
  1047. }
  1048. .glyphicon-triangle-right:before {
  1049. content: "\e250";
  1050. }
  1051. .glyphicon-triangle-left:before {
  1052. content: "\e251";
  1053. }
  1054. .glyphicon-triangle-bottom:before {
  1055. content: "\e252";
  1056. }
  1057. .glyphicon-triangle-top:before {
  1058. content: "\e253";
  1059. }
  1060. .glyphicon-console:before {
  1061. content: "\e254";
  1062. }
  1063. .glyphicon-superscript:before {
  1064. content: "\e255";
  1065. }
  1066. .glyphicon-subscript:before {
  1067. content: "\e256";
  1068. }
  1069. .glyphicon-menu-left:before {
  1070. content: "\e257";
  1071. }
  1072. .glyphicon-menu-right:before {
  1073. content: "\e258";
  1074. }
  1075. .glyphicon-menu-down:before {
  1076. content: "\e259";
  1077. }
  1078. .glyphicon-menu-up:before {
  1079. content: "\e260";
  1080. }
  1081. * {
  1082. -webkit-box-sizing: border-box;
  1083. -moz-box-sizing: border-box;
  1084. box-sizing: border-box;
  1085. }
  1086. *:before,
  1087. *:after {
  1088. -webkit-box-sizing: border-box;
  1089. -moz-box-sizing: border-box;
  1090. box-sizing: border-box;
  1091. }
  1092. html {
  1093. font-size: 10px;
  1094. -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  1095. }
  1096. body {
  1097. font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  1098. font-size: 14px;
  1099. line-height: 1.42857143;
  1100. color: #333333;
  1101. background-color: #ffffff;
  1102. }
  1103. input,
  1104. button,
  1105. select,
  1106. textarea {
  1107. font-family: inherit;
  1108. font-size: inherit;
  1109. line-height: inherit;
  1110. }
  1111. a {
  1112. color: #337ab7;
  1113. text-decoration: none;
  1114. }
  1115. a:hover,
  1116. a:focus {
  1117. color: #23527c;
  1118. text-decoration: underline;
  1119. }
  1120. a:focus {
  1121. outline: thin dotted;
  1122. outline: 5px auto -webkit-focus-ring-color;
  1123. outline-offset: -2px;
  1124. }
  1125. figure {
  1126. margin: 0;
  1127. }
  1128. img {
  1129. vertical-align: middle;
  1130. }
  1131. .img-responsive,
  1132. .thumbnail > img,
  1133. .thumbnail a > img,
  1134. .carousel-inner > .item > img,
  1135. .carousel-inner > .item > a > img {
  1136. display: block;
  1137. max-width: 100%;
  1138. height: auto;
  1139. }
  1140. .img-rounded {
  1141. border-radius: 6px;
  1142. }
  1143. .img-thumbnail {
  1144. padding: 4px;
  1145. line-height: 1.42857143;
  1146. background-color: #ffffff;
  1147. border: 1px solid #dddddd;
  1148. border-radius: 4px;
  1149. -webkit-transition: all 0.2s ease-in-out;
  1150. -o-transition: all 0.2s ease-in-out;
  1151. transition: all 0.2s ease-in-out;
  1152. display: inline-block;
  1153. max-width: 100%;
  1154. height: auto;
  1155. }
  1156. .img-circle {
  1157. border-radius: 50%;
  1158. }
  1159. hr {
  1160. margin-top: 20px;
  1161. margin-bottom: 20px;
  1162. border: 0;
  1163. border-top: 1px solid #eeeeee;
  1164. }
  1165. .sr-only {
  1166. position: absolute;
  1167. width: 1px;
  1168. height: 1px;
  1169. margin: -1px;
  1170. padding: 0;
  1171. overflow: hidden;
  1172. clip: rect(0, 0, 0, 0);
  1173. border: 0;
  1174. }
  1175. .sr-only-focusable:active,
  1176. .sr-only-focusable:focus {
  1177. position: static;
  1178. width: auto;
  1179. height: auto;
  1180. margin: 0;
  1181. overflow: visible;
  1182. clip: auto;
  1183. }
  1184. [role="button"] {
  1185. cursor: pointer;
  1186. }
  1187. h1,
  1188. h2,
  1189. h3,
  1190. h4,
  1191. h5,
  1192. h6,
  1193. .h1,
  1194. .h2,
  1195. .h3,
  1196. .h4,
  1197. .h5,
  1198. .h6 {
  1199. font-family: inherit;
  1200. font-weight: 500;
  1201. line-height: 1.1;
  1202. color: inherit;
  1203. }
  1204. h1 small,
  1205. h2 small,
  1206. h3 small,
  1207. h4 small,
  1208. h5 small,
  1209. h6 small,
  1210. .h1 small,
  1211. .h2 small,
  1212. .h3 small,
  1213. .h4 small,
  1214. .h5 small,
  1215. .h6 small,
  1216. h1 .small,
  1217. h2 .small,
  1218. h3 .small,
  1219. h4 .small,
  1220. h5 .small,
  1221. h6 .small,
  1222. .h1 .small,
  1223. .h2 .small,
  1224. .h3 .small,
  1225. .h4 .small,
  1226. .h5 .small,
  1227. .h6 .small {
  1228. font-weight: normal;
  1229. line-height: 1;
  1230. color: #777777;
  1231. }
  1232. h1,
  1233. .h1,
  1234. h2,
  1235. .h2,
  1236. h3,
  1237. .h3 {
  1238. margin-top: 20px;
  1239. margin-bottom: 10px;
  1240. }
  1241. h1 small,
  1242. .h1 small,
  1243. h2 small,
  1244. .h2 small,
  1245. h3 small,
  1246. .h3 small,
  1247. h1 .small,
  1248. .h1 .small,
  1249. h2 .small,
  1250. .h2 .small,
  1251. h3 .small,
  1252. .h3 .small {
  1253. font-size: 65%;
  1254. }
  1255. h4,
  1256. .h4,
  1257. h5,
  1258. .h5,
  1259. h6,
  1260. .h6 {
  1261. margin-top: 10px;
  1262. margin-bottom: 10px;
  1263. }
  1264. h4 small,
  1265. .h4 small,
  1266. h5 small,
  1267. .h5 small,
  1268. h6 small,
  1269. .h6 small,
  1270. h4 .small,
  1271. .h4 .small,
  1272. h5 .small,
  1273. .h5 .small,
  1274. h6 .small,
  1275. .h6 .small {
  1276. font-size: 75%;
  1277. }
  1278. h1,
  1279. .h1 {
  1280. font-size: 36px;
  1281. }
  1282. h2,
  1283. .h2 {
  1284. font-size: 30px;
  1285. }
  1286. h3,
  1287. .h3 {
  1288. font-size: 24px;
  1289. }
  1290. h4,
  1291. .h4 {
  1292. font-size: 18px;
  1293. }
  1294. h5,
  1295. .h5 {
  1296. font-size: 14px;
  1297. }
  1298. h6,
  1299. .h6 {
  1300. font-size: 12px;
  1301. }
  1302. p {
  1303. margin: 0 0 10px;
  1304. }
  1305. .lead {
  1306. margin-bottom: 20px;
  1307. font-size: 16px;
  1308. font-weight: 300;
  1309. line-height: 1.4;
  1310. }
  1311. @media (min-width: 768px) {
  1312. .lead {
  1313. font-size: 21px;
  1314. }
  1315. }
  1316. small,
  1317. .small {
  1318. font-size: 85%;
  1319. }
  1320. mark,
  1321. .mark {
  1322. background-color: #fcf8e3;
  1323. padding: .2em;
  1324. }
  1325. .text-left {
  1326. text-align: left;
  1327. }
  1328. .text-right {
  1329. text-align: right;
  1330. }
  1331. .text-center {
  1332. text-align: center;
  1333. }
  1334. .text-justify {
  1335. text-align: justify;
  1336. }
  1337. .text-nowrap {
  1338. white-space: nowrap;
  1339. }
  1340. .text-lowercase {
  1341. text-transform: lowercase;
  1342. }
  1343. .text-uppercase {
  1344. text-transform: uppercase;
  1345. }
  1346. .text-capitalize {
  1347. text-transform: capitalize;
  1348. }
  1349. .text-muted {
  1350. color: #777777;
  1351. }
  1352. .text-primary {
  1353. color: #337ab7;
  1354. }
  1355. a.text-primary:hover,
  1356. a.text-primary:focus {
  1357. color: #286090;
  1358. }
  1359. .text-success {
  1360. color: #3c763d;
  1361. }
  1362. a.text-success:hover,
  1363. a.text-success:focus {
  1364. color: #2b542c;
  1365. }
  1366. .text-info {
  1367. color: #31708f;
  1368. }
  1369. a.text-info:hover,
  1370. a.text-info:focus {
  1371. color: #245269;
  1372. }
  1373. .text-warning {
  1374. color: #8a6d3b;
  1375. }
  1376. a.text-warning:hover,
  1377. a.text-warning:focus {
  1378. color: #66512c;
  1379. }
  1380. .text-danger {
  1381. color: #a94442;
  1382. }
  1383. a.text-danger:hover,
  1384. a.text-danger:focus {
  1385. color: #843534;
  1386. }
  1387. .bg-primary {
  1388. color: #fff;
  1389. background-color: #337ab7;
  1390. }
  1391. a.bg-primary:hover,
  1392. a.bg-primary:focus {
  1393. background-color: #286090;
  1394. }
  1395. .bg-success {
  1396. background-color: #dff0d8;
  1397. }
  1398. a.bg-success:hover,
  1399. a.bg-success:focus {
  1400. background-color: #c1e2b3;
  1401. }
  1402. .bg-info {
  1403. background-color: #d9edf7;
  1404. }
  1405. a.bg-info:hover,
  1406. a.bg-info:focus {
  1407. background-color: #afd9ee;
  1408. }
  1409. .bg-warning {
  1410. background-color: #fcf8e3;
  1411. }
  1412. a.bg-warning:hover,
  1413. a.bg-warning:focus {
  1414. background-color: #f7ecb5;
  1415. }
  1416. .bg-danger {
  1417. background-color: #f2dede;
  1418. }
  1419. a.bg-danger:hover,
  1420. a.bg-danger:focus {
  1421. background-color: #e4b9b9;
  1422. }
  1423. .page-header {
  1424. padding-bottom: 9px;
  1425. margin: 40px 0 20px;
  1426. border-bottom: 1px solid #eeeeee;
  1427. }
  1428. ul,
  1429. ol {
  1430. margin-top: 0;
  1431. margin-bottom: 10px;
  1432. }
  1433. ul ul,
  1434. ol ul,
  1435. ul ol,
  1436. ol ol {
  1437. margin-bottom: 0;
  1438. }
  1439. .list-unstyled {
  1440. padding-left: 0;
  1441. list-style: none;
  1442. }
  1443. .list-inline {
  1444. padding-left: 0;
  1445. list-style: none;
  1446. margin-left: -5px;
  1447. }
  1448. .list-inline > li {
  1449. display: inline-block;
  1450. padding-left: 5px;
  1451. padding-right: 5px;
  1452. }
  1453. dl {
  1454. margin-top: 0;
  1455. margin-bottom: 20px;
  1456. }
  1457. dt,
  1458. dd {
  1459. line-height: 1.42857143;
  1460. }
  1461. dt {
  1462. font-weight: bold;
  1463. }
  1464. dd {
  1465. margin-left: 0;
  1466. }
  1467. @media (min-width: 768px) {
  1468. .dl-horizontal dt {
  1469. float: left;
  1470. width: 160px;
  1471. clear: left;
  1472. text-align: right;
  1473. overflow: hidden;
  1474. text-overflow: ellipsis;
  1475. white-space: nowrap;
  1476. }
  1477. .dl-horizontal dd {
  1478. margin-left: 180px;
  1479. }
  1480. }
  1481. abbr[title],
  1482. abbr[data-original-title] {
  1483. cursor: help;
  1484. border-bottom: 1px dotted #777777;
  1485. }
  1486. .initialism {
  1487. font-size: 90%;
  1488. text-transform: uppercase;
  1489. }
  1490. blockquote {
  1491. padding: 10px 20px;
  1492. margin: 0 0 20px;
  1493. font-size: 17.5px;
  1494. border-left: 5px solid #eeeeee;
  1495. }
  1496. blockquote p:last-child,
  1497. blockquote ul:last-child,
  1498. blockquote ol:last-child {
  1499. margin-bottom: 0;
  1500. }
  1501. blockquote footer,
  1502. blockquote small,
  1503. blockquote .small {
  1504. display: block;
  1505. font-size: 80%;
  1506. line-height: 1.42857143;
  1507. color: #777777;
  1508. }
  1509. blockquote footer:before,
  1510. blockquote small:before,
  1511. blockquote .small:before {
  1512. content: '\2014 \00A0';
  1513. }
  1514. .blockquote-reverse,
  1515. blockquote.pull-right {
  1516. padding-right: 15px;
  1517. padding-left: 0;
  1518. border-right: 5px solid #eeeeee;
  1519. border-left: 0;
  1520. text-align: right;
  1521. }
  1522. .blockquote-reverse footer:before,
  1523. blockquote.pull-right footer:before,
  1524. .blockquote-reverse small:before,
  1525. blockquote.pull-right small:before,
  1526. .blockquote-reverse .small:before,
  1527. blockquote.pull-right .small:before {
  1528. content: '';
  1529. }
  1530. .blockquote-reverse footer:after,
  1531. blockquote.pull-right footer:after,
  1532. .blockquote-reverse small:after,
  1533. blockquote.pull-right small:after,
  1534. .blockquote-reverse .small:after,
  1535. blockquote.pull-right .small:after {
  1536. content: '\00A0 \2014';
  1537. }
  1538. address {
  1539. margin-bottom: 20px;
  1540. font-style: normal;
  1541. line-height: 1.42857143;
  1542. }
  1543. code,
  1544. kbd,
  1545. pre,
  1546. samp {
  1547. font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
  1548. }
  1549. code {
  1550. padding: 2px 4px;
  1551. font-size: 90%;
  1552. color: #c7254e;
  1553. background-color: #f9f2f4;
  1554. border-radius: 4px;
  1555. }
  1556. kbd {
  1557. padding: 2px 4px;
  1558. font-size: 90%;
  1559. color: #ffffff;
  1560. background-color: #333333;
  1561. border-radius: 3px;
  1562. -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
  1563. box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
  1564. }
  1565. kbd kbd {
  1566. padding: 0;
  1567. font-size: 100%;
  1568. font-weight: bold;
  1569. -webkit-box-shadow: none;
  1570. box-shadow: none;
  1571. }
  1572. pre {
  1573. display: block;
  1574. padding: 9.5px;
  1575. margin: 0 0 10px;
  1576. font-size: 13px;
  1577. line-height: 1.42857143;
  1578. word-break: break-all;
  1579. word-wrap: break-word;
  1580. color: #333333;
  1581. background-color: #f5f5f5;
  1582. border: 1px solid #cccccc;
  1583. border-radius: 4px;
  1584. }
  1585. pre code {
  1586. padding: 0;
  1587. font-size: inherit;
  1588. color: inherit;
  1589. white-space: pre-wrap;
  1590. background-color: transparent;
  1591. border-radius: 0;
  1592. }
  1593. .pre-scrollable {
  1594. max-height: 340px;
  1595. overflow-y: scroll;
  1596. }
  1597. .container {
  1598. margin-right: auto;
  1599. margin-left: auto;
  1600. padding-left: 15px;
  1601. padding-right: 15px;
  1602. }
  1603. @media (min-width: 768px) {
  1604. .container {
  1605. width: 750px;
  1606. }
  1607. }
  1608. @media (min-width: 992px) {
  1609. .container {
  1610. width: 970px;
  1611. }
  1612. }
  1613. @media (min-width: 1200px) {
  1614. .container {
  1615. width: 1170px;
  1616. }
  1617. }
  1618. .container-fluid {
  1619. margin-right: auto;
  1620. margin-left: auto;
  1621. padding-left: 15px;
  1622. padding-right: 15px;
  1623. }
  1624. .row {
  1625. margin-left: -15px;
  1626. margin-right: -15px;
  1627. }
  1628. .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
  1629. position: relative;
  1630. min-height: 1px;
  1631. padding-left: 15px;
  1632. padding-right: 15px;
  1633. }
  1634. .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
  1635. float: left;
  1636. }
  1637. .col-xs-12 {
  1638. width: 100%;
  1639. }
  1640. .col-xs-11 {
  1641. width: 91.66666667%;
  1642. }
  1643. .col-xs-10 {
  1644. width: 83.33333333%;
  1645. }
  1646. .col-xs-9 {
  1647. width: 75%;
  1648. }
  1649. .col-xs-8 {
  1650. width: 66.66666667%;
  1651. }
  1652. .col-xs-7 {
  1653. width: 58.33333333%;
  1654. }
  1655. .col-xs-6 {
  1656. width: 50%;
  1657. }
  1658. .col-xs-5 {
  1659. width: 41.66666667%;
  1660. }
  1661. .col-xs-4 {
  1662. width: 33.33333333%;
  1663. }
  1664. .col-xs-3 {
  1665. width: 25%;
  1666. }
  1667. .col-xs-2 {
  1668. width: 16.66666667%;
  1669. }
  1670. .col-xs-1 {
  1671. width: 8.33333333%;
  1672. }
  1673. .col-xs-pull-12 {
  1674. right: 100%;
  1675. }
  1676. .col-xs-pull-11 {
  1677. right: 91.66666667%;
  1678. }
  1679. .col-xs-pull-10 {
  1680. right: 83.33333333%;
  1681. }
  1682. .col-xs-pull-9 {
  1683. right: 75%;
  1684. }
  1685. .col-xs-pull-8 {
  1686. right: 66.66666667%;
  1687. }
  1688. .col-xs-pull-7 {
  1689. right: 58.33333333%;
  1690. }
  1691. .col-xs-pull-6 {
  1692. right: 50%;
  1693. }
  1694. .col-xs-pull-5 {
  1695. right: 41.66666667%;
  1696. }
  1697. .col-xs-pull-4 {
  1698. right: 33.33333333%;
  1699. }
  1700. .col-xs-pull-3 {
  1701. right: 25%;
  1702. }
  1703. .col-xs-pull-2 {
  1704. right: 16.66666667%;
  1705. }
  1706. .col-xs-pull-1 {
  1707. right: 8.33333333%;
  1708. }
  1709. .col-xs-pull-0 {
  1710. right: auto;
  1711. }
  1712. .col-xs-push-12 {
  1713. left: 100%;
  1714. }
  1715. .col-xs-push-11 {
  1716. left: 91.66666667%;
  1717. }
  1718. .col-xs-push-10 {
  1719. left: 83.33333333%;
  1720. }
  1721. .col-xs-push-9 {
  1722. left: 75%;
  1723. }
  1724. .col-xs-push-8 {
  1725. left: 66.66666667%;
  1726. }
  1727. .col-xs-push-7 {
  1728. left: 58.33333333%;
  1729. }
  1730. .col-xs-push-6 {
  1731. left: 50%;
  1732. }
  1733. .col-xs-push-5 {
  1734. left: 41.66666667%;
  1735. }
  1736. .col-xs-push-4 {
  1737. left: 33.33333333%;
  1738. }
  1739. .col-xs-push-3 {
  1740. left: 25%;
  1741. }
  1742. .col-xs-push-2 {
  1743. left: 16.66666667%;
  1744. }
  1745. .col-xs-push-1 {
  1746. left: 8.33333333%;
  1747. }
  1748. .col-xs-push-0 {
  1749. left: auto;
  1750. }
  1751. .col-xs-offset-12 {
  1752. margin-left: 100%;
  1753. }
  1754. .col-xs-offset-11 {
  1755. margin-left: 91.66666667%;
  1756. }
  1757. .col-xs-offset-10 {
  1758. margin-left: 83.33333333%;
  1759. }
  1760. .col-xs-offset-9 {
  1761. margin-left: 75%;
  1762. }
  1763. .col-xs-offset-8 {
  1764. margin-left: 66.66666667%;
  1765. }
  1766. .col-xs-offset-7 {
  1767. margin-left: 58.33333333%;
  1768. }
  1769. .col-xs-offset-6 {
  1770. margin-left: 50%;
  1771. }
  1772. .col-xs-offset-5 {
  1773. margin-left: 41.66666667%;
  1774. }
  1775. .col-xs-offset-4 {
  1776. margin-left: 33.33333333%;
  1777. }
  1778. .col-xs-offset-3 {
  1779. margin-left: 25%;
  1780. }
  1781. .col-xs-offset-2 {
  1782. margin-left: 16.66666667%;
  1783. }
  1784. .col-xs-offset-1 {
  1785. margin-left: 8.33333333%;
  1786. }
  1787. .col-xs-offset-0 {
  1788. margin-left: 0%;
  1789. }
  1790. @media (min-width: 768px) {
  1791. .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
  1792. float: left;
  1793. }
  1794. .col-sm-12 {
  1795. width: 100%;
  1796. }
  1797. .col-sm-11 {
  1798. width: 91.66666667%;
  1799. }
  1800. .col-sm-10 {
  1801. width: 83.33333333%;
  1802. }
  1803. .col-sm-9 {
  1804. width: 75%;
  1805. }
  1806. .col-sm-8 {
  1807. width: 66.66666667%;
  1808. }
  1809. .col-sm-7 {
  1810. width: 58.33333333%;
  1811. }
  1812. .col-sm-6 {
  1813. width: 50%;
  1814. }
  1815. .col-sm-5 {
  1816. width: 41.66666667%;
  1817. }
  1818. .col-sm-4 {
  1819. width: 33.33333333%;
  1820. }
  1821. .col-sm-3 {
  1822. width: 25%;
  1823. }
  1824. .col-sm-2 {
  1825. width: 16.66666667%;
  1826. }
  1827. .col-sm-1 {
  1828. width: 8.33333333%;
  1829. }
  1830. .col-sm-pull-12 {
  1831. right: 100%;
  1832. }
  1833. .col-sm-pull-11 {
  1834. right: 91.66666667%;
  1835. }
  1836. .col-sm-pull-10 {
  1837. right: 83.33333333%;
  1838. }
  1839. .col-sm-pull-9 {
  1840. right: 75%;
  1841. }
  1842. .col-sm-pull-8 {
  1843. right: 66.66666667%;
  1844. }
  1845. .col-sm-pull-7 {
  1846. right: 58.33333333%;
  1847. }
  1848. .col-sm-pull-6 {
  1849. right: 50%;
  1850. }
  1851. .col-sm-pull-5 {
  1852. right: 41.66666667%;
  1853. }
  1854. .col-sm-pull-4 {
  1855. right: 33.33333333%;
  1856. }
  1857. .col-sm-pull-3 {
  1858. right: 25%;
  1859. }
  1860. .col-sm-pull-2 {
  1861. right: 16.66666667%;
  1862. }
  1863. .col-sm-pull-1 {
  1864. right: 8.33333333%;
  1865. }
  1866. .col-sm-pull-0 {
  1867. right: auto;
  1868. }
  1869. .col-sm-push-12 {
  1870. left: 100%;
  1871. }
  1872. .col-sm-push-11 {
  1873. left: 91.66666667%;
  1874. }
  1875. .col-sm-push-10 {
  1876. left: 83.33333333%;
  1877. }
  1878. .col-sm-push-9 {
  1879. left: 75%;
  1880. }
  1881. .col-sm-push-8 {
  1882. left: 66.66666667%;
  1883. }
  1884. .col-sm-push-7 {
  1885. left: 58.33333333%;
  1886. }
  1887. .col-sm-push-6 {
  1888. left: 50%;
  1889. }
  1890. .col-sm-push-5 {
  1891. left: 41.66666667%;
  1892. }
  1893. .col-sm-push-4 {
  1894. left: 33.33333333%;
  1895. }
  1896. .col-sm-push-3 {
  1897. left: 25%;
  1898. }
  1899. .col-sm-push-2 {
  1900. left: 16.66666667%;
  1901. }
  1902. .col-sm-push-1 {
  1903. left: 8.33333333%;
  1904. }
  1905. .col-sm-push-0 {
  1906. left: auto;
  1907. }
  1908. .col-sm-offset-12 {
  1909. margin-left: 100%;
  1910. }
  1911. .col-sm-offset-11 {
  1912. margin-left: 91.66666667%;
  1913. }
  1914. .col-sm-offset-10 {
  1915. margin-left: 83.33333333%;
  1916. }
  1917. .col-sm-offset-9 {
  1918. margin-left: 75%;
  1919. }
  1920. .col-sm-offset-8 {
  1921. margin-left: 66.66666667%;
  1922. }
  1923. .col-sm-offset-7 {
  1924. margin-left: 58.33333333%;
  1925. }
  1926. .col-sm-offset-6 {
  1927. margin-left: 50%;
  1928. }
  1929. .col-sm-offset-5 {
  1930. margin-left: 41.66666667%;
  1931. }
  1932. .col-sm-offset-4 {
  1933. margin-left: 33.33333333%;
  1934. }
  1935. .col-sm-offset-3 {
  1936. margin-left: 25%;
  1937. }
  1938. .col-sm-offset-2 {
  1939. margin-left: 16.66666667%;
  1940. }
  1941. .col-sm-offset-1 {
  1942. margin-left: 8.33333333%;
  1943. }
  1944. .col-sm-offset-0 {
  1945. margin-left: 0%;
  1946. }
  1947. }
  1948. @media (min-width: 992px) {
  1949. .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
  1950. float: left;
  1951. }
  1952. .col-md-12 {
  1953. width: 100%;
  1954. }
  1955. .col-md-11 {
  1956. width: 91.66666667%;
  1957. }
  1958. .col-md-10 {
  1959. width: 83.33333333%;
  1960. }
  1961. .col-md-9 {
  1962. width: 75%;
  1963. }
  1964. .col-md-8 {
  1965. width: 66.66666667%;
  1966. }
  1967. .col-md-7 {
  1968. width: 58.33333333%;
  1969. }
  1970. .col-md-6 {
  1971. width: 50%;
  1972. }
  1973. .col-md-5 {
  1974. width: 41.66666667%;
  1975. }
  1976. .col-md-4 {
  1977. width: 33.33333333%;
  1978. }
  1979. .col-md-3 {
  1980. width: 25%;
  1981. }
  1982. .col-md-2 {
  1983. width: 16.66666667%;
  1984. }
  1985. .col-md-1 {
  1986. width: 8.33333333%;
  1987. }
  1988. .col-md-pull-12 {
  1989. right: 100%;
  1990. }
  1991. .col-md-pull-11 {
  1992. right: 91.66666667%;
  1993. }
  1994. .col-md-pull-10 {
  1995. right: 83.33333333%;
  1996. }
  1997. .col-md-pull-9 {
  1998. right: 75%;
  1999. }
  2000. .col-md-pull-8 {
  2001. right: 66.66666667%;
  2002. }
  2003. .col-md-pull-7 {
  2004. right: 58.33333333%;
  2005. }
  2006. .col-md-pull-6 {
  2007. right: 50%;
  2008. }
  2009. .col-md-pull-5 {
  2010. right: 41.66666667%;
  2011. }
  2012. .col-md-pull-4 {
  2013. right: 33.33333333%;
  2014. }
  2015. .col-md-pull-3 {
  2016. right: 25%;
  2017. }
  2018. .col-md-pull-2 {
  2019. right: 16.66666667%;
  2020. }
  2021. .col-md-pull-1 {
  2022. right: 8.33333333%;
  2023. }
  2024. .col-md-pull-0 {
  2025. right: auto;
  2026. }
  2027. .col-md-push-12 {
  2028. left: 100%;
  2029. }
  2030. .col-md-push-11 {
  2031. left: 91.66666667%;
  2032. }
  2033. .col-md-push-10 {
  2034. left: 83.33333333%;
  2035. }
  2036. .col-md-push-9 {
  2037. left: 75%;
  2038. }
  2039. .col-md-push-8 {
  2040. left: 66.66666667%;
  2041. }
  2042. .col-md-push-7 {
  2043. left: 58.33333333%;
  2044. }
  2045. .col-md-push-6 {
  2046. left: 50%;
  2047. }
  2048. .col-md-push-5 {
  2049. left: 41.66666667%;
  2050. }
  2051. .col-md-push-4 {
  2052. left: 33.33333333%;
  2053. }
  2054. .col-md-push-3 {
  2055. left: 25%;
  2056. }
  2057. .col-md-push-2 {
  2058. left: 16.66666667%;
  2059. }
  2060. .col-md-push-1 {
  2061. left: 8.33333333%;
  2062. }
  2063. .col-md-push-0 {
  2064. left: auto;
  2065. }
  2066. .col-md-offset-12 {
  2067. margin-left: 100%;
  2068. }
  2069. .col-md-offset-11 {
  2070. margin-left: 91.66666667%;
  2071. }
  2072. .col-md-offset-10 {
  2073. margin-left: 83.33333333%;
  2074. }
  2075. .col-md-offset-9 {
  2076. margin-left: 75%;
  2077. }
  2078. .col-md-offset-8 {
  2079. margin-left: 66.66666667%;
  2080. }
  2081. .col-md-offset-7 {
  2082. margin-left: 58.33333333%;
  2083. }
  2084. .col-md-offset-6 {
  2085. margin-left: 50%;
  2086. }
  2087. .col-md-offset-5 {
  2088. margin-left: 41.66666667%;
  2089. }
  2090. .col-md-offset-4 {
  2091. margin-left: 33.33333333%;
  2092. }
  2093. .col-md-offset-3 {
  2094. margin-left: 25%;
  2095. }
  2096. .col-md-offset-2 {
  2097. margin-left: 16.66666667%;
  2098. }
  2099. .col-md-offset-1 {
  2100. margin-left: 8.33333333%;
  2101. }
  2102. .col-md-offset-0 {
  2103. margin-left: 0%;
  2104. }
  2105. }
  2106. @media (min-width: 1200px) {
  2107. .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
  2108. float: left;
  2109. }
  2110. .col-lg-12 {
  2111. width: 100%;
  2112. }
  2113. .col-lg-11 {
  2114. width: 91.66666667%;
  2115. }
  2116. .col-lg-10 {
  2117. width: 83.33333333%;
  2118. }
  2119. .col-lg-9 {
  2120. width: 75%;
  2121. }
  2122. .col-lg-8 {
  2123. width: 66.66666667%;
  2124. }
  2125. .col-lg-7 {
  2126. width: 58.33333333%;
  2127. }
  2128. .col-lg-6 {
  2129. width: 50%;
  2130. }
  2131. .col-lg-5 {
  2132. width: 41.66666667%;
  2133. }
  2134. .col-lg-4 {
  2135. width: 33.33333333%;
  2136. }
  2137. .col-lg-3 {
  2138. width: 25%;
  2139. }
  2140. .col-lg-2 {
  2141. width: 16.66666667%;
  2142. }
  2143. .col-lg-1 {
  2144. width: 8.33333333%;
  2145. }
  2146. .col-lg-pull-12 {
  2147. right: 100%;
  2148. }
  2149. .col-lg-pull-11 {
  2150. right: 91.66666667%;
  2151. }
  2152. .col-lg-pull-10 {
  2153. right: 83.33333333%;
  2154. }
  2155. .col-lg-pull-9 {
  2156. right: 75%;
  2157. }
  2158. .col-lg-pull-8 {
  2159. right: 66.66666667%;
  2160. }
  2161. .col-lg-pull-7 {
  2162. right: 58.33333333%;
  2163. }
  2164. .col-lg-pull-6 {
  2165. right: 50%;
  2166. }
  2167. .col-lg-pull-5 {
  2168. right: 41.66666667%;
  2169. }
  2170. .col-lg-pull-4 {
  2171. right: 33.33333333%;
  2172. }
  2173. .col-lg-pull-3 {
  2174. right: 25%;
  2175. }
  2176. .col-lg-pull-2 {
  2177. right: 16.66666667%;
  2178. }
  2179. .col-lg-pull-1 {
  2180. right: 8.33333333%;
  2181. }
  2182. .col-lg-pull-0 {
  2183. right: auto;
  2184. }
  2185. .col-lg-push-12 {
  2186. left: 100%;
  2187. }
  2188. .col-lg-push-11 {
  2189. left: 91.66666667%;
  2190. }
  2191. .col-lg-push-10 {
  2192. left: 83.33333333%;
  2193. }
  2194. .col-lg-push-9 {
  2195. left: 75%;
  2196. }
  2197. .col-lg-push-8 {
  2198. left: 66.66666667%;
  2199. }
  2200. .col-lg-push-7 {
  2201. left: 58.33333333%;
  2202. }
  2203. .col-lg-push-6 {
  2204. left: 50%;
  2205. }
  2206. .col-lg-push-5 {
  2207. left: 41.66666667%;
  2208. }
  2209. .col-lg-push-4 {
  2210. left: 33.33333333%;
  2211. }
  2212. .col-lg-push-3 {
  2213. left: 25%;
  2214. }
  2215. .col-lg-push-2 {
  2216. left: 16.66666667%;
  2217. }
  2218. .col-lg-push-1 {
  2219. left: 8.33333333%;
  2220. }
  2221. .col-lg-push-0 {
  2222. left: auto;
  2223. }
  2224. .col-lg-offset-12 {
  2225. margin-left: 100%;
  2226. }
  2227. .col-lg-offset-11 {
  2228. margin-left: 91.66666667%;
  2229. }
  2230. .col-lg-offset-10 {
  2231. margin-left: 83.33333333%;
  2232. }
  2233. .col-lg-offset-9 {
  2234. margin-left: 75%;
  2235. }
  2236. .col-lg-offset-8 {
  2237. margin-left: 66.66666667%;
  2238. }
  2239. .col-lg-offset-7 {
  2240. margin-left: 58.33333333%;
  2241. }
  2242. .col-lg-offset-6 {
  2243. margin-left: 50%;
  2244. }
  2245. .col-lg-offset-5 {
  2246. margin-left: 41.66666667%;
  2247. }
  2248. .col-lg-offset-4 {
  2249. margin-left: 33.33333333%;
  2250. }
  2251. .col-lg-offset-3 {
  2252. margin-left: 25%;
  2253. }
  2254. .col-lg-offset-2 {
  2255. margin-left: 16.66666667%;
  2256. }
  2257. .col-lg-offset-1 {
  2258. margin-left: 8.33333333%;
  2259. }
  2260. .col-lg-offset-0 {
  2261. margin-left: 0%;
  2262. }
  2263. }
  2264. table {
  2265. background-color: transparent;
  2266. }
  2267. caption {
  2268. padding-top: 8px;
  2269. padding-bottom: 8px;
  2270. color: #777777;
  2271. text-align: left;
  2272. }
  2273. th {
  2274. text-align: left;
  2275. }
  2276. .table {
  2277. width: 100%;
  2278. max-width: 100%;
  2279. margin-bottom: 20px;
  2280. }
  2281. .table > thead > tr > th,
  2282. .table > tbody > tr > th,
  2283. .table > tfoot > tr > th,
  2284. .table > thead > tr > td,
  2285. .table > tbody > tr > td,
  2286. .table > tfoot > tr > td {
  2287. padding: 8px;
  2288. line-height: 1.42857143;
  2289. vertical-align: top;
  2290. border-top: 1px solid #dddddd;
  2291. }
  2292. .table > thead > tr > th {
  2293. vertical-align: bottom;
  2294. border-bottom: 2px solid #dddddd;
  2295. }
  2296. .table > caption + thead > tr:first-child > th,
  2297. .table > colgroup + thead > tr:first-child > th,
  2298. .table > thead:first-child > tr:first-child > th,
  2299. .table > caption + thead > tr:first-child > td,
  2300. .table > colgroup + thead > tr:first-child > td,
  2301. .table > thead:first-child > tr:first-child > td {
  2302. border-top: 0;
  2303. }
  2304. .table > tbody + tbody {
  2305. border-top: 2px solid #dddddd;
  2306. }
  2307. .table .table {
  2308. background-color: #ffffff;
  2309. }
  2310. .table-condensed > thead > tr > th,
  2311. .table-condensed > tbody > tr > th,
  2312. .table-condensed > tfoot > tr > th,
  2313. .table-condensed > thead > tr > td,
  2314. .table-condensed > tbody > tr > td,
  2315. .table-condensed > tfoot > tr > td {
  2316. padding: 5px;
  2317. }
  2318. .table-bordered {
  2319. border: 1px solid #dddddd;
  2320. }
  2321. .table-bordered > thead > tr > th,
  2322. .table-bordered > tbody > tr > th,
  2323. .table-bordered > tfoot > tr > th,
  2324. .table-bordered > thead > tr > td,
  2325. .table-bordered > tbody > tr > td,
  2326. .table-bordered > tfoot > tr > td {
  2327. border: 1px solid #dddddd;
  2328. }
  2329. .table-bordered > thead > tr > th,
  2330. .table-bordered > thead > tr > td {
  2331. border-bottom-width: 2px;
  2332. }
  2333. .table-striped > tbody > tr:nth-of-type(odd) {
  2334. background-color: #f9f9f9;
  2335. }
  2336. .table-hover > tbody > tr:hover {
  2337. background-color: #f5f5f5;
  2338. }
  2339. table col[class*="col-"] {
  2340. position: static;
  2341. float: none;
  2342. display: table-column;
  2343. }
  2344. table td[class*="col-"],
  2345. table th[class*="col-"] {
  2346. position: static;
  2347. float: none;
  2348. display: table-cell;
  2349. }
  2350. .table > thead > tr > td.active,
  2351. .table > tbody > tr > td.active,
  2352. .table > tfoot > tr > td.active,
  2353. .table > thead > tr > th.active,
  2354. .table > tbody > tr > th.active,
  2355. .table > tfoot > tr > th.active,
  2356. .table > thead > tr.active > td,
  2357. .table > tbody > tr.active > td,
  2358. .table > tfoot > tr.active > td,
  2359. .table > thead > tr.active > th,
  2360. .table > tbody > tr.active > th,
  2361. .table > tfoot > tr.active > th {
  2362. background-color: #f5f5f5;
  2363. }
  2364. .table-hover > tbody > tr > td.active:hover,
  2365. .table-hover > tbody > tr > th.active:hover,
  2366. .table-hover > tbody > tr.active:hover > td,
  2367. .table-hover > tbody > tr:hover > .active,
  2368. .table-hover > tbody > tr.active:hover > th {
  2369. background-color: #e8e8e8;
  2370. }
  2371. .table > thead > tr > td.success,
  2372. .table > tbody > tr > td.success,
  2373. .table > tfoot > tr > td.success,
  2374. .table > thead > tr > th.success,
  2375. .table > tbody > tr > th.success,
  2376. .table > tfoot > tr > th.success,
  2377. .table > thead > tr.success > td,
  2378. .table > tbody > tr.success > td,
  2379. .table > tfoot > tr.success > td,
  2380. .table > thead > tr.success > th,
  2381. .table > tbody > tr.success > th,
  2382. .table > tfoot > tr.success > th {
  2383. background-color: #dff0d8;
  2384. }
  2385. .table-hover > tbody > tr > td.success:hover,
  2386. .table-hover > tbody > tr > th.success:hover,
  2387. .table-hover > tbody > tr.success:hover > td,
  2388. .table-hover > tbody > tr:hover > .success,
  2389. .table-hover > tbody > tr.success:hover > th {
  2390. background-color: #d0e9c6;
  2391. }
  2392. .table > thead > tr > td.info,
  2393. .table > tbody > tr > td.info,
  2394. .table > tfoot > tr > td.info,
  2395. .table > thead > tr > th.info,
  2396. .table > tbody > tr > th.info,
  2397. .table > tfoot > tr > th.info,
  2398. .table > thead > tr.info > td,
  2399. .table > tbody > tr.info > td,
  2400. .table > tfoot > tr.info > td,
  2401. .table > thead > tr.info > th,
  2402. .table > tbody > tr.info > th,
  2403. .table > tfoot > tr.info > th {
  2404. background-color: #d9edf7;
  2405. }
  2406. .table-hover > tbody > tr > td.info:hover,
  2407. .table-hover > tbody > tr > th.info:hover,
  2408. .table-hover > tbody > tr.info:hover > td,
  2409. .table-hover > tbody > tr:hover > .info,
  2410. .table-hover > tbody > tr.info:hover > th {
  2411. background-color: #c4e3f3;
  2412. }
  2413. .table > thead > tr > td.warning,
  2414. .table > tbody > tr > td.warning,
  2415. .table > tfoot > tr > td.warning,
  2416. .table > thead > tr > th.warning,
  2417. .table > tbody > tr > th.warning,
  2418. .table > tfoot > tr > th.warning,
  2419. .table > thead > tr.warning > td,
  2420. .table > tbody > tr.warning > td,
  2421. .table > tfoot > tr.warning > td,
  2422. .table > thead > tr.warning > th,
  2423. .table > tbody > tr.warning > th,
  2424. .table > tfoot > tr.warning > th {
  2425. background-color: #fcf8e3;
  2426. }
  2427. .table-hover > tbody > tr > td.warning:hover,
  2428. .table-hover > tbody > tr > th.warning:hover,
  2429. .table-hover > tbody > tr.warning:hover > td,
  2430. .table-hover > tbody > tr:hover > .warning,
  2431. .table-hover > tbody > tr.warning:hover > th {
  2432. background-color: #faf2cc;
  2433. }
  2434. .table > thead > tr > td.danger,
  2435. .table > tbody > tr > td.danger,
  2436. .table > tfoot > tr > td.danger,
  2437. .table > thead > tr > th.danger,
  2438. .table > tbody > tr > th.danger,
  2439. .table > tfoot > tr > th.danger,
  2440. .table > thead > tr.danger > td,
  2441. .table > tbody > tr.danger > td,
  2442. .table > tfoot > tr.danger > td,
  2443. .table > thead > tr.danger > th,
  2444. .table > tbody > tr.danger > th,
  2445. .table > tfoot > tr.danger > th {
  2446. background-color: #f2dede;
  2447. }
  2448. .table-hover > tbody > tr > td.danger:hover,
  2449. .table-hover > tbody > tr > th.danger:hover,
  2450. .table-hover > tbody > tr.danger:hover > td,
  2451. .table-hover > tbody > tr:hover > .danger,
  2452. .table-hover > tbody > tr.danger:hover > th {
  2453. background-color: #ebcccc;
  2454. }
  2455. .table-responsive {
  2456. overflow-x: auto;
  2457. min-height: 0.01%;
  2458. }
  2459. @media screen and (max-width: 767px) {
  2460. .table-responsive {
  2461. width: 100%;
  2462. margin-bottom: 15px;
  2463. overflow-y: hidden;
  2464. -ms-overflow-style: -ms-autohiding-scrollbar;
  2465. border: 1px solid #dddddd;
  2466. }
  2467. .table-responsive > .table {
  2468. margin-bottom: 0;
  2469. }
  2470. .table-responsive > .table > thead > tr > th,
  2471. .table-responsive > .table > tbody > tr > th,
  2472. .table-responsive > .table > tfoot > tr > th,
  2473. .table-responsive > .table > thead > tr > td,
  2474. .table-responsive > .table > tbody > tr > td,
  2475. .table-responsive > .table > tfoot > tr > td {
  2476. white-space: nowrap;
  2477. }
  2478. .table-responsive > .table-bordered {
  2479. border: 0;
  2480. }
  2481. .table-responsive > .table-bordered > thead > tr > th:first-child,
  2482. .table-responsive > .table-bordered > tbody > tr > th:first-child,
  2483. .table-responsive > .table-bordered > tfoot > tr > th:first-child,
  2484. .table-responsive > .table-bordered > thead > tr > td:first-child,
  2485. .table-responsive > .table-bordered > tbody > tr > td:first-child,
  2486. .table-responsive > .table-bordered > tfoot > tr > td:first-child {
  2487. border-left: 0;
  2488. }
  2489. .table-responsive > .table-bordered > thead > tr > th:last-child,
  2490. .table-responsive > .table-bordered > tbody > tr > th:last-child,
  2491. .table-responsive > .table-bordered > tfoot > tr > th:last-child,
  2492. .table-responsive > .table-bordered > thead > tr > td:last-child,
  2493. .table-responsive > .table-bordered > tbody > tr > td:last-child,
  2494. .table-responsive > .table-bordered > tfoot > tr > td:last-child {
  2495. border-right: 0;
  2496. }
  2497. .table-responsive > .table-bordered > tbody > tr:last-child > th,
  2498. .table-responsive > .table-bordered > tfoot > tr:last-child > th,
  2499. .table-responsive > .table-bordered > tbody > tr:last-child > td,
  2500. .table-responsive > .table-bordered > tfoot > tr:last-child > td {
  2501. border-bottom: 0;
  2502. }
  2503. }
  2504. fieldset {
  2505. padding: 0;
  2506. margin: 0;
  2507. border: 0;
  2508. min-width: 0;
  2509. }
  2510. legend {
  2511. display: block;
  2512. width: 100%;
  2513. padding: 0;
  2514. margin-bottom: 20px;
  2515. font-size: 21px;
  2516. line-height: inherit;
  2517. color: #333333;
  2518. border: 0;
  2519. border-bottom: 1px solid #e5e5e5;
  2520. }
  2521. label {
  2522. display: inline-block;
  2523. max-width: 100%;
  2524. margin-bottom: 5px;
  2525. font-weight: bold;
  2526. }
  2527. input[type="search"] {
  2528. -webkit-box-sizing: border-box;
  2529. -moz-box-sizing: border-box;
  2530. box-sizing: border-box;
  2531. }
  2532. input[type="radio"],
  2533. input[type="checkbox"] {
  2534. margin: 4px 0 0;
  2535. margin-top: 1px \9;
  2536. line-height: normal;
  2537. }
  2538. input[type="file"] {
  2539. display: block;
  2540. }
  2541. input[type="range"] {
  2542. display: block;
  2543. width: 100%;
  2544. }
  2545. select[multiple],
  2546. select[size] {
  2547. height: auto;
  2548. }
  2549. input[type="file"]:focus,
  2550. input[type="radio"]:focus,
  2551. input[type="checkbox"]:focus {
  2552. outline: thin dotted;
  2553. outline: 5px auto -webkit-focus-ring-color;
  2554. outline-offset: -2px;
  2555. }
  2556. output {
  2557. display: block;
  2558. padding-top: 7px;
  2559. font-size: 14px;
  2560. line-height: 1.42857143;
  2561. color: #555555;
  2562. }
  2563. .form-control {
  2564. display: block;
  2565. width: 100%;
  2566. height: 34px;
  2567. padding: 6px 12px;
  2568. font-size: 14px;
  2569. line-height: 1.42857143;
  2570. color: #555555;
  2571. background-color: #ffffff;
  2572. background-image: none;
  2573. border: 1px solid #cccccc;
  2574. border-radius: 4px;
  2575. -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  2576. box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  2577. -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
  2578. -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  2579. transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  2580. }
  2581. .form-control:focus {
  2582. border-color: #66afe9;
  2583. outline: 0;
  2584. -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  2585. box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  2586. }
  2587. .form-control::-moz-placeholder {
  2588. color: #999999;
  2589. opacity: 1;
  2590. }
  2591. .form-control:-ms-input-placeholder {
  2592. color: #999999;
  2593. }
  2594. .form-control::-webkit-input-placeholder {
  2595. color: #999999;
  2596. }
  2597. .form-control[disabled],
  2598. .form-control[readonly],
  2599. fieldset[disabled] .form-control {
  2600. background-color: #eeeeee;
  2601. opacity: 1;
  2602. }
  2603. .form-control[disabled],
  2604. fieldset[disabled] .form-control {
  2605. cursor: not-allowed;
  2606. }
  2607. textarea.form-control {
  2608. height: auto;
  2609. }
  2610. input[type="search"] {
  2611. -webkit-appearance: none;
  2612. }
  2613. @media screen and (-webkit-min-device-pixel-ratio: 0) {
  2614. input[type="date"].form-control,
  2615. input[type="time"].form-control,
  2616. input[type="datetime-local"].form-control,
  2617. input[type="month"].form-control {
  2618. line-height: 34px;
  2619. }
  2620. input[type="date"].input-sm,
  2621. input[type="time"].input-sm,
  2622. input[type="datetime-local"].input-sm,
  2623. input[type="month"].input-sm,
  2624. .input-group-sm input[type="date"],
  2625. .input-group-sm input[type="time"],
  2626. .input-group-sm input[type="datetime-local"],
  2627. .input-group-sm input[type="month"] {
  2628. line-height: 30px;
  2629. }
  2630. input[type="date"].input-lg,
  2631. input[type="time"].input-lg,
  2632. input[type="datetime-local"].input-lg,
  2633. input[type="month"].input-lg,
  2634. .input-group-lg input[type="date"],
  2635. .input-group-lg input[type="time"],
  2636. .input-group-lg input[type="datetime-local"],
  2637. .input-group-lg input[type="month"] {
  2638. line-height: 46px;
  2639. }
  2640. }
  2641. .form-group {
  2642. margin-bottom: 15px;
  2643. }
  2644. .radio,
  2645. .checkbox {
  2646. position: relative;
  2647. display: block;
  2648. margin-top: 10px;
  2649. margin-bottom: 10px;
  2650. }
  2651. .radio label,
  2652. .checkbox label {
  2653. min-height: 20px;
  2654. padding-left: 20px;
  2655. margin-bottom: 0;
  2656. font-weight: normal;
  2657. cursor: pointer;
  2658. }
  2659. .radio input[type="radio"],
  2660. .radio-inline input[type="radio"],
  2661. .checkbox input[type="checkbox"],
  2662. .checkbox-inline input[type="checkbox"] {
  2663. position: absolute;
  2664. margin-left: -20px;
  2665. margin-top: 4px \9;
  2666. }
  2667. .radio + .radio,
  2668. .checkbox + .checkbox {
  2669. margin-top: -5px;
  2670. }
  2671. .radio-inline,
  2672. .checkbox-inline {
  2673. position: relative;
  2674. display: inline-block;
  2675. padding-left: 20px;
  2676. margin-bottom: 0;
  2677. vertical-align: middle;
  2678. font-weight: normal;
  2679. cursor: pointer;
  2680. }
  2681. .radio-inline + .radio-inline,
  2682. .checkbox-inline + .checkbox-inline {
  2683. margin-top: 0;
  2684. margin-left: 10px;
  2685. }
  2686. input[type="radio"][disabled],
  2687. input[type="checkbox"][disabled],
  2688. input[type="radio"].disabled,
  2689. input[type="checkbox"].disabled,
  2690. fieldset[disabled] input[type="radio"],
  2691. fieldset[disabled] input[type="checkbox"] {
  2692. cursor: not-allowed;
  2693. }
  2694. .radio-inline.disabled,
  2695. .checkbox-inline.disabled,
  2696. fieldset[disabled] .radio-inline,
  2697. fieldset[disabled] .checkbox-inline {
  2698. cursor: not-allowed;
  2699. }
  2700. .radio.disabled label,
  2701. .checkbox.disabled label,
  2702. fieldset[disabled] .radio label,
  2703. fieldset[disabled] .checkbox label {
  2704. cursor: not-allowed;
  2705. }
  2706. .form-control-static {
  2707. padding-top: 7px;
  2708. padding-bottom: 7px;
  2709. margin-bottom: 0;
  2710. min-height: 34px;
  2711. }
  2712. .form-control-static.input-lg,
  2713. .form-control-static.input-sm {
  2714. padding-left: 0;
  2715. padding-right: 0;
  2716. }
  2717. .input-sm {
  2718. height: 30px;
  2719. padding: 5px 10px;
  2720. font-size: 12px;
  2721. line-height: 1.5;
  2722. border-radius: 3px;
  2723. }
  2724. select.input-sm {
  2725. height: 30px;
  2726. line-height: 30px;
  2727. }
  2728. textarea.input-sm,
  2729. select[multiple].input-sm {
  2730. height: auto;
  2731. }
  2732. .form-group-sm .form-control {
  2733. height: 30px;
  2734. padding: 5px 10px;
  2735. font-size: 12px;
  2736. line-height: 1.5;
  2737. border-radius: 3px;
  2738. }
  2739. .form-group-sm select.form-control {
  2740. height: 30px;
  2741. line-height: 30px;
  2742. }
  2743. .form-group-sm textarea.form-control,
  2744. .form-group-sm select[multiple].form-control {
  2745. height: auto;
  2746. }
  2747. .form-group-sm .form-control-static {
  2748. height: 30px;
  2749. min-height: 32px;
  2750. padding: 6px 10px;
  2751. font-size: 12px;
  2752. line-height: 1.5;
  2753. }
  2754. .input-lg {
  2755. height: 46px;
  2756. padding: 10px 16px;
  2757. font-size: 18px;
  2758. line-height: 1.3333333;
  2759. border-radius: 6px;
  2760. }
  2761. select.input-lg {
  2762. height: 46px;
  2763. line-height: 46px;
  2764. }
  2765. textarea.input-lg,
  2766. select[multiple].input-lg {
  2767. height: auto;
  2768. }
  2769. .form-group-lg .form-control {
  2770. height: 46px;
  2771. padding: 10px 16px;
  2772. font-size: 18px;
  2773. line-height: 1.3333333;
  2774. border-radius: 6px;
  2775. }
  2776. .form-group-lg select.form-control {
  2777. height: 46px;
  2778. line-height: 46px;
  2779. }
  2780. .form-group-lg textarea.form-control,
  2781. .form-group-lg select[multiple].form-control {
  2782. height: auto;
  2783. }
  2784. .form-group-lg .form-control-static {
  2785. height: 46px;
  2786. min-height: 38px;
  2787. padding: 11px 16px;
  2788. font-size: 18px;
  2789. line-height: 1.3333333;
  2790. }
  2791. .has-feedback {
  2792. position: relative;
  2793. }
  2794. .has-feedback .form-control {
  2795. padding-right: 42.5px;
  2796. }
  2797. .form-control-feedback {
  2798. position: absolute;
  2799. top: 0;
  2800. right: 0;
  2801. z-index: 2;
  2802. display: block;
  2803. width: 34px;
  2804. height: 34px;
  2805. line-height: 34px;
  2806. text-align: center;
  2807. pointer-events: none;
  2808. }
  2809. .input-lg + .form-control-feedback,
  2810. .input-group-lg + .form-control-feedback,
  2811. .form-group-lg .form-control + .form-control-feedback {
  2812. width: 46px;
  2813. height: 46px;
  2814. line-height: 46px;
  2815. }
  2816. .input-sm + .form-control-feedback,
  2817. .input-group-sm + .form-control-feedback,
  2818. .form-group-sm .form-control + .form-control-feedback {
  2819. width: 30px;
  2820. height: 30px;
  2821. line-height: 30px;
  2822. }
  2823. .has-success .help-block,
  2824. .has-success .control-label,
  2825. .has-success .radio,
  2826. .has-success .checkbox,
  2827. .has-success .radio-inline,
  2828. .has-success .checkbox-inline,
  2829. .has-success.radio label,
  2830. .has-success.checkbox label,
  2831. .has-success.radio-inline label,
  2832. .has-success.checkbox-inline label {
  2833. color: #3c763d;
  2834. }
  2835. .has-success .form-control {
  2836. border-color: #3c763d;
  2837. -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  2838. box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  2839. }
  2840. .has-success .form-control:focus {
  2841. border-color: #2b542c;
  2842. -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
  2843. box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
  2844. }
  2845. .has-success .input-group-addon {
  2846. color: #3c763d;
  2847. border-color: #3c763d;
  2848. background-color: #dff0d8;
  2849. }
  2850. .has-success .form-control-feedback {
  2851. color: #3c763d;
  2852. }
  2853. .has-warning .help-block,
  2854. .has-warning .control-label,
  2855. .has-warning .radio,
  2856. .has-warning .checkbox,
  2857. .has-warning .radio-inline,
  2858. .has-warning .checkbox-inline,
  2859. .has-warning.radio label,
  2860. .has-warning.checkbox label,
  2861. .has-warning.radio-inline label,
  2862. .has-warning.checkbox-inline label {
  2863. color: #8a6d3b;
  2864. }
  2865. .has-warning .form-control {
  2866. border-color: #8a6d3b;
  2867. -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  2868. box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  2869. }
  2870. .has-warning .form-control:focus {
  2871. border-color: #66512c;
  2872. -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
  2873. box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
  2874. }
  2875. .has-warning .input-group-addon {
  2876. color: #8a6d3b;
  2877. border-color: #8a6d3b;
  2878. background-color: #fcf8e3;
  2879. }
  2880. .has-warning .form-control-feedback {
  2881. color: #8a6d3b;
  2882. }
  2883. .has-error .help-block,
  2884. .has-error .control-label,
  2885. .has-error .radio,
  2886. .has-error .checkbox,
  2887. .has-error .radio-inline,
  2888. .has-error .checkbox-inline,
  2889. .has-error.radio label,
  2890. .has-error.checkbox label,
  2891. .has-error.radio-inline label,
  2892. .has-error.checkbox-inline label {
  2893. color: #a94442;
  2894. }
  2895. .has-error .form-control {
  2896. border-color: #a94442;
  2897. -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  2898. box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  2899. }
  2900. .has-error .form-control:focus {
  2901. border-color: #843534;
  2902. -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
  2903. box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
  2904. }
  2905. .has-error .input-group-addon {
  2906. color: #a94442;
  2907. border-color: #a94442;
  2908. background-color: #f2dede;
  2909. }
  2910. .has-error .form-control-feedback {
  2911. color: #a94442;
  2912. }
  2913. .has-feedback label ~ .form-control-feedback {
  2914. top: 25px;
  2915. }
  2916. .has-feedback label.sr-only ~ .form-control-feedback {
  2917. top: 0;
  2918. }
  2919. .help-block {
  2920. display: block;
  2921. margin-top: 5px;
  2922. margin-bottom: 10px;
  2923. color: #737373;
  2924. }
  2925. @media (min-width: 768px) {
  2926. .form-inline .form-group {
  2927. display: inline-block;
  2928. margin-bottom: 0;
  2929. vertical-align: middle;
  2930. }
  2931. .form-inline .form-control {
  2932. display: inline-block;
  2933. width: auto;
  2934. vertical-align: middle;
  2935. }
  2936. .form-inline .form-control-static {
  2937. display: inline-block;
  2938. }
  2939. .form-inline .input-group {
  2940. display: inline-table;
  2941. vertical-align: middle;
  2942. }
  2943. .form-inline .input-group .input-group-addon,
  2944. .form-inline .input-group .input-group-btn,
  2945. .form-inline .input-group .form-control {
  2946. width: auto;
  2947. }
  2948. .form-inline .input-group > .form-control {
  2949. width: 100%;
  2950. }
  2951. .form-inline .control-label {
  2952. margin-bottom: 0;
  2953. vertical-align: middle;
  2954. }
  2955. .form-inline .radio,
  2956. .form-inline .checkbox {
  2957. display: inline-block;
  2958. margin-top: 0;
  2959. margin-bottom: 0;
  2960. vertical-align: middle;
  2961. }
  2962. .form-inline .radio label,
  2963. .form-inline .checkbox label {
  2964. padding-left: 0;
  2965. }
  2966. .form-inline .radio input[type="radio"],
  2967. .form-inline .checkbox input[type="checkbox"] {
  2968. position: relative;
  2969. margin-left: 0;
  2970. }
  2971. .form-inline .has-feedback .form-control-feedback {
  2972. top: 0;
  2973. }
  2974. }
  2975. .form-horizontal .radio,
  2976. .form-horizontal .checkbox,
  2977. .form-horizontal .radio-inline,
  2978. .form-horizontal .checkbox-inline {
  2979. margin-top: 0;
  2980. margin-bottom: 0;
  2981. padding-top: 7px;
  2982. }
  2983. .form-horizontal .radio,
  2984. .form-horizontal .checkbox {
  2985. min-height: 27px;
  2986. }
  2987. .form-horizontal .form-group {
  2988. margin-left: -15px;
  2989. margin-right: -15px;
  2990. }
  2991. @media (min-width: 768px) {
  2992. .form-horizontal .control-label {
  2993. text-align: right;
  2994. margin-bottom: 0;
  2995. padding-top: 7px;
  2996. }
  2997. }
  2998. .form-horizontal .has-feedback .form-control-feedback {
  2999. right: 15px;
  3000. }
  3001. @media (min-width: 768px) {
  3002. .form-horizontal .form-group-lg .control-label {
  3003. padding-top: 14.333333px;
  3004. font-size: 18px;
  3005. }
  3006. }
  3007. @media (min-width: 768px) {
  3008. .form-horizontal .form-group-sm .control-label {
  3009. padding-top: 6px;
  3010. font-size: 12px;
  3011. }
  3012. }
  3013. .btn {
  3014. display: inline-block;
  3015. margin-bottom: 0;
  3016. font-weight: normal;
  3017. text-align: center;
  3018. vertical-align: middle;
  3019. -ms-touch-action: manipulation;
  3020. touch-action: manipulation;
  3021. cursor: pointer;
  3022. background-image: none;
  3023. border: 1px solid transparent;
  3024. white-space: nowrap;
  3025. padding: 6px 12px;
  3026. font-size: 14px;
  3027. line-height: 1.42857143;
  3028. border-radius: 4px;
  3029. -webkit-user-select: none;
  3030. -moz-user-select: none;
  3031. -ms-user-select: none;
  3032. user-select: none;
  3033. }
  3034. .btn:focus,
  3035. .btn:active:focus,
  3036. .btn.active:focus,
  3037. .btn.focus,
  3038. .btn:active.focus,
  3039. .btn.active.focus {
  3040. outline: thin dotted;
  3041. outline: 5px auto -webkit-focus-ring-color;
  3042. outline-offset: -2px;
  3043. }
  3044. .btn:hover,
  3045. .btn:focus,
  3046. .btn.focus {
  3047. color: #333333;
  3048. text-decoration: none;
  3049. }
  3050. .btn:active,
  3051. .btn.active {
  3052. outline: 0;
  3053. background-image: none;
  3054. -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  3055. box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  3056. }
  3057. .btn.disabled,
  3058. .btn[disabled],
  3059. fieldset[disabled] .btn {
  3060. cursor: not-allowed;
  3061. opacity: 0.65;
  3062. filter: alpha(opacity=65);
  3063. -webkit-box-shadow: none;
  3064. box-shadow: none;
  3065. }
  3066. a.btn.disabled,
  3067. fieldset[disabled] a.btn {
  3068. pointer-events: none;
  3069. }
  3070. .btn-default {
  3071. color: #333333;
  3072. background-color: #ffffff;
  3073. border-color: #cccccc;
  3074. }
  3075. .btn-default:focus,
  3076. .btn-default.focus {
  3077. color: #333333;
  3078. background-color: #e6e6e6;
  3079. border-color: #8c8c8c;
  3080. }
  3081. .btn-default:hover {
  3082. color: #333333;
  3083. background-color: #e6e6e6;
  3084. border-color: #adadad;
  3085. }
  3086. .btn-default:active,
  3087. .btn-default.active,
  3088. .open > .dropdown-toggle.btn-default {
  3089. color: #333333;
  3090. background-color: #e6e6e6;
  3091. border-color: #adadad;
  3092. }
  3093. .btn-default:active:hover,
  3094. .btn-default.active:hover,
  3095. .open > .dropdown-toggle.btn-default:hover,
  3096. .btn-default:active:focus,
  3097. .btn-default.active:focus,
  3098. .open > .dropdown-toggle.btn-default:focus,
  3099. .btn-default:active.focus,
  3100. .btn-default.active.focus,
  3101. .open > .dropdown-toggle.btn-default.focus {
  3102. color: #333333;
  3103. background-color: #d4d4d4;
  3104. border-color: #8c8c8c;
  3105. }
  3106. .btn-default:active,
  3107. .btn-default.active,
  3108. .open > .dropdown-toggle.btn-default {
  3109. background-image: none;
  3110. }
  3111. .btn-default.disabled,
  3112. .btn-default[disabled],
  3113. fieldset[disabled] .btn-default,
  3114. .btn-default.disabled:hover,
  3115. .btn-default[disabled]:hover,
  3116. fieldset[disabled] .btn-default:hover,
  3117. .btn-default.disabled:focus,
  3118. .btn-default[disabled]:focus,
  3119. fieldset[disabled] .btn-default:focus,
  3120. .btn-default.disabled.focus,
  3121. .btn-default[disabled].focus,
  3122. fieldset[disabled] .btn-default.focus,
  3123. .btn-default.disabled:active,
  3124. .btn-default[disabled]:active,
  3125. fieldset[disabled] .btn-default:active,
  3126. .btn-default.disabled.active,
  3127. .btn-default[disabled].active,
  3128. fieldset[disabled] .btn-default.active {
  3129. background-color: #ffffff;
  3130. border-color: #cccccc;
  3131. }
  3132. .btn-default .badge {
  3133. color: #ffffff;
  3134. background-color: #333333;
  3135. }
  3136. .btn-primary {
  3137. color: #ffffff;
  3138. background-color: #337ab7;
  3139. border-color: #2e6da4;
  3140. }
  3141. .btn-primary:focus,
  3142. .btn-primary.focus {
  3143. color: #ffffff;
  3144. background-color: #286090;
  3145. border-color: #122b40;
  3146. }
  3147. .btn-primary:hover {
  3148. color: #ffffff;
  3149. background-color: #286090;
  3150. border-color: #204d74;
  3151. }
  3152. .btn-primary:active,
  3153. .btn-primary.active,
  3154. .open > .dropdown-toggle.btn-primary {
  3155. color: #ffffff;
  3156. background-color: #286090;
  3157. border-color: #204d74;
  3158. }
  3159. .btn-primary:active:hover,
  3160. .btn-primary.active:hover,
  3161. .open > .dropdown-toggle.btn-primary:hover,
  3162. .btn-primary:active:focus,
  3163. .btn-primary.active:focus,
  3164. .open > .dropdown-toggle.btn-primary:focus,
  3165. .btn-primary:active.focus,
  3166. .btn-primary.active.focus,
  3167. .open > .dropdown-toggle.btn-primary.focus {
  3168. color: #ffffff;
  3169. background-color: #204d74;
  3170. border-color: #122b40;
  3171. }
  3172. .btn-primary:active,
  3173. .btn-primary.active,
  3174. .open > .dropdown-toggle.btn-primary {
  3175. background-image: none;
  3176. }
  3177. .btn-primary.disabled,
  3178. .btn-primary[disabled],
  3179. fieldset[disabled] .btn-primary,
  3180. .btn-primary.disabled:hover,
  3181. .btn-primary[disabled]:hover,
  3182. fieldset[disabled] .btn-primary:hover,
  3183. .btn-primary.disabled:focus,
  3184. .btn-primary[disabled]:focus,
  3185. fieldset[disabled] .btn-primary:focus,
  3186. .btn-primary.disabled.focus,
  3187. .btn-primary[disabled].focus,
  3188. fieldset[disabled] .btn-primary.focus,
  3189. .btn-primary.disabled:active,
  3190. .btn-primary[disabled]:active,
  3191. fieldset[disabled] .btn-primary:active,
  3192. .btn-primary.disabled.active,
  3193. .btn-primary[disabled].active,
  3194. fieldset[disabled] .btn-primary.active {
  3195. background-color: #337ab7;
  3196. border-color: #2e6da4;
  3197. }
  3198. .btn-primary .badge {
  3199. color: #337ab7;
  3200. background-color: #ffffff;
  3201. }
  3202. .btn-success {
  3203. color: #ffffff;
  3204. background-color: #5cb85c;
  3205. border-color: #4cae4c;
  3206. }
  3207. .btn-success:focus,
  3208. .btn-success.focus {
  3209. color: #ffffff;
  3210. background-color: #449d44;
  3211. border-color: #255625;
  3212. }
  3213. .btn-success:hover {
  3214. color: #ffffff;
  3215. background-color: #449d44;
  3216. border-color: #398439;
  3217. }
  3218. .btn-success:active,
  3219. .btn-success.active,
  3220. .open > .dropdown-toggle.btn-success {
  3221. color: #ffffff;
  3222. background-color: #449d44;
  3223. border-color: #398439;
  3224. }
  3225. .btn-success:active:hover,
  3226. .btn-success.active:hover,
  3227. .open > .dropdown-toggle.btn-success:hover,
  3228. .btn-success:active:focus,
  3229. .btn-success.active:focus,
  3230. .open > .dropdown-toggle.btn-success:focus,
  3231. .btn-success:active.focus,
  3232. .btn-success.active.focus,
  3233. .open > .dropdown-toggle.btn-success.focus {
  3234. color: #ffffff;
  3235. background-color: #398439;
  3236. border-color: #255625;
  3237. }
  3238. .btn-success:active,
  3239. .btn-success.active,
  3240. .open > .dropdown-toggle.btn-success {
  3241. background-image: none;
  3242. }
  3243. .btn-success.disabled,
  3244. .btn-success[disabled],
  3245. fieldset[disabled] .btn-success,
  3246. .btn-success.disabled:hover,
  3247. .btn-success[disabled]:hover,
  3248. fieldset[disabled] .btn-success:hover,
  3249. .btn-success.disabled:focus,
  3250. .btn-success[disabled]:focus,
  3251. fieldset[disabled] .btn-success:focus,
  3252. .btn-success.disabled.focus,
  3253. .btn-success[disabled].focus,
  3254. fieldset[disabled] .btn-success.focus,
  3255. .btn-success.disabled:active,
  3256. .btn-success[disabled]:active,
  3257. fieldset[disabled] .btn-success:active,
  3258. .btn-success.disabled.active,
  3259. .btn-success[disabled].active,
  3260. fieldset[disabled] .btn-success.active {
  3261. background-color: #5cb85c;
  3262. border-color: #4cae4c;
  3263. }
  3264. .btn-success .badge {
  3265. color: #5cb85c;
  3266. background-color: #ffffff;
  3267. }
  3268. .btn-info {
  3269. color: #ffffff;
  3270. background-color: #5bc0de;
  3271. border-color: #46b8da;
  3272. }
  3273. .btn-info:focus,
  3274. .btn-info.focus {
  3275. color: #ffffff;
  3276. background-color: #31b0d5;
  3277. border-color: #1b6d85;
  3278. }
  3279. .btn-info:hover {
  3280. color: #ffffff;
  3281. background-color: #31b0d5;
  3282. border-color: #269abc;
  3283. }
  3284. .btn-info:active,
  3285. .btn-info.active,
  3286. .open > .dropdown-toggle.btn-info {
  3287. color: #ffffff;
  3288. background-color: #31b0d5;
  3289. border-color: #269abc;
  3290. }
  3291. .btn-info:active:hover,
  3292. .btn-info.active:hover,
  3293. .open > .dropdown-toggle.btn-info:hover,
  3294. .btn-info:active:focus,
  3295. .btn-info.active:focus,
  3296. .open > .dropdown-toggle.btn-info:focus,
  3297. .btn-info:active.focus,
  3298. .btn-info.active.focus,
  3299. .open > .dropdown-toggle.btn-info.focus {
  3300. color: #ffffff;
  3301. background-color: #269abc;
  3302. border-color: #1b6d85;
  3303. }
  3304. .btn-info:active,
  3305. .btn-info.active,
  3306. .open > .dropdown-toggle.btn-info {
  3307. background-image: none;
  3308. }
  3309. .btn-info.disabled,
  3310. .btn-info[disabled],
  3311. fieldset[disabled] .btn-info,
  3312. .btn-info.disabled:hover,
  3313. .btn-info[disabled]:hover,
  3314. fieldset[disabled] .btn-info:hover,
  3315. .btn-info.disabled:focus,
  3316. .btn-info[disabled]:focus,
  3317. fieldset[disabled] .btn-info:focus,
  3318. .btn-info.disabled.focus,
  3319. .btn-info[disabled].focus,
  3320. fieldset[disabled] .btn-info.focus,
  3321. .btn-info.disabled:active,
  3322. .btn-info[disabled]:active,
  3323. fieldset[disabled] .btn-info:active,
  3324. .btn-info.disabled.active,
  3325. .btn-info[disabled].active,
  3326. fieldset[disabled] .btn-info.active {
  3327. background-color: #5bc0de;
  3328. border-color: #46b8da;
  3329. }
  3330. .btn-info .badge {
  3331. color: #5bc0de;
  3332. background-color: #ffffff;
  3333. }
  3334. .btn-warning {
  3335. color: #ffffff;
  3336. background-color: #f0ad4e;
  3337. border-color: #eea236;
  3338. }
  3339. .btn-warning:focus,
  3340. .btn-warning.focus {
  3341. color: #ffffff;
  3342. background-color: #ec971f;
  3343. border-color: #985f0d;
  3344. }
  3345. .btn-warning:hover {
  3346. color: #ffffff;
  3347. background-color: #ec971f;
  3348. border-color: #d58512;
  3349. }
  3350. .btn-warning:active,
  3351. .btn-warning.active,
  3352. .open > .dropdown-toggle.btn-warning {
  3353. color: #ffffff;
  3354. background-color: #ec971f;
  3355. border-color: #d58512;
  3356. }
  3357. .btn-warning:active:hover,
  3358. .btn-warning.active:hover,
  3359. .open > .dropdown-toggle.btn-warning:hover,
  3360. .btn-warning:active:focus,
  3361. .btn-warning.active:focus,
  3362. .open > .dropdown-toggle.btn-warning:focus,
  3363. .btn-warning:active.focus,
  3364. .btn-warning.active.focus,
  3365. .open > .dropdown-toggle.btn-warning.focus {
  3366. color: #ffffff;
  3367. background-color: #d58512;
  3368. border-color: #985f0d;
  3369. }
  3370. .btn-warning:active,
  3371. .btn-warning.active,
  3372. .open > .dropdown-toggle.btn-warning {
  3373. background-image: none;
  3374. }
  3375. .btn-warning.disabled,
  3376. .btn-warning[disabled],
  3377. fieldset[disabled] .btn-warning,
  3378. .btn-warning.disabled:hover,
  3379. .btn-warning[disabled]:hover,
  3380. fieldset[disabled] .btn-warning:hover,
  3381. .btn-warning.disabled:focus,
  3382. .btn-warning[disabled]:focus,
  3383. fieldset[disabled] .btn-warning:focus,
  3384. .btn-warning.disabled.focus,
  3385. .btn-warning[disabled].focus,
  3386. fieldset[disabled] .btn-warning.focus,
  3387. .btn-warning.disabled:active,
  3388. .btn-warning[disabled]:active,
  3389. fieldset[disabled] .btn-warning:active,
  3390. .btn-warning.disabled.active,
  3391. .btn-warning[disabled].active,
  3392. fieldset[disabled] .btn-warning.active {
  3393. background-color: #f0ad4e;
  3394. border-color: #eea236;
  3395. }
  3396. .btn-warning .badge {
  3397. color: #f0ad4e;
  3398. background-color: #ffffff;
  3399. }
  3400. .btn-danger {
  3401. color: #ffffff;
  3402. background-color: #d9534f;
  3403. border-color: #d43f3a;
  3404. }
  3405. .btn-danger:focus,
  3406. .btn-danger.focus {
  3407. color: #ffffff;
  3408. background-color: #c9302c;
  3409. border-color: #761c19;
  3410. }
  3411. .btn-danger:hover {
  3412. color: #ffffff;
  3413. background-color: #c9302c;
  3414. border-color: #ac2925;
  3415. }
  3416. .btn-danger:active,
  3417. .btn-danger.active,
  3418. .open > .dropdown-toggle.btn-danger {
  3419. color: #ffffff;
  3420. background-color: #c9302c;
  3421. border-color: #ac2925;
  3422. }
  3423. .btn-danger:active:hover,
  3424. .btn-danger.active:hover,
  3425. .open > .dropdown-toggle.btn-danger:hover,
  3426. .btn-danger:active:focus,
  3427. .btn-danger.active:focus,
  3428. .open > .dropdown-toggle.btn-danger:focus,
  3429. .btn-danger:active.focus,
  3430. .btn-danger.active.focus,
  3431. .open > .dropdown-toggle.btn-danger.focus {
  3432. color: #ffffff;
  3433. background-color: #ac2925;
  3434. border-color: #761c19;
  3435. }
  3436. .btn-danger:active,
  3437. .btn-danger.active,
  3438. .open > .dropdown-toggle.btn-danger {
  3439. background-image: none;
  3440. }
  3441. .btn-danger.disabled,
  3442. .btn-danger[disabled],
  3443. fieldset[disabled] .btn-danger,
  3444. .btn-danger.disabled:hover,
  3445. .btn-danger[disabled]:hover,
  3446. fieldset[disabled] .btn-danger:hover,
  3447. .btn-danger.disabled:focus,
  3448. .btn-danger[disabled]:focus,
  3449. fieldset[disabled] .btn-danger:focus,
  3450. .btn-danger.disabled.focus,
  3451. .btn-danger[disabled].focus,
  3452. fieldset[disabled] .btn-danger.focus,
  3453. .btn-danger.disabled:active,
  3454. .btn-danger[disabled]:active,
  3455. fieldset[disabled] .btn-danger:active,
  3456. .btn-danger.disabled.active,
  3457. .btn-danger[disabled].active,
  3458. fieldset[disabled] .btn-danger.active {
  3459. background-color: #d9534f;
  3460. border-color: #d43f3a;
  3461. }
  3462. .btn-danger .badge {
  3463. color: #d9534f;
  3464. background-color: #ffffff;
  3465. }
  3466. .btn-link {
  3467. color: #337ab7;
  3468. font-weight: normal;
  3469. border-radius: 0;
  3470. }
  3471. .btn-link,
  3472. .btn-link:active,
  3473. .btn-link.active,
  3474. .btn-link[disabled],
  3475. fieldset[disabled] .btn-link {
  3476. background-color: transparent;
  3477. -webkit-box-shadow: none;
  3478. box-shadow: none;
  3479. }
  3480. .btn-link,
  3481. .btn-link:hover,
  3482. .btn-link:focus,
  3483. .btn-link:active {
  3484. border-color: transparent;
  3485. }
  3486. .btn-link:hover,
  3487. .btn-link:focus {
  3488. color: #23527c;
  3489. text-decoration: underline;
  3490. background-color: transparent;
  3491. }
  3492. .btn-link[disabled]:hover,
  3493. fieldset[disabled] .btn-link:hover,
  3494. .btn-link[disabled]:focus,
  3495. fieldset[disabled] .btn-link:focus {
  3496. color: #777777;
  3497. text-decoration: none;
  3498. }
  3499. .btn-lg,
  3500. .btn-group-lg > .btn {
  3501. padding: 10px 16px;
  3502. font-size: 18px;
  3503. line-height: 1.3333333;
  3504. border-radius: 6px;
  3505. }
  3506. .btn-sm,
  3507. .btn-group-sm > .btn {
  3508. padding: 5px 10px;
  3509. font-size: 12px;
  3510. line-height: 1.5;
  3511. border-radius: 3px;
  3512. }
  3513. .btn-xs,
  3514. .btn-group-xs > .btn {
  3515. padding: 1px 5px;
  3516. font-size: 12px;
  3517. line-height: 1.5;
  3518. border-radius: 3px;
  3519. }
  3520. .btn-block {
  3521. display: block;
  3522. width: 100%;
  3523. }
  3524. .btn-block + .btn-block {
  3525. margin-top: 5px;
  3526. }
  3527. input[type="submit"].btn-block,
  3528. input[type="reset"].btn-block,
  3529. input[type="button"].btn-block {
  3530. width: 100%;
  3531. }
  3532. .fade {
  3533. opacity: 0;
  3534. -webkit-transition: opacity 0.15s linear;
  3535. -o-transition: opacity 0.15s linear;
  3536. transition: opacity 0.15s linear;
  3537. }
  3538. .fade.in {
  3539. opacity: 1;
  3540. }
  3541. .collapse {
  3542. display: none;
  3543. }
  3544. .collapse.in {
  3545. display: block;
  3546. }
  3547. tr.collapse.in {
  3548. display: table-row;
  3549. }
  3550. tbody.collapse.in {
  3551. display: table-row-group;
  3552. }
  3553. .collapsing {
  3554. position: relative;
  3555. height: 0;
  3556. overflow: hidden;
  3557. -webkit-transition-property: height, visibility;
  3558. -o-transition-property: height, visibility;
  3559. transition-property: height, visibility;
  3560. -webkit-transition-duration: 0.35s;
  3561. -o-transition-duration: 0.35s;
  3562. transition-duration: 0.35s;
  3563. -webkit-transition-timing-function: ease;
  3564. -o-transition-timing-function: ease;
  3565. transition-timing-function: ease;
  3566. }
  3567. .caret {
  3568. display: inline-block;
  3569. width: 0;
  3570. height: 0;
  3571. margin-left: 2px;
  3572. vertical-align: middle;
  3573. border-top: 4px dashed;
  3574. border-top: 4px solid \9;
  3575. border-right: 4px solid transparent;
  3576. border-left: 4px solid transparent;
  3577. }
  3578. .dropup,
  3579. .dropdown {
  3580. position: relative;
  3581. }
  3582. .dropdown-toggle:focus {
  3583. outline: 0;
  3584. }
  3585. .dropdown-menu {
  3586. position: absolute;
  3587. top: 100%;
  3588. left: 0;
  3589. z-index: 1000;
  3590. display: none;
  3591. float: left;
  3592. min-width: 160px;
  3593. padding: 5px 0;
  3594. margin: 2px 0 0;
  3595. list-style: none;
  3596. font-size: 14px;
  3597. text-align: left;
  3598. background-color: #ffffff;
  3599. border: 1px solid #cccccc;
  3600. border: 1px solid rgba(0, 0, 0, 0.15);
  3601. border-radius: 4px;
  3602. -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  3603. box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  3604. -webkit-background-clip: padding-box;
  3605. background-clip: padding-box;
  3606. }
  3607. .dropdown-menu.pull-right {
  3608. right: 0;
  3609. left: auto;
  3610. }
  3611. .dropdown-menu .divider {
  3612. height: 1px;
  3613. margin: 9px 0;
  3614. overflow: hidden;
  3615. background-color: #e5e5e5;
  3616. }
  3617. .dropdown-menu > li > a {
  3618. display: block;
  3619. padding: 3px 20px;
  3620. clear: both;
  3621. font-weight: normal;
  3622. line-height: 1.42857143;
  3623. color: #333333;
  3624. white-space: nowrap;
  3625. }
  3626. .dropdown-menu > li > a:hover,
  3627. .dropdown-menu > li > a:focus {
  3628. text-decoration: none;
  3629. color: #262626;
  3630. background-color: #f5f5f5;
  3631. }
  3632. .dropdown-menu > .active > a,
  3633. .dropdown-menu > .active > a:hover,
  3634. .dropdown-menu > .active > a:focus {
  3635. color: #ffffff;
  3636. text-decoration: none;
  3637. outline: 0;
  3638. background-color: #337ab7;
  3639. }
  3640. .dropdown-menu > .disabled > a,
  3641. .dropdown-menu > .disabled > a:hover,
  3642. .dropdown-menu > .disabled > a:focus {
  3643. color: #777777;
  3644. }
  3645. .dropdown-menu > .disabled > a:hover,
  3646. .dropdown-menu > .disabled > a:focus {
  3647. text-decoration: none;
  3648. background-color: transparent;
  3649. background-image: none;
  3650. filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  3651. cursor: not-allowed;
  3652. }
  3653. .open > .dropdown-menu {
  3654. display: block;
  3655. }
  3656. .open > a {
  3657. outline: 0;
  3658. }
  3659. .dropdown-menu-right {
  3660. left: auto;
  3661. right: 0;
  3662. }
  3663. .dropdown-menu-left {
  3664. left: 0;
  3665. right: auto;
  3666. }
  3667. .dropdown-header {
  3668. display: block;
  3669. padding: 3px 20px;
  3670. font-size: 12px;
  3671. line-height: 1.42857143;
  3672. color: #777777;
  3673. white-space: nowrap;
  3674. }
  3675. .dropdown-backdrop {
  3676. position: fixed;
  3677. left: 0;
  3678. right: 0;
  3679. bottom: 0;
  3680. top: 0;
  3681. z-index: 990;
  3682. }
  3683. .pull-right > .dropdown-menu {
  3684. right: 0;
  3685. left: auto;
  3686. }
  3687. .dropup .caret,
  3688. .navbar-fixed-bottom .dropdown .caret {
  3689. border-top: 0;
  3690. border-bottom: 4px dashed;
  3691. border-bottom: 4px solid \9;
  3692. content: "";
  3693. }
  3694. .dropup .dropdown-menu,
  3695. .navbar-fixed-bottom .dropdown .dropdown-menu {
  3696. top: auto;
  3697. bottom: 100%;
  3698. margin-bottom: 2px;
  3699. }
  3700. @media (min-width: 768px) {
  3701. .navbar-right .dropdown-menu {
  3702. left: auto;
  3703. right: 0;
  3704. }
  3705. .navbar-right .dropdown-menu-left {
  3706. left: 0;
  3707. right: auto;
  3708. }
  3709. }
  3710. .btn-group,
  3711. .btn-group-vertical {
  3712. position: relative;
  3713. display: inline-block;
  3714. vertical-align: middle;
  3715. }
  3716. .btn-group > .btn,
  3717. .btn-group-vertical > .btn {
  3718. position: relative;
  3719. float: left;
  3720. }
  3721. .btn-group > .btn:hover,
  3722. .btn-group-vertical > .btn:hover,
  3723. .btn-group > .btn:focus,
  3724. .btn-group-vertical > .btn:focus,
  3725. .btn-group > .btn:active,
  3726. .btn-group-vertical > .btn:active,
  3727. .btn-group > .btn.active,
  3728. .btn-group-vertical > .btn.active {
  3729. z-index: 2;
  3730. }
  3731. .btn-group .btn + .btn,
  3732. .btn-group .btn + .btn-group,
  3733. .btn-group .btn-group + .btn,
  3734. .btn-group .btn-group + .btn-group {
  3735. margin-left: -1px;
  3736. }
  3737. .btn-toolbar {
  3738. margin-left: -5px;
  3739. }
  3740. .btn-toolbar .btn,
  3741. .btn-toolbar .btn-group,
  3742. .btn-toolbar .input-group {
  3743. float: left;
  3744. }
  3745. .btn-toolbar > .btn,
  3746. .btn-toolbar > .btn-group,
  3747. .btn-toolbar > .input-group {
  3748. margin-left: 5px;
  3749. }
  3750. .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
  3751. border-radius: 0;
  3752. }
  3753. .btn-group > .btn:first-child {
  3754. margin-left: 0;
  3755. }
  3756. .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
  3757. border-bottom-right-radius: 0;
  3758. border-top-right-radius: 0;
  3759. }
  3760. .btn-group > .btn:last-child:not(:first-child),
  3761. .btn-group > .dropdown-toggle:not(:first-child) {
  3762. border-bottom-left-radius: 0;
  3763. border-top-left-radius: 0;
  3764. }
  3765. .btn-group > .btn-group {
  3766. float: left;
  3767. }
  3768. .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
  3769. border-radius: 0;
  3770. }
  3771. .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
  3772. .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  3773. border-bottom-right-radius: 0;
  3774. border-top-right-radius: 0;
  3775. }
  3776. .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
  3777. border-bottom-left-radius: 0;
  3778. border-top-left-radius: 0;
  3779. }
  3780. .btn-group .dropdown-toggle:active,
  3781. .btn-group.open .dropdown-toggle {
  3782. outline: 0;
  3783. }
  3784. .btn-group > .btn + .dropdown-toggle {
  3785. padding-left: 8px;
  3786. padding-right: 8px;
  3787. }
  3788. .btn-group > .btn-lg + .dropdown-toggle {
  3789. padding-left: 12px;
  3790. padding-right: 12px;
  3791. }
  3792. .btn-group.open .dropdown-toggle {
  3793. -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  3794. box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  3795. }
  3796. .btn-group.open .dropdown-toggle.btn-link {
  3797. -webkit-box-shadow: none;
  3798. box-shadow: none;
  3799. }
  3800. .btn .caret {
  3801. margin-left: 0;
  3802. }
  3803. .btn-lg .caret {
  3804. border-width: 5px 5px 0;
  3805. border-bottom-width: 0;
  3806. }
  3807. .dropup .btn-lg .caret {
  3808. border-width: 0 5px 5px;
  3809. }
  3810. .btn-group-vertical > .btn,
  3811. .btn-group-vertical > .btn-group,
  3812. .btn-group-vertical > .btn-group > .btn {
  3813. display: block;
  3814. float: none;
  3815. width: 100%;
  3816. max-width: 100%;
  3817. }
  3818. .btn-group-vertical > .btn-group > .btn {
  3819. float: none;
  3820. }
  3821. .btn-group-vertical > .btn + .btn,
  3822. .btn-group-vertical > .btn + .btn-group,
  3823. .btn-group-vertical > .btn-group + .btn,
  3824. .btn-group-vertical > .btn-group + .btn-group {
  3825. margin-top: -1px;
  3826. margin-left: 0;
  3827. }
  3828. .btn-group-vertical > .btn:not(:first-child):not(:last-child) {
  3829. border-radius: 0;
  3830. }
  3831. .btn-group-vertical > .btn:first-child:not(:last-child) {
  3832. border-top-right-radius: 4px;
  3833. border-bottom-right-radius: 0;
  3834. border-bottom-left-radius: 0;
  3835. }
  3836. .btn-group-vertical > .btn:last-child:not(:first-child) {
  3837. border-bottom-left-radius: 4px;
  3838. border-top-right-radius: 0;
  3839. border-top-left-radius: 0;
  3840. }
  3841. .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
  3842. border-radius: 0;
  3843. }
  3844. .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
  3845. .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  3846. border-bottom-right-radius: 0;
  3847. border-bottom-left-radius: 0;
  3848. }
  3849. .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
  3850. border-top-right-radius: 0;
  3851. border-top-left-radius: 0;
  3852. }
  3853. .btn-group-justified {
  3854. display: table;
  3855. width: 100%;
  3856. table-layout: fixed;
  3857. border-collapse: separate;
  3858. }
  3859. .btn-group-justified > .btn,
  3860. .btn-group-justified > .btn-group {
  3861. float: none;
  3862. display: table-cell;
  3863. width: 1%;
  3864. }
  3865. .btn-group-justified > .btn-group .btn {
  3866. width: 100%;
  3867. }
  3868. .btn-group-justified > .btn-group .dropdown-menu {
  3869. left: auto;
  3870. }
  3871. [data-toggle="buttons"] > .btn input[type="radio"],
  3872. [data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
  3873. [data-toggle="buttons"] > .btn input[type="checkbox"],
  3874. [data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
  3875. position: absolute;
  3876. clip: rect(0, 0, 0, 0);
  3877. pointer-events: none;
  3878. }
  3879. .input-group {
  3880. position: relative;
  3881. display: table;
  3882. border-collapse: separate;
  3883. }
  3884. .input-group[class*="col-"] {
  3885. float: none;
  3886. padding-left: 0;
  3887. padding-right: 0;
  3888. }
  3889. .input-group .form-control {
  3890. position: relative;
  3891. z-index: 2;
  3892. float: left;
  3893. width: 100%;
  3894. margin-bottom: 0;
  3895. }
  3896. .input-group-lg > .form-control,
  3897. .input-group-lg > .input-group-addon,
  3898. .input-group-lg > .input-group-btn > .btn {
  3899. height: 46px;
  3900. padding: 10px 16px;
  3901. font-size: 18px;
  3902. line-height: 1.3333333;
  3903. border-radius: 6px;
  3904. }
  3905. select.input-group-lg > .form-control,
  3906. select.input-group-lg > .input-group-addon,
  3907. select.input-group-lg > .input-group-btn > .btn {
  3908. height: 46px;
  3909. line-height: 46px;
  3910. }
  3911. textarea.input-group-lg > .form-control,
  3912. textarea.input-group-lg > .input-group-addon,
  3913. textarea.input-group-lg > .input-group-btn > .btn,
  3914. select[multiple].input-group-lg > .form-control,
  3915. select[multiple].input-group-lg > .input-group-addon,
  3916. select[multiple].input-group-lg > .input-group-btn > .btn {
  3917. height: auto;
  3918. }
  3919. .input-group-sm > .form-control,
  3920. .input-group-sm > .input-group-addon,
  3921. .input-group-sm > .input-group-btn > .btn {
  3922. height: 30px;
  3923. padding: 5px 10px;
  3924. font-size: 12px;
  3925. line-height: 1.5;
  3926. border-radius: 3px;
  3927. }
  3928. select.input-group-sm > .form-control,
  3929. select.input-group-sm > .input-group-addon,
  3930. select.input-group-sm > .input-group-btn > .btn {
  3931. height: 30px;
  3932. line-height: 30px;
  3933. }
  3934. textarea.input-group-sm > .form-control,
  3935. textarea.input-group-sm > .input-group-addon,
  3936. textarea.input-group-sm > .input-group-btn > .btn,
  3937. select[multiple].input-group-sm > .form-control,
  3938. select[multiple].input-group-sm > .input-group-addon,
  3939. select[multiple].input-group-sm > .input-group-btn > .btn {
  3940. height: auto;
  3941. }
  3942. .input-group-addon,
  3943. .input-group-btn,
  3944. .input-group .form-control {
  3945. display: table-cell;
  3946. }
  3947. .input-group-addon:not(:first-child):not(:last-child),
  3948. .input-group-btn:not(:first-child):not(:last-child),
  3949. .input-group .form-control:not(:first-child):not(:last-child) {
  3950. border-radius: 0;
  3951. }
  3952. .input-group-addon,
  3953. .input-group-btn {
  3954. width: 1%;
  3955. white-space: nowrap;
  3956. vertical-align: middle;
  3957. }
  3958. .input-group-addon {
  3959. padding: 6px 12px;
  3960. font-size: 14px;
  3961. font-weight: normal;
  3962. line-height: 1;
  3963. color: #555555;
  3964. text-align: center;
  3965. background-color: #eeeeee;
  3966. border: 1px solid #cccccc;
  3967. border-radius: 4px;
  3968. }
  3969. .input-group-addon.input-sm {
  3970. padding: 5px 10px;
  3971. font-size: 12px;
  3972. border-radius: 3px;
  3973. }
  3974. .input-group-addon.input-lg {
  3975. padding: 10px 16px;
  3976. font-size: 18px;
  3977. border-radius: 6px;
  3978. }
  3979. .input-group-addon input[type="radio"],
  3980. .input-group-addon input[type="checkbox"] {
  3981. margin-top: 0;
  3982. }
  3983. .input-group .form-control:first-child,
  3984. .input-group-addon:first-child,
  3985. .input-group-btn:first-child > .btn,
  3986. .input-group-btn:first-child > .btn-group > .btn,
  3987. .input-group-btn:first-child > .dropdown-toggle,
  3988. .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
  3989. .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
  3990. border-bottom-right-radius: 0;
  3991. border-top-right-radius: 0;
  3992. }
  3993. .input-group-addon:first-child {
  3994. border-right: 0;
  3995. }
  3996. .input-group .form-control:last-child,
  3997. .input-group-addon:last-child,
  3998. .input-group-btn:last-child > .btn,
  3999. .input-group-btn:last-child > .btn-group > .btn,
  4000. .input-group-btn:last-child > .dropdown-toggle,
  4001. .input-group-btn:first-child > .btn:not(:first-child),
  4002. .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
  4003. border-bottom-left-radius: 0;
  4004. border-top-left-radius: 0;
  4005. }
  4006. .input-group-addon:last-child {
  4007. border-left: 0;
  4008. }
  4009. .input-group-btn {
  4010. position: relative;
  4011. font-size: 0;
  4012. white-space: nowrap;
  4013. }
  4014. .input-group-btn > .btn {
  4015. position: relative;
  4016. }
  4017. .input-group-btn > .btn + .btn {
  4018. margin-left: -1px;
  4019. }
  4020. .input-group-btn > .btn:hover,
  4021. .input-group-btn > .btn:focus,
  4022. .input-group-btn > .btn:active {
  4023. z-index: 2;
  4024. }
  4025. .input-group-btn:first-child > .btn,
  4026. .input-group-btn:first-child > .btn-group {
  4027. margin-right: -1px;
  4028. }
  4029. .input-group-btn:last-child > .btn,
  4030. .input-group-btn:last-child > .btn-group {
  4031. z-index: 2;
  4032. margin-left: -1px;
  4033. }
  4034. .nav {
  4035. margin-bottom: 0;
  4036. padding-left: 0;
  4037. list-style: none;
  4038. }
  4039. .nav > li {
  4040. position: relative;
  4041. display: block;
  4042. }
  4043. .nav > li > a {
  4044. position: relative;
  4045. display: block;
  4046. padding: 10px 15px;
  4047. }
  4048. .nav > li > a:hover,
  4049. .nav > li > a:focus {
  4050. text-decoration: none;
  4051. background-color: #eeeeee;
  4052. }
  4053. .nav > li.disabled > a {
  4054. color: #777777;
  4055. }
  4056. .nav > li.disabled > a:hover,
  4057. .nav > li.disabled > a:focus {
  4058. color: #777777;
  4059. text-decoration: none;
  4060. background-color: transparent;
  4061. cursor: not-allowed;
  4062. }
  4063. .nav .open > a,
  4064. .nav .open > a:hover,
  4065. .nav .open > a:focus {
  4066. background-color: #eeeeee;
  4067. border-color: #337ab7;
  4068. }
  4069. .nav .nav-divider {
  4070. height: 1px;
  4071. margin: 9px 0;
  4072. overflow: hidden;
  4073. background-color: #e5e5e5;
  4074. }
  4075. .nav > li > a > img {
  4076. max-width: none;
  4077. }
  4078. .nav-tabs {
  4079. border-bottom: 1px solid #dddddd;
  4080. }
  4081. .nav-tabs > li {
  4082. float: left;
  4083. margin-bottom: -1px;
  4084. }
  4085. .nav-tabs > li > a {
  4086. margin-right: 2px;
  4087. line-height: 1.42857143;
  4088. border: 1px solid transparent;
  4089. border-radius: 4px 4px 0 0;
  4090. }
  4091. .nav-tabs > li > a:hover {
  4092. border-color: #eeeeee #eeeeee #dddddd;
  4093. }
  4094. .nav-tabs > li.active > a,
  4095. .nav-tabs > li.active > a:hover,
  4096. .nav-tabs > li.active > a:focus {
  4097. color: #555555;
  4098. background-color: #ffffff;
  4099. border: 1px solid #dddddd;
  4100. border-bottom-color: transparent;
  4101. cursor: default;
  4102. }
  4103. .nav-tabs.nav-justified {
  4104. width: 100%;
  4105. border-bottom: 0;
  4106. }
  4107. .nav-tabs.nav-justified > li {
  4108. float: none;
  4109. }
  4110. .nav-tabs.nav-justified > li > a {
  4111. text-align: center;
  4112. margin-bottom: 5px;
  4113. }
  4114. .nav-tabs.nav-justified > .dropdown .dropdown-menu {
  4115. top: auto;
  4116. left: auto;
  4117. }
  4118. @media (min-width: 768px) {
  4119. .nav-tabs.nav-justified > li {
  4120. display: table-cell;
  4121. width: 1%;
  4122. }
  4123. .nav-tabs.nav-justified > li > a {
  4124. margin-bottom: 0;
  4125. }
  4126. }
  4127. .nav-tabs.nav-justified > li > a {
  4128. margin-right: 0;
  4129. border-radius: 4px;
  4130. }
  4131. .nav-tabs.nav-justified > .active > a,
  4132. .nav-tabs.nav-justified > .active > a:hover,
  4133. .nav-tabs.nav-justified > .active > a:focus {
  4134. border: 1px solid #dddddd;
  4135. }
  4136. @media (min-width: 768px) {
  4137. .nav-tabs.nav-justified > li > a {
  4138. border-bottom: 1px solid #dddddd;
  4139. border-radius: 4px 4px 0 0;
  4140. }
  4141. .nav-tabs.nav-justified > .active > a,
  4142. .nav-tabs.nav-justified > .active > a:hover,
  4143. .nav-tabs.nav-justified > .active > a:focus {
  4144. border-bottom-color: #ffffff;
  4145. }
  4146. }
  4147. .nav-pills > li {
  4148. float: left;
  4149. }
  4150. .nav-pills > li > a {
  4151. border-radius: 4px;
  4152. }
  4153. .nav-pills > li + li {
  4154. margin-left: 2px;
  4155. }
  4156. .nav-pills > li.active > a,
  4157. .nav-pills > li.active > a:hover,
  4158. .nav-pills > li.active > a:focus {
  4159. color: #ffffff;
  4160. background-color: #337ab7;
  4161. }
  4162. .nav-stacked > li {
  4163. float: none;
  4164. }
  4165. .nav-stacked > li + li {
  4166. margin-top: 2px;
  4167. margin-left: 0;
  4168. }
  4169. .nav-justified {
  4170. width: 100%;
  4171. }
  4172. .nav-justified > li {
  4173. float: none;
  4174. }
  4175. .nav-justified > li > a {
  4176. text-align: center;
  4177. margin-bottom: 5px;
  4178. }
  4179. .nav-justified > .dropdown .dropdown-menu {
  4180. top: auto;
  4181. left: auto;
  4182. }
  4183. @media (min-width: 768px) {
  4184. .nav-justified > li {
  4185. display: table-cell;
  4186. width: 1%;
  4187. }
  4188. .nav-justified > li > a {
  4189. margin-bottom: 0;
  4190. }
  4191. }
  4192. .nav-tabs-justified {
  4193. border-bottom: 0;
  4194. }
  4195. .nav-tabs-justified > li > a {
  4196. margin-right: 0;
  4197. border-radius: 4px;
  4198. }
  4199. .nav-tabs-justified > .active > a,
  4200. .nav-tabs-justified > .active > a:hover,
  4201. .nav-tabs-justified > .active > a:focus {
  4202. border: 1px solid #dddddd;
  4203. }
  4204. @media (min-width: 768px) {
  4205. .nav-tabs-justified > li > a {
  4206. border-bottom: 1px solid #dddddd;
  4207. border-radius: 4px 4px 0 0;
  4208. }
  4209. .nav-tabs-justified > .active > a,
  4210. .nav-tabs-justified > .active > a:hover,
  4211. .nav-tabs-justified > .active > a:focus {
  4212. border-bottom-color: #ffffff;
  4213. }
  4214. }
  4215. .tab-content > .tab-pane {
  4216. display: none;
  4217. }
  4218. .tab-content > .active {
  4219. display: block;
  4220. }
  4221. .nav-tabs .dropdown-menu {
  4222. margin-top: -1px;
  4223. border-top-right-radius: 0;
  4224. border-top-left-radius: 0;
  4225. }
  4226. .navbar {
  4227. position: relative;
  4228. min-height: 50px;
  4229. margin-bottom: 20px;
  4230. border: 1px solid transparent;
  4231. }
  4232. @media (min-width: 768px) {
  4233. .navbar {
  4234. border-radius: 4px;
  4235. }
  4236. }
  4237. @media (min-width: 768px) {
  4238. .navbar-header {
  4239. float: left;
  4240. }
  4241. }
  4242. .navbar-collapse {
  4243. overflow-x: visible;
  4244. padding-right: 15px;
  4245. padding-left: 15px;
  4246. border-top: 1px solid transparent;
  4247. -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
  4248. box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
  4249. -webkit-overflow-scrolling: touch;
  4250. }
  4251. .navbar-collapse.in {
  4252. overflow-y: auto;
  4253. }
  4254. @media (min-width: 768px) {
  4255. .navbar-collapse {
  4256. width: auto;
  4257. border-top: 0;
  4258. -webkit-box-shadow: none;
  4259. box-shadow: none;
  4260. }
  4261. .navbar-collapse.collapse {
  4262. display: block !important;
  4263. height: auto !important;
  4264. padding-bottom: 0;
  4265. overflow: visible !important;
  4266. }
  4267. .navbar-collapse.in {
  4268. overflow-y: visible;
  4269. }
  4270. .navbar-fixed-top .navbar-collapse,
  4271. .navbar-static-top .navbar-collapse,
  4272. .navbar-fixed-bottom .navbar-collapse {
  4273. padding-left: 0;
  4274. padding-right: 0;
  4275. }
  4276. }
  4277. .navbar-fixed-top .navbar-collapse,
  4278. .navbar-fixed-bottom .navbar-collapse {
  4279. max-height: 340px;
  4280. }
  4281. @media (max-device-width: 480px) and (orientation: landscape) {
  4282. .navbar-fixed-top .navbar-collapse,
  4283. .navbar-fixed-bottom .navbar-collapse {
  4284. max-height: 200px;
  4285. }
  4286. }
  4287. .container > .navbar-header,
  4288. .container-fluid > .navbar-header,
  4289. .container > .navbar-collapse,
  4290. .container-fluid > .navbar-collapse {
  4291. margin-right: -15px;
  4292. margin-left: -15px;
  4293. }
  4294. @media (min-width: 768px) {
  4295. .container > .navbar-header,
  4296. .container-fluid > .navbar-header,
  4297. .container > .navbar-collapse,
  4298. .container-fluid > .navbar-collapse {
  4299. margin-right: 0;
  4300. margin-left: 0;
  4301. }
  4302. }
  4303. .navbar-static-top {
  4304. z-index: 1000;
  4305. border-width: 0 0 1px;
  4306. }
  4307. @media (min-width: 768px) {
  4308. .navbar-static-top {
  4309. border-radius: 0;
  4310. }
  4311. }
  4312. .navbar-fixed-top,
  4313. .navbar-fixed-bottom {
  4314. position: fixed;
  4315. right: 0;
  4316. left: 0;
  4317. z-index: 1030;
  4318. }
  4319. @media (min-width: 768px) {
  4320. .navbar-fixed-top,
  4321. .navbar-fixed-bottom {
  4322. border-radius: 0;
  4323. }
  4324. }
  4325. .navbar-fixed-top {
  4326. top: 0;
  4327. border-width: 0 0 1px;
  4328. }
  4329. .navbar-fixed-bottom {
  4330. bottom: 0;
  4331. margin-bottom: 0;
  4332. border-width: 1px 0 0;
  4333. }
  4334. .navbar-brand {
  4335. float: left;
  4336. padding: 15px 15px;
  4337. font-size: 18px;
  4338. line-height: 20px;
  4339. height: 50px;
  4340. }
  4341. .navbar-brand:hover,
  4342. .navbar-brand:focus {
  4343. text-decoration: none;
  4344. }
  4345. .navbar-brand > img {
  4346. display: block;
  4347. }
  4348. @media (min-width: 768px) {
  4349. .navbar > .container .navbar-brand,
  4350. .navbar > .container-fluid .navbar-brand {
  4351. margin-left: -15px;
  4352. }
  4353. }
  4354. .navbar-toggle {
  4355. position: relative;
  4356. float: right;
  4357. margin-right: 15px;
  4358. padding: 9px 10px;
  4359. margin-top: 8px;
  4360. margin-bottom: 8px;
  4361. background-color: transparent;
  4362. background-image: none;
  4363. border: 1px solid transparent;
  4364. border-radius: 4px;
  4365. }
  4366. .navbar-toggle:focus {
  4367. outline: 0;
  4368. }
  4369. .navbar-toggle .icon-bar {
  4370. display: block;
  4371. width: 22px;
  4372. height: 2px;
  4373. border-radius: 1px;
  4374. }
  4375. .navbar-toggle .icon-bar + .icon-bar {
  4376. margin-top: 4px;
  4377. }
  4378. @media (min-width: 768px) {
  4379. .navbar-toggle {
  4380. display: none;
  4381. }
  4382. }
  4383. .navbar-nav {
  4384. margin: 7.5px -15px;
  4385. }
  4386. .navbar-nav > li > a {
  4387. padding-top: 10px;
  4388. padding-bottom: 10px;
  4389. line-height: 20px;
  4390. }
  4391. @media (max-width: 767px) {
  4392. .navbar-nav .open .dropdown-menu {
  4393. position: static;
  4394. float: none;
  4395. width: auto;
  4396. margin-top: 0;
  4397. background-color: transparent;
  4398. border: 0;
  4399. -webkit-box-shadow: none;
  4400. box-shadow: none;
  4401. }
  4402. .navbar-nav .open .dropdown-menu > li > a,
  4403. .navbar-nav .open .dropdown-menu .dropdown-header {
  4404. padding: 5px 15px 5px 25px;
  4405. }
  4406. .navbar-nav .open .dropdown-menu > li > a {
  4407. line-height: 20px;
  4408. }
  4409. .navbar-nav .open .dropdown-menu > li > a:hover,
  4410. .navbar-nav .open .dropdown-menu > li > a:focus {
  4411. background-image: none;
  4412. }
  4413. }
  4414. @media (min-width: 768px) {
  4415. .navbar-nav {
  4416. float: left;
  4417. margin: 0;
  4418. }
  4419. .navbar-nav > li {
  4420. float: left;
  4421. }
  4422. .navbar-nav > li > a {
  4423. padding-top: 15px;
  4424. padding-bottom: 15px;
  4425. }
  4426. }
  4427. .navbar-form {
  4428. margin-left: -15px;
  4429. margin-right: -15px;
  4430. padding: 10px 15px;
  4431. border-top: 1px solid transparent;
  4432. border-bottom: 1px solid transparent;
  4433. -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  4434. box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  4435. margin-top: 8px;
  4436. margin-bottom: 8px;
  4437. }
  4438. @media (min-width: 768px) {
  4439. .navbar-form .form-group {
  4440. display: inline-block;
  4441. margin-bottom: 0;
  4442. vertical-align: middle;
  4443. }
  4444. .navbar-form .form-control {
  4445. display: inline-block;
  4446. width: auto;
  4447. vertical-align: middle;
  4448. }
  4449. .navbar-form .form-control-static {
  4450. display: inline-block;
  4451. }
  4452. .navbar-form .input-group {
  4453. display: inline-table;
  4454. vertical-align: middle;
  4455. }
  4456. .navbar-form .input-group .input-group-addon,
  4457. .navbar-form .input-group .input-group-btn,
  4458. .navbar-form .input-group .form-control {
  4459. width: auto;
  4460. }
  4461. .navbar-form .input-group > .form-control {
  4462. width: 100%;
  4463. }
  4464. .navbar-form .control-label {
  4465. margin-bottom: 0;
  4466. vertical-align: middle;
  4467. }
  4468. .navbar-form .radio,
  4469. .navbar-form .checkbox {
  4470. display: inline-block;
  4471. margin-top: 0;
  4472. margin-bottom: 0;
  4473. vertical-align: middle;
  4474. }
  4475. .navbar-form .radio label,
  4476. .navbar-form .checkbox label {
  4477. padding-left: 0;
  4478. }
  4479. .navbar-form .radio input[type="radio"],
  4480. .navbar-form .checkbox input[type="checkbox"] {
  4481. position: relative;
  4482. margin-left: 0;
  4483. }
  4484. .navbar-form .has-feedback .form-control-feedback {
  4485. top: 0;
  4486. }
  4487. }
  4488. @media (max-width: 767px) {
  4489. .navbar-form .form-group {
  4490. margin-bottom: 5px;
  4491. }
  4492. .navbar-form .form-group:last-child {
  4493. margin-bottom: 0;
  4494. }
  4495. }
  4496. @media (min-width: 768px) {
  4497. .navbar-form {
  4498. width: auto;
  4499. border: 0;
  4500. margin-left: 0;
  4501. margin-right: 0;
  4502. padding-top: 0;
  4503. padding-bottom: 0;
  4504. -webkit-box-shadow: none;
  4505. box-shadow: none;
  4506. }
  4507. }
  4508. .navbar-nav > li > .dropdown-menu {
  4509. margin-top: 0;
  4510. border-top-right-radius: 0;
  4511. border-top-left-radius: 0;
  4512. }
  4513. .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
  4514. margin-bottom: 0;
  4515. border-top-right-radius: 4px;
  4516. border-top-left-radius: 4px;
  4517. border-bottom-right-radius: 0;
  4518. border-bottom-left-radius: 0;
  4519. }
  4520. .navbar-btn {
  4521. margin-top: 8px;
  4522. margin-bottom: 8px;
  4523. }
  4524. .navbar-btn.btn-sm {
  4525. margin-top: 10px;
  4526. margin-bottom: 10px;
  4527. }
  4528. .navbar-btn.btn-xs {
  4529. margin-top: 14px;
  4530. margin-bottom: 14px;
  4531. }
  4532. .navbar-text {
  4533. margin-top: 15px;
  4534. margin-bottom: 15px;
  4535. }
  4536. @media (min-width: 768px) {
  4537. .navbar-text {
  4538. float: left;
  4539. margin-left: 15px;
  4540. margin-right: 15px;
  4541. }
  4542. }
  4543. @media (min-width: 768px) {
  4544. .navbar-left {
  4545. float: left !important;
  4546. }
  4547. .navbar-right {
  4548. float: right !important;
  4549. margin-right: -15px;
  4550. }
  4551. .navbar-right ~ .navbar-right {
  4552. margin-right: 0;
  4553. }
  4554. }
  4555. .navbar-default {
  4556. background-color: #f8f8f8;
  4557. border-color: #e7e7e7;
  4558. }
  4559. .navbar-default .navbar-brand {
  4560. color: #777777;
  4561. }
  4562. .navbar-default .navbar-brand:hover,
  4563. .navbar-default .navbar-brand:focus {
  4564. color: #5e5e5e;
  4565. background-color: transparent;
  4566. }
  4567. .navbar-default .navbar-text {
  4568. color: #777777;
  4569. }
  4570. .navbar-default .navbar-nav > li > a {
  4571. color: #777777;
  4572. }
  4573. .navbar-default .navbar-nav > li > a:hover,
  4574. .navbar-default .navbar-nav > li > a:focus {
  4575. color: #333333;
  4576. background-color: transparent;
  4577. }
  4578. .navbar-default .navbar-nav > .active > a,
  4579. .navbar-default .navbar-nav > .active > a:hover,
  4580. .navbar-default .navbar-nav > .active > a:focus {
  4581. color: #555555;
  4582. background-color: #e7e7e7;
  4583. }
  4584. .navbar-default .navbar-nav > .disabled > a,
  4585. .navbar-default .navbar-nav > .disabled > a:hover,
  4586. .navbar-default .navbar-nav > .disabled > a:focus {
  4587. color: #cccccc;
  4588. background-color: transparent;
  4589. }
  4590. .navbar-default .navbar-toggle {
  4591. border-color: #dddddd;
  4592. }
  4593. .navbar-default .navbar-toggle:hover,
  4594. .navbar-default .navbar-toggle:focus {
  4595. background-color: #dddddd;
  4596. }
  4597. .navbar-default .navbar-toggle .icon-bar {
  4598. background-color: #888888;
  4599. }
  4600. .navbar-default .navbar-collapse,
  4601. .navbar-default .navbar-form {
  4602. border-color: #e7e7e7;
  4603. }
  4604. .navbar-default .navbar-nav > .open > a,
  4605. .navbar-default .navbar-nav > .open > a:hover,
  4606. .navbar-default .navbar-nav > .open > a:focus {
  4607. background-color: #e7e7e7;
  4608. color: #555555;
  4609. }
  4610. @media (max-width: 767px) {
  4611. .navbar-default .navbar-nav .open .dropdown-menu > li > a {
  4612. color: #777777;
  4613. }
  4614. .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
  4615. .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
  4616. color: #333333;
  4617. background-color: transparent;
  4618. }
  4619. .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
  4620. .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
  4621. .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
  4622. color: #555555;
  4623. background-color: #e7e7e7;
  4624. }
  4625. .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
  4626. .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  4627. .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
  4628. color: #cccccc;
  4629. background-color: transparent;
  4630. }
  4631. }
  4632. .navbar-default .navbar-link {
  4633. color: #777777;
  4634. }
  4635. .navbar-default .navbar-link:hover {
  4636. color: #333333;
  4637. }
  4638. .navbar-default .btn-link {
  4639. color: #777777;
  4640. }
  4641. .navbar-default .btn-link:hover,
  4642. .navbar-default .btn-link:focus {
  4643. color: #333333;
  4644. }
  4645. .navbar-default .btn-link[disabled]:hover,
  4646. fieldset[disabled] .navbar-default .btn-link:hover,
  4647. .navbar-default .btn-link[disabled]:focus,
  4648. fieldset[disabled] .navbar-default .btn-link:focus {
  4649. color: #cccccc;
  4650. }
  4651. .navbar-inverse {
  4652. background-color: #222222;
  4653. border-color: #080808;
  4654. }
  4655. .navbar-inverse .navbar-brand {
  4656. color: #9d9d9d;
  4657. }
  4658. .navbar-inverse .navbar-brand:hover,
  4659. .navbar-inverse .navbar-brand:focus {
  4660. color: #ffffff;
  4661. background-color: transparent;
  4662. }
  4663. .navbar-inverse .navbar-text {
  4664. color: #9d9d9d;
  4665. }
  4666. .navbar-inverse .navbar-nav > li > a {
  4667. color: #9d9d9d;
  4668. }
  4669. .navbar-inverse .navbar-nav > li > a:hover,
  4670. .navbar-inverse .navbar-nav > li > a:focus {
  4671. color: #ffffff;
  4672. background-color: transparent;
  4673. }
  4674. .navbar-inverse .navbar-nav > .active > a,
  4675. .navbar-inverse .navbar-nav > .active > a:hover,
  4676. .navbar-inverse .navbar-nav > .active > a:focus {
  4677. color: #ffffff;
  4678. background-color: #080808;
  4679. }
  4680. .navbar-inverse .navbar-nav > .disabled > a,
  4681. .navbar-inverse .navbar-nav > .disabled > a:hover,
  4682. .navbar-inverse .navbar-nav > .disabled > a:focus {
  4683. color: #444444;
  4684. background-color: transparent;
  4685. }
  4686. .navbar-inverse .navbar-toggle {
  4687. border-color: #333333;
  4688. }
  4689. .navbar-inverse .navbar-toggle:hover,
  4690. .navbar-inverse .navbar-toggle:focus {
  4691. background-color: #333333;
  4692. }
  4693. .navbar-inverse .navbar-toggle .icon-bar {
  4694. background-color: #ffffff;
  4695. }
  4696. .navbar-inverse .navbar-collapse,
  4697. .navbar-inverse .navbar-form {
  4698. border-color: #101010;
  4699. }
  4700. .navbar-inverse .navbar-nav > .open > a,
  4701. .navbar-inverse .navbar-nav > .open > a:hover,
  4702. .navbar-inverse .navbar-nav > .open > a:focus {
  4703. background-color: #080808;
  4704. color: #ffffff;
  4705. }
  4706. @media (max-width: 767px) {
  4707. .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
  4708. border-color: #080808;
  4709. }
  4710. .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
  4711. background-color: #080808;
  4712. }
  4713. .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
  4714. color: #9d9d9d;
  4715. }
  4716. .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
  4717. .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
  4718. color: #ffffff;
  4719. background-color: transparent;
  4720. }
  4721. .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
  4722. .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
  4723. .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
  4724. color: #ffffff;
  4725. background-color: #080808;
  4726. }
  4727. .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
  4728. .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  4729. .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
  4730. color: #444444;
  4731. background-color: transparent;
  4732. }
  4733. }
  4734. .navbar-inverse .navbar-link {
  4735. color: #9d9d9d;
  4736. }
  4737. .navbar-inverse .navbar-link:hover {
  4738. color: #ffffff;
  4739. }
  4740. .navbar-inverse .btn-link {
  4741. color: #9d9d9d;
  4742. }
  4743. .navbar-inverse .btn-link:hover,
  4744. .navbar-inverse .btn-link:focus {
  4745. color: #ffffff;
  4746. }
  4747. .navbar-inverse .btn-link[disabled]:hover,
  4748. fieldset[disabled] .navbar-inverse .btn-link:hover,
  4749. .navbar-inverse .btn-link[disabled]:focus,
  4750. fieldset[disabled] .navbar-inverse .btn-link:focus {
  4751. color: #444444;
  4752. }
  4753. .breadcrumb {
  4754. padding: 8px 15px;
  4755. margin-bottom: 20px;
  4756. list-style: none;
  4757. background-color: #f5f5f5;
  4758. border-radius: 4px;
  4759. }
  4760. .breadcrumb > li {
  4761. display: inline-block;
  4762. }
  4763. .breadcrumb > li + li:before {
  4764. content: "/\00a0";
  4765. padding: 0 5px;
  4766. color: #cccccc;
  4767. }
  4768. .breadcrumb > .active {
  4769. color: #777777;
  4770. }
  4771. .pagination {
  4772. display: inline-block;
  4773. padding-left: 0;
  4774. margin: 20px 0;
  4775. border-radius: 4px;
  4776. }
  4777. .pagination > li {
  4778. display: inline;
  4779. }
  4780. .pagination > li > a,
  4781. .pagination > li > span {
  4782. position: relative;
  4783. float: left;
  4784. padding: 6px 12px;
  4785. line-height: 1.42857143;
  4786. text-decoration: none;
  4787. color: #337ab7;
  4788. background-color: #ffffff;
  4789. border: 1px solid #dddddd;
  4790. margin-left: -1px;
  4791. }
  4792. .pagination > li:first-child > a,
  4793. .pagination > li:first-child > span {
  4794. margin-left: 0;
  4795. border-bottom-left-radius: 4px;
  4796. border-top-left-radius: 4px;
  4797. }
  4798. .pagination > li:last-child > a,
  4799. .pagination > li:last-child > span {
  4800. border-bottom-right-radius: 4px;
  4801. border-top-right-radius: 4px;
  4802. }
  4803. .pagination > li > a:hover,
  4804. .pagination > li > span:hover,
  4805. .pagination > li > a:focus,
  4806. .pagination > li > span:focus {
  4807. z-index: 3;
  4808. color: #23527c;
  4809. background-color: #eeeeee;
  4810. border-color: #dddddd;
  4811. }
  4812. .pagination > .active > a,
  4813. .pagination > .active > span,
  4814. .pagination > .active > a:hover,
  4815. .pagination > .active > span:hover,
  4816. .pagination > .active > a:focus,
  4817. .pagination > .active > span:focus {
  4818. z-index: 2;
  4819. color: #ffffff;
  4820. background-color: #337ab7;
  4821. border-color: #337ab7;
  4822. cursor: default;
  4823. }
  4824. .pagination > .disabled > span,
  4825. .pagination > .disabled > span:hover,
  4826. .pagination > .disabled > span:focus,
  4827. .pagination > .disabled > a,
  4828. .pagination > .disabled > a:hover,
  4829. .pagination > .disabled > a:focus {
  4830. color: #777777;
  4831. background-color: #ffffff;
  4832. border-color: #dddddd;
  4833. cursor: not-allowed;
  4834. }
  4835. .pagination-lg > li > a,
  4836. .pagination-lg > li > span {
  4837. padding: 10px 16px;
  4838. font-size: 18px;
  4839. line-height: 1.3333333;
  4840. }
  4841. .pagination-lg > li:first-child > a,
  4842. .pagination-lg > li:first-child > span {
  4843. border-bottom-left-radius: 6px;
  4844. border-top-left-radius: 6px;
  4845. }
  4846. .pagination-lg > li:last-child > a,
  4847. .pagination-lg > li:last-child > span {
  4848. border-bottom-right-radius: 6px;
  4849. border-top-right-radius: 6px;
  4850. }
  4851. .pagination-sm > li > a,
  4852. .pagination-sm > li > span {
  4853. padding: 5px 10px;
  4854. font-size: 12px;
  4855. line-height: 1.5;
  4856. }
  4857. .pagination-sm > li:first-child > a,
  4858. .pagination-sm > li:first-child > span {
  4859. border-bottom-left-radius: 3px;
  4860. border-top-left-radius: 3px;
  4861. }
  4862. .pagination-sm > li:last-child > a,
  4863. .pagination-sm > li:last-child > span {
  4864. border-bottom-right-radius: 3px;
  4865. border-top-right-radius: 3px;
  4866. }
  4867. .pager {
  4868. padding-left: 0;
  4869. margin: 20px 0;
  4870. list-style: none;
  4871. text-align: center;
  4872. }
  4873. .pager li {
  4874. display: inline;
  4875. }
  4876. .pager li > a,
  4877. .pager li > span {
  4878. display: inline-block;
  4879. padding: 5px 14px;
  4880. background-color: #ffffff;
  4881. border: 1px solid #dddddd;
  4882. border-radius: 15px;
  4883. }
  4884. .pager li > a:hover,
  4885. .pager li > a:focus {
  4886. text-decoration: none;
  4887. background-color: #eeeeee;
  4888. }
  4889. .pager .next > a,
  4890. .pager .next > span {
  4891. float: right;
  4892. }
  4893. .pager .previous > a,
  4894. .pager .previous > span {
  4895. float: left;
  4896. }
  4897. .pager .disabled > a,
  4898. .pager .disabled > a:hover,
  4899. .pager .disabled > a:focus,
  4900. .pager .disabled > span {
  4901. color: #777777;
  4902. background-color: #ffffff;
  4903. cursor: not-allowed;
  4904. }
  4905. .label {
  4906. display: inline;
  4907. padding: .2em .6em .3em;
  4908. font-size: 75%;
  4909. font-weight: bold;
  4910. line-height: 1;
  4911. color: #ffffff;
  4912. text-align: center;
  4913. white-space: nowrap;
  4914. vertical-align: baseline;
  4915. border-radius: .25em;
  4916. }
  4917. a.label:hover,
  4918. a.label:focus {
  4919. color: #ffffff;
  4920. text-decoration: none;
  4921. cursor: pointer;
  4922. }
  4923. .label:empty {
  4924. display: none;
  4925. }
  4926. .btn .label {
  4927. position: relative;
  4928. top: -1px;
  4929. }
  4930. .label-default {
  4931. background-color: #777777;
  4932. }
  4933. .label-default[href]:hover,
  4934. .label-default[href]:focus {
  4935. background-color: #5e5e5e;
  4936. }
  4937. .label-primary {
  4938. background-color: #337ab7;
  4939. }
  4940. .label-primary[href]:hover,
  4941. .label-primary[href]:focus {
  4942. background-color: #286090;
  4943. }
  4944. .label-success {
  4945. background-color: #5cb85c;
  4946. }
  4947. .label-success[href]:hover,
  4948. .label-success[href]:focus {
  4949. background-color: #449d44;
  4950. }
  4951. .label-info {
  4952. background-color: #5bc0de;
  4953. }
  4954. .label-info[href]:hover,
  4955. .label-info[href]:focus {
  4956. background-color: #31b0d5;
  4957. }
  4958. .label-warning {
  4959. background-color: #f0ad4e;
  4960. }
  4961. .label-warning[href]:hover,
  4962. .label-warning[href]:focus {
  4963. background-color: #ec971f;
  4964. }
  4965. .label-danger {
  4966. background-color: #d9534f;
  4967. }
  4968. .label-danger[href]:hover,
  4969. .label-danger[href]:focus {
  4970. background-color: #c9302c;
  4971. }
  4972. .badge {
  4973. display: inline-block;
  4974. min-width: 10px;
  4975. padding: 3px 7px;
  4976. font-size: 12px;
  4977. font-weight: bold;
  4978. color: #ffffff;
  4979. line-height: 1;
  4980. vertical-align: middle;
  4981. white-space: nowrap;
  4982. text-align: center;
  4983. background-color: #777777;
  4984. border-radius: 10px;
  4985. }
  4986. .badge:empty {
  4987. display: none;
  4988. }
  4989. .btn .badge {
  4990. position: relative;
  4991. top: -1px;
  4992. }
  4993. .btn-xs .badge,
  4994. .btn-group-xs > .btn .badge {
  4995. top: 0;
  4996. padding: 1px 5px;
  4997. }
  4998. a.badge:hover,
  4999. a.badge:focus {
  5000. color: #ffffff;
  5001. text-decoration: none;
  5002. cursor: pointer;
  5003. }
  5004. .list-group-item.active > .badge,
  5005. .nav-pills > .active > a > .badge {
  5006. color: #337ab7;
  5007. background-color: #ffffff;
  5008. }
  5009. .list-group-item > .badge {
  5010. float: right;
  5011. }
  5012. .list-group-item > .badge + .badge {
  5013. margin-right: 5px;
  5014. }
  5015. .nav-pills > li > a > .badge {
  5016. margin-left: 3px;
  5017. }
  5018. .jumbotron {
  5019. padding-top: 30px;
  5020. padding-bottom: 30px;
  5021. margin-bottom: 30px;
  5022. color: inherit;
  5023. background-color: #eeeeee;
  5024. }
  5025. .jumbotron h1,
  5026. .jumbotron .h1 {
  5027. color: inherit;
  5028. }
  5029. .jumbotron p {
  5030. margin-bottom: 15px;
  5031. font-size: 21px;
  5032. font-weight: 200;
  5033. }
  5034. .jumbotron > hr {
  5035. border-top-color: #d5d5d5;
  5036. }
  5037. .container .jumbotron,
  5038. .container-fluid .jumbotron {
  5039. border-radius: 6px;
  5040. }
  5041. .jumbotron .container {
  5042. max-width: 100%;
  5043. }
  5044. @media screen and (min-width: 768px) {
  5045. .jumbotron {
  5046. padding-top: 48px;
  5047. padding-bottom: 48px;
  5048. }
  5049. .container .jumbotron,
  5050. .container-fluid .jumbotron {
  5051. padding-left: 60px;
  5052. padding-right: 60px;
  5053. }
  5054. .jumbotron h1,
  5055. .jumbotron .h1 {
  5056. font-size: 63px;
  5057. }
  5058. }
  5059. .thumbnail {
  5060. display: block;
  5061. padding: 4px;
  5062. margin-bottom: 20px;
  5063. line-height: 1.42857143;
  5064. background-color: #ffffff;
  5065. border: 1px solid #dddddd;
  5066. border-radius: 4px;
  5067. -webkit-transition: border 0.2s ease-in-out;
  5068. -o-transition: border 0.2s ease-in-out;
  5069. transition: border 0.2s ease-in-out;
  5070. }
  5071. .thumbnail > img,
  5072. .thumbnail a > img {
  5073. margin-left: auto;
  5074. margin-right: auto;
  5075. }
  5076. a.thumbnail:hover,
  5077. a.thumbnail:focus,
  5078. a.thumbnail.active {
  5079. border-color: #337ab7;
  5080. }
  5081. .thumbnail .caption {
  5082. padding: 9px;
  5083. color: #333333;
  5084. }
  5085. .alert {
  5086. padding: 15px;
  5087. margin-bottom: 20px;
  5088. border: 1px solid transparent;
  5089. border-radius: 4px;
  5090. }
  5091. .alert h4 {
  5092. margin-top: 0;
  5093. color: inherit;
  5094. }
  5095. .alert .alert-link {
  5096. font-weight: bold;
  5097. }
  5098. .alert > p,
  5099. .alert > ul {
  5100. margin-bottom: 0;
  5101. }
  5102. .alert > p + p {
  5103. margin-top: 5px;
  5104. }
  5105. .alert-dismissable,
  5106. .alert-dismissible {
  5107. padding-right: 35px;
  5108. }
  5109. .alert-dismissable .close,
  5110. .alert-dismissible .close {
  5111. position: relative;
  5112. top: -2px;
  5113. right: -21px;
  5114. color: inherit;
  5115. }
  5116. .alert-success {
  5117. background-color: #dff0d8;
  5118. border-color: #d6e9c6;
  5119. color: #3c763d;
  5120. }
  5121. .alert-success hr {
  5122. border-top-color: #c9e2b3;
  5123. }
  5124. .alert-success .alert-link {
  5125. color: #2b542c;
  5126. }
  5127. .alert-info {
  5128. background-color: #d9edf7;
  5129. border-color: #bce8f1;
  5130. color: #31708f;
  5131. }
  5132. .alert-info hr {
  5133. border-top-color: #a6e1ec;
  5134. }
  5135. .alert-info .alert-link {
  5136. color: #245269;
  5137. }
  5138. .alert-warning {
  5139. background-color: #fcf8e3;
  5140. border-color: #faebcc;
  5141. color: #8a6d3b;
  5142. }
  5143. .alert-warning hr {
  5144. border-top-color: #f7e1b5;
  5145. }
  5146. .alert-warning .alert-link {
  5147. color: #66512c;
  5148. }
  5149. .alert-danger {
  5150. background-color: #f2dede;
  5151. border-color: #ebccd1;
  5152. color: #a94442;
  5153. }
  5154. .alert-danger hr {
  5155. border-top-color: #e4b9c0;
  5156. }
  5157. .alert-danger .alert-link {
  5158. color: #843534;
  5159. }
  5160. @-webkit-keyframes progress-bar-stripes {
  5161. from {
  5162. background-position: 40px 0;
  5163. }
  5164. to {
  5165. background-position: 0 0;
  5166. }
  5167. }
  5168. @-o-keyframes progress-bar-stripes {
  5169. from {
  5170. background-position: 40px 0;
  5171. }
  5172. to {
  5173. background-position: 0 0;
  5174. }
  5175. }
  5176. @keyframes progress-bar-stripes {
  5177. from {
  5178. background-position: 40px 0;
  5179. }
  5180. to {
  5181. background-position: 0 0;
  5182. }
  5183. }
  5184. .progress {
  5185. overflow: hidden;
  5186. height: 20px;
  5187. margin-bottom: 20px;
  5188. background-color: #f5f5f5;
  5189. border-radius: 4px;
  5190. -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  5191. box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  5192. }
  5193. .progress-bar {
  5194. float: left;
  5195. width: 0%;
  5196. height: 100%;
  5197. font-size: 12px;
  5198. line-height: 20px;
  5199. color: #ffffff;
  5200. text-align: center;
  5201. background-color: #337ab7;
  5202. -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  5203. box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  5204. -webkit-transition: width 0.6s ease;
  5205. -o-transition: width 0.6s ease;
  5206. transition: width 0.6s ease;
  5207. }
  5208. .progress-striped .progress-bar,
  5209. .progress-bar-striped {
  5210. background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5211. background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5212. background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5213. -webkit-background-size: 40px 40px;
  5214. background-size: 40px 40px;
  5215. }
  5216. .progress.active .progress-bar,
  5217. .progress-bar.active {
  5218. -webkit-animation: progress-bar-stripes 2s linear infinite;
  5219. -o-animation: progress-bar-stripes 2s linear infinite;
  5220. animation: progress-bar-stripes 2s linear infinite;
  5221. }
  5222. .progress-bar-success {
  5223. background-color: #5cb85c;
  5224. }
  5225. .progress-striped .progress-bar-success {
  5226. background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5227. background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5228. background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5229. }
  5230. .progress-bar-info {
  5231. background-color: #5bc0de;
  5232. }
  5233. .progress-striped .progress-bar-info {
  5234. background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5235. background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5236. background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5237. }
  5238. .progress-bar-warning {
  5239. background-color: #f0ad4e;
  5240. }
  5241. .progress-striped .progress-bar-warning {
  5242. background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5243. background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5244. background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5245. }
  5246. .progress-bar-danger {
  5247. background-color: #d9534f;
  5248. }
  5249. .progress-striped .progress-bar-danger {
  5250. background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5251. background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5252. background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5253. }
  5254. .media {
  5255. margin-top: 15px;
  5256. }
  5257. .media:first-child {
  5258. margin-top: 0;
  5259. }
  5260. .media,
  5261. .media-body {
  5262. zoom: 1;
  5263. overflow: hidden;
  5264. }
  5265. .media-body {
  5266. width: 10000px;
  5267. }
  5268. .media-object {
  5269. display: block;
  5270. }
  5271. .media-object.img-thumbnail {
  5272. max-width: none;
  5273. }
  5274. .media-right,
  5275. .media > .pull-right {
  5276. padding-left: 10px;
  5277. }
  5278. .media-left,
  5279. .media > .pull-left {
  5280. padding-right: 10px;
  5281. }
  5282. .media-left,
  5283. .media-right,
  5284. .media-body {
  5285. display: table-cell;
  5286. vertical-align: top;
  5287. }
  5288. .media-middle {
  5289. vertical-align: middle;
  5290. }
  5291. .media-bottom {
  5292. vertical-align: bottom;
  5293. }
  5294. .media-heading {
  5295. margin-top: 0;
  5296. margin-bottom: 5px;
  5297. }
  5298. .media-list {
  5299. padding-left: 0;
  5300. list-style: none;
  5301. }
  5302. .list-group {
  5303. margin-bottom: 20px;
  5304. padding-left: 0;
  5305. }
  5306. .list-group-item {
  5307. position: relative;
  5308. display: block;
  5309. padding: 10px 15px;
  5310. margin-bottom: -1px;
  5311. background-color: #ffffff;
  5312. border: 1px solid #dddddd;
  5313. }
  5314. .list-group-item:first-child {
  5315. border-top-right-radius: 4px;
  5316. border-top-left-radius: 4px;
  5317. }
  5318. .list-group-item:last-child {
  5319. margin-bottom: 0;
  5320. border-bottom-right-radius: 4px;
  5321. border-bottom-left-radius: 4px;
  5322. }
  5323. a.list-group-item,
  5324. button.list-group-item {
  5325. color: #555555;
  5326. }
  5327. a.list-group-item .list-group-item-heading,
  5328. button.list-group-item .list-group-item-heading {
  5329. color: #333333;
  5330. }
  5331. a.list-group-item:hover,
  5332. button.list-group-item:hover,
  5333. a.list-group-item:focus,
  5334. button.list-group-item:focus {
  5335. text-decoration: none;
  5336. color: #555555;
  5337. background-color: #f5f5f5;
  5338. }
  5339. button.list-group-item {
  5340. width: 100%;
  5341. text-align: left;
  5342. }
  5343. .list-group-item.disabled,
  5344. .list-group-item.disabled:hover,
  5345. .list-group-item.disabled:focus {
  5346. background-color: #eeeeee;
  5347. color: #777777;
  5348. cursor: not-allowed;
  5349. }
  5350. .list-group-item.disabled .list-group-item-heading,
  5351. .list-group-item.disabled:hover .list-group-item-heading,
  5352. .list-group-item.disabled:focus .list-group-item-heading {
  5353. color: inherit;
  5354. }
  5355. .list-group-item.disabled .list-group-item-text,
  5356. .list-group-item.disabled:hover .list-group-item-text,
  5357. .list-group-item.disabled:focus .list-group-item-text {
  5358. color: #777777;
  5359. }
  5360. .list-group-item.active,
  5361. .list-group-item.active:hover,
  5362. .list-group-item.active:focus {
  5363. z-index: 2;
  5364. color: #ffffff;
  5365. background-color: #337ab7;
  5366. border-color: #337ab7;
  5367. }
  5368. .list-group-item.active .list-group-item-heading,
  5369. .list-group-item.active:hover .list-group-item-heading,
  5370. .list-group-item.active:focus .list-group-item-heading,
  5371. .list-group-item.active .list-group-item-heading > small,
  5372. .list-group-item.active:hover .list-group-item-heading > small,
  5373. .list-group-item.active:focus .list-group-item-heading > small,
  5374. .list-group-item.active .list-group-item-heading > .small,
  5375. .list-group-item.active:hover .list-group-item-heading > .small,
  5376. .list-group-item.active:focus .list-group-item-heading > .small {
  5377. color: inherit;
  5378. }
  5379. .list-group-item.active .list-group-item-text,
  5380. .list-group-item.active:hover .list-group-item-text,
  5381. .list-group-item.active:focus .list-group-item-text {
  5382. color: #c7ddef;
  5383. }
  5384. .list-group-item-success {
  5385. color: #3c763d;
  5386. background-color: #dff0d8;
  5387. }
  5388. a.list-group-item-success,
  5389. button.list-group-item-success {
  5390. color: #3c763d;
  5391. }
  5392. a.list-group-item-success .list-group-item-heading,
  5393. button.list-group-item-success .list-group-item-heading {
  5394. color: inherit;
  5395. }
  5396. a.list-group-item-success:hover,
  5397. button.list-group-item-success:hover,
  5398. a.list-group-item-success:focus,
  5399. button.list-group-item-success:focus {
  5400. color: #3c763d;
  5401. background-color: #d0e9c6;
  5402. }
  5403. a.list-group-item-success.active,
  5404. button.list-group-item-success.active,
  5405. a.list-group-item-success.active:hover,
  5406. button.list-group-item-success.active:hover,
  5407. a.list-group-item-success.active:focus,
  5408. button.list-group-item-success.active:focus {
  5409. color: #fff;
  5410. background-color: #3c763d;
  5411. border-color: #3c763d;
  5412. }
  5413. .list-group-item-info {
  5414. color: #31708f;
  5415. background-color: #d9edf7;
  5416. }
  5417. a.list-group-item-info,
  5418. button.list-group-item-info {
  5419. color: #31708f;
  5420. }
  5421. a.list-group-item-info .list-group-item-heading,
  5422. button.list-group-item-info .list-group-item-heading {
  5423. color: inherit;
  5424. }
  5425. a.list-group-item-info:hover,
  5426. button.list-group-item-info:hover,
  5427. a.list-group-item-info:focus,
  5428. button.list-group-item-info:focus {
  5429. color: #31708f;
  5430. background-color: #c4e3f3;
  5431. }
  5432. a.list-group-item-info.active,
  5433. button.list-group-item-info.active,
  5434. a.list-group-item-info.active:hover,
  5435. button.list-group-item-info.active:hover,
  5436. a.list-group-item-info.active:focus,
  5437. button.list-group-item-info.active:focus {
  5438. color: #fff;
  5439. background-color: #31708f;
  5440. border-color: #31708f;
  5441. }
  5442. .list-group-item-warning {
  5443. color: #8a6d3b;
  5444. background-color: #fcf8e3;
  5445. }
  5446. a.list-group-item-warning,
  5447. button.list-group-item-warning {
  5448. color: #8a6d3b;
  5449. }
  5450. a.list-group-item-warning .list-group-item-heading,
  5451. button.list-group-item-warning .list-group-item-heading {
  5452. color: inherit;
  5453. }
  5454. a.list-group-item-warning:hover,
  5455. button.list-group-item-warning:hover,
  5456. a.list-group-item-warning:focus,
  5457. button.list-group-item-warning:focus {
  5458. color: #8a6d3b;
  5459. background-color: #faf2cc;
  5460. }
  5461. a.list-group-item-warning.active,
  5462. button.list-group-item-warning.active,
  5463. a.list-group-item-warning.active:hover,
  5464. button.list-group-item-warning.active:hover,
  5465. a.list-group-item-warning.active:focus,
  5466. button.list-group-item-warning.active:focus {
  5467. color: #fff;
  5468. background-color: #8a6d3b;
  5469. border-color: #8a6d3b;
  5470. }
  5471. .list-group-item-danger {
  5472. color: #a94442;
  5473. background-color: #f2dede;
  5474. }
  5475. a.list-group-item-danger,
  5476. button.list-group-item-danger {
  5477. color: #a94442;
  5478. }
  5479. a.list-group-item-danger .list-group-item-heading,
  5480. button.list-group-item-danger .list-group-item-heading {
  5481. color: inherit;
  5482. }
  5483. a.list-group-item-danger:hover,
  5484. button.list-group-item-danger:hover,
  5485. a.list-group-item-danger:focus,
  5486. button.list-group-item-danger:focus {
  5487. color: #a94442;
  5488. background-color: #ebcccc;
  5489. }
  5490. a.list-group-item-danger.active,
  5491. button.list-group-item-danger.active,
  5492. a.list-group-item-danger.active:hover,
  5493. button.list-group-item-danger.active:hover,
  5494. a.list-group-item-danger.active:focus,
  5495. button.list-group-item-danger.active:focus {
  5496. color: #fff;
  5497. background-color: #a94442;
  5498. border-color: #a94442;
  5499. }
  5500. .list-group-item-heading {
  5501. margin-top: 0;
  5502. margin-bottom: 5px;
  5503. }
  5504. .list-group-item-text {
  5505. margin-bottom: 0;
  5506. line-height: 1.3;
  5507. }
  5508. .panel {
  5509. margin-bottom: 20px;
  5510. background-color: #ffffff;
  5511. border: 1px solid transparent;
  5512. border-radius: 4px;
  5513. -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
  5514. box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
  5515. }
  5516. .panel-body {
  5517. padding: 15px;
  5518. }
  5519. .panel-heading {
  5520. padding: 10px 15px;
  5521. border-bottom: 1px solid transparent;
  5522. border-top-right-radius: 3px;
  5523. border-top-left-radius: 3px;
  5524. }
  5525. .panel-heading > .dropdown .dropdown-toggle {
  5526. color: inherit;
  5527. }
  5528. .panel-title {
  5529. margin-top: 0;
  5530. margin-bottom: 0;
  5531. font-size: 16px;
  5532. color: inherit;
  5533. }
  5534. .panel-title > a,
  5535. .panel-title > small,
  5536. .panel-title > .small,
  5537. .panel-title > small > a,
  5538. .panel-title > .small > a {
  5539. color: inherit;
  5540. }
  5541. .panel-footer {
  5542. padding: 10px 15px;
  5543. background-color: #f5f5f5;
  5544. border-top: 1px solid #dddddd;
  5545. border-bottom-right-radius: 3px;
  5546. border-bottom-left-radius: 3px;
  5547. }
  5548. .panel > .list-group,
  5549. .panel > .panel-collapse > .list-group {
  5550. margin-bottom: 0;
  5551. }
  5552. .panel > .list-group .list-group-item,
  5553. .panel > .panel-collapse > .list-group .list-group-item {
  5554. border-width: 1px 0;
  5555. border-radius: 0;
  5556. }
  5557. .panel > .list-group:first-child .list-group-item:first-child,
  5558. .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
  5559. border-top: 0;
  5560. border-top-right-radius: 3px;
  5561. border-top-left-radius: 3px;
  5562. }
  5563. .panel > .list-group:last-child .list-group-item:last-child,
  5564. .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
  5565. border-bottom: 0;
  5566. border-bottom-right-radius: 3px;
  5567. border-bottom-left-radius: 3px;
  5568. }
  5569. .panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
  5570. border-top-right-radius: 0;
  5571. border-top-left-radius: 0;
  5572. }
  5573. .panel-heading + .list-group .list-group-item:first-child {
  5574. border-top-width: 0;
  5575. }
  5576. .list-group + .panel-footer {
  5577. border-top-width: 0;
  5578. }
  5579. .panel > .table,
  5580. .panel > .table-responsive > .table,
  5581. .panel > .panel-collapse > .table {
  5582. margin-bottom: 0;
  5583. }
  5584. .panel > .table caption,
  5585. .panel > .table-responsive > .table caption,
  5586. .panel > .panel-collapse > .table caption {
  5587. padding-left: 15px;
  5588. padding-right: 15px;
  5589. }
  5590. .panel > .table:first-child,
  5591. .panel > .table-responsive:first-child > .table:first-child {
  5592. border-top-right-radius: 3px;
  5593. border-top-left-radius: 3px;
  5594. }
  5595. .panel > .table:first-child > thead:first-child > tr:first-child,
  5596. .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
  5597. .panel > .table:first-child > tbody:first-child > tr:first-child,
  5598. .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
  5599. border-top-left-radius: 3px;
  5600. border-top-right-radius: 3px;
  5601. }
  5602. .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
  5603. .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
  5604. .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
  5605. .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
  5606. .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
  5607. .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
  5608. .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
  5609. .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
  5610. border-top-left-radius: 3px;
  5611. }
  5612. .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
  5613. .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
  5614. .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
  5615. .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
  5616. .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
  5617. .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
  5618. .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
  5619. .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
  5620. border-top-right-radius: 3px;
  5621. }
  5622. .panel > .table:last-child,
  5623. .panel > .table-responsive:last-child > .table:last-child {
  5624. border-bottom-right-radius: 3px;
  5625. border-bottom-left-radius: 3px;
  5626. }
  5627. .panel > .table:last-child > tbody:last-child > tr:last-child,
  5628. .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
  5629. .panel > .table:last-child > tfoot:last-child > tr:last-child,
  5630. .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
  5631. border-bottom-left-radius: 3px;
  5632. border-bottom-right-radius: 3px;
  5633. }
  5634. .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
  5635. .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
  5636. .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
  5637. .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
  5638. .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
  5639. .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
  5640. .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
  5641. .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
  5642. border-bottom-left-radius: 3px;
  5643. }
  5644. .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
  5645. .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
  5646. .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
  5647. .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
  5648. .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
  5649. .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
  5650. .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
  5651. .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
  5652. border-bottom-right-radius: 3px;
  5653. }
  5654. .panel > .panel-body + .table,
  5655. .panel > .panel-body + .table-responsive,
  5656. .panel > .table + .panel-body,
  5657. .panel > .table-responsive + .panel-body {
  5658. border-top: 1px solid #dddddd;
  5659. }
  5660. .panel > .table > tbody:first-child > tr:first-child th,
  5661. .panel > .table > tbody:first-child > tr:first-child td {
  5662. border-top: 0;
  5663. }
  5664. .panel > .table-bordered,
  5665. .panel > .table-responsive > .table-bordered {
  5666. border: 0;
  5667. }
  5668. .panel > .table-bordered > thead > tr > th:first-child,
  5669. .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
  5670. .panel > .table-bordered > tbody > tr > th:first-child,
  5671. .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
  5672. .panel > .table-bordered > tfoot > tr > th:first-child,
  5673. .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
  5674. .panel > .table-bordered > thead > tr > td:first-child,
  5675. .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
  5676. .panel > .table-bordered > tbody > tr > td:first-child,
  5677. .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
  5678. .panel > .table-bordered > tfoot > tr > td:first-child,
  5679. .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
  5680. border-left: 0;
  5681. }
  5682. .panel > .table-bordered > thead > tr > th:last-child,
  5683. .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
  5684. .panel > .table-bordered > tbody > tr > th:last-child,
  5685. .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
  5686. .panel > .table-bordered > tfoot > tr > th:last-child,
  5687. .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
  5688. .panel > .table-bordered > thead > tr > td:last-child,
  5689. .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
  5690. .panel > .table-bordered > tbody > tr > td:last-child,
  5691. .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
  5692. .panel > .table-bordered > tfoot > tr > td:last-child,
  5693. .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
  5694. border-right: 0;
  5695. }
  5696. .panel > .table-bordered > thead > tr:first-child > td,
  5697. .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
  5698. .panel > .table-bordered > tbody > tr:first-child > td,
  5699. .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
  5700. .panel > .table-bordered > thead > tr:first-child > th,
  5701. .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
  5702. .panel > .table-bordered > tbody > tr:first-child > th,
  5703. .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
  5704. border-bottom: 0;
  5705. }
  5706. .panel > .table-bordered > tbody > tr:last-child > td,
  5707. .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
  5708. .panel > .table-bordered > tfoot > tr:last-child > td,
  5709. .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
  5710. .panel > .table-bordered > tbody > tr:last-child > th,
  5711. .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
  5712. .panel > .table-bordered > tfoot > tr:last-child > th,
  5713. .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
  5714. border-bottom: 0;
  5715. }
  5716. .panel > .table-responsive {
  5717. border: 0;
  5718. margin-bottom: 0;
  5719. }
  5720. .panel-group {
  5721. margin-bottom: 20px;
  5722. }
  5723. .panel-group .panel {
  5724. margin-bottom: 0;
  5725. border-radius: 4px;
  5726. }
  5727. .panel-group .panel + .panel {
  5728. margin-top: 5px;
  5729. }
  5730. .panel-group .panel-heading {
  5731. border-bottom: 0;
  5732. }
  5733. .panel-group .panel-heading + .panel-collapse > .panel-body,
  5734. .panel-group .panel-heading + .panel-collapse > .list-group {
  5735. border-top: 1px solid #dddddd;
  5736. }
  5737. .panel-group .panel-footer {
  5738. border-top: 0;
  5739. }
  5740. .panel-group .panel-footer + .panel-collapse .panel-body {
  5741. border-bottom: 1px solid #dddddd;
  5742. }
  5743. .panel-default {
  5744. border-color: #dddddd;
  5745. }
  5746. .panel-default > .panel-heading {
  5747. color: #333333;
  5748. background-color: #f5f5f5;
  5749. border-color: #dddddd;
  5750. }
  5751. .panel-default > .panel-heading + .panel-collapse > .panel-body {
  5752. border-top-color: #dddddd;
  5753. }
  5754. .panel-default > .panel-heading .badge {
  5755. color: #f5f5f5;
  5756. background-color: #333333;
  5757. }
  5758. .panel-default > .panel-footer + .panel-collapse > .panel-body {
  5759. border-bottom-color: #dddddd;
  5760. }
  5761. .panel-primary {
  5762. border-color: #337ab7;
  5763. }
  5764. .panel-primary > .panel-heading {
  5765. color: #ffffff;
  5766. background-color: #337ab7;
  5767. border-color: #337ab7;
  5768. }
  5769. .panel-primary > .panel-heading + .panel-collapse > .panel-body {
  5770. border-top-color: #337ab7;
  5771. }
  5772. .panel-primary > .panel-heading .badge {
  5773. color: #337ab7;
  5774. background-color: #ffffff;
  5775. }
  5776. .panel-primary > .panel-footer + .panel-collapse > .panel-body {
  5777. border-bottom-color: #337ab7;
  5778. }
  5779. .panel-success {
  5780. border-color: #d6e9c6;
  5781. }
  5782. .panel-success > .panel-heading {
  5783. color: #3c763d;
  5784. background-color: #dff0d8;
  5785. border-color: #d6e9c6;
  5786. }
  5787. .panel-success > .panel-heading + .panel-collapse > .panel-body {
  5788. border-top-color: #d6e9c6;
  5789. }
  5790. .panel-success > .panel-heading .badge {
  5791. color: #dff0d8;
  5792. background-color: #3c763d;
  5793. }
  5794. .panel-success > .panel-footer + .panel-collapse > .panel-body {
  5795. border-bottom-color: #d6e9c6;
  5796. }
  5797. .panel-info {
  5798. border-color: #bce8f1;
  5799. }
  5800. .panel-info > .panel-heading {
  5801. color: #31708f;
  5802. background-color: #d9edf7;
  5803. border-color: #bce8f1;
  5804. }
  5805. .panel-info > .panel-heading + .panel-collapse > .panel-body {
  5806. border-top-color: #bce8f1;
  5807. }
  5808. .panel-info > .panel-heading .badge {
  5809. color: #d9edf7;
  5810. background-color: #31708f;
  5811. }
  5812. .panel-info > .panel-footer + .panel-collapse > .panel-body {
  5813. border-bottom-color: #bce8f1;
  5814. }
  5815. .panel-warning {
  5816. border-color: #faebcc;
  5817. }
  5818. .panel-warning > .panel-heading {
  5819. color: #8a6d3b;
  5820. background-color: #fcf8e3;
  5821. border-color: #faebcc;
  5822. }
  5823. .panel-warning > .panel-heading + .panel-collapse > .panel-body {
  5824. border-top-color: #faebcc;
  5825. }
  5826. .panel-warning > .panel-heading .badge {
  5827. color: #fcf8e3;
  5828. background-color: #8a6d3b;
  5829. }
  5830. .panel-warning > .panel-footer + .panel-collapse > .panel-body {
  5831. border-bottom-color: #faebcc;
  5832. }
  5833. .panel-danger {
  5834. border-color: #ebccd1;
  5835. }
  5836. .panel-danger > .panel-heading {
  5837. color: #a94442;
  5838. background-color: #f2dede;
  5839. border-color: #ebccd1;
  5840. }
  5841. .panel-danger > .panel-heading + .panel-collapse > .panel-body {
  5842. border-top-color: #ebccd1;
  5843. }
  5844. .panel-danger > .panel-heading .badge {
  5845. color: #f2dede;
  5846. background-color: #a94442;
  5847. }
  5848. .panel-danger > .panel-footer + .panel-collapse > .panel-body {
  5849. border-bottom-color: #ebccd1;
  5850. }
  5851. .embed-responsive {
  5852. position: relative;
  5853. display: block;
  5854. height: 0;
  5855. padding: 0;
  5856. overflow: hidden;
  5857. }
  5858. .embed-responsive .embed-responsive-item,
  5859. .embed-responsive iframe,
  5860. .embed-responsive embed,
  5861. .embed-responsive object,
  5862. .embed-responsive video {
  5863. position: absolute;
  5864. top: 0;
  5865. left: 0;
  5866. bottom: 0;
  5867. height: 100%;
  5868. width: 100%;
  5869. border: 0;
  5870. }
  5871. .embed-responsive-16by9 {
  5872. padding-bottom: 56.25%;
  5873. }
  5874. .embed-responsive-4by3 {
  5875. padding-bottom: 75%;
  5876. }
  5877. .well {
  5878. min-height: 20px;
  5879. padding: 19px;
  5880. margin-bottom: 20px;
  5881. background-color: #f5f5f5;
  5882. border: 1px solid #e3e3e3;
  5883. border-radius: 4px;
  5884. -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  5885. box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  5886. }
  5887. .well blockquote {
  5888. border-color: #ddd;
  5889. border-color: rgba(0, 0, 0, 0.15);
  5890. }
  5891. .well-lg {
  5892. padding: 24px;
  5893. border-radius: 6px;
  5894. }
  5895. .well-sm {
  5896. padding: 9px;
  5897. border-radius: 3px;
  5898. }
  5899. .close {
  5900. float: right;
  5901. font-size: 21px;
  5902. font-weight: bold;
  5903. line-height: 1;
  5904. color: #000000;
  5905. text-shadow: 0 1px 0 #ffffff;
  5906. opacity: 0.2;
  5907. filter: alpha(opacity=20);
  5908. }
  5909. .close:hover,
  5910. .close:focus {
  5911. color: #000000;
  5912. text-decoration: none;
  5913. cursor: pointer;
  5914. opacity: 0.5;
  5915. filter: alpha(opacity=50);
  5916. }
  5917. button.close {
  5918. padding: 0;
  5919. cursor: pointer;
  5920. background: transparent;
  5921. border: 0;
  5922. -webkit-appearance: none;
  5923. }
  5924. .modal-open {
  5925. overflow: hidden;
  5926. }
  5927. .modal {
  5928. display: none;
  5929. overflow: hidden;
  5930. position: fixed;
  5931. top: 0;
  5932. right: 0;
  5933. bottom: 0;
  5934. left: 0;
  5935. z-index: 1050;
  5936. -webkit-overflow-scrolling: touch;
  5937. outline: 0;
  5938. }
  5939. .modal.fade .modal-dialog {
  5940. -webkit-transform: translate(0, -25%);
  5941. -ms-transform: translate(0, -25%);
  5942. -o-transform: translate(0, -25%);
  5943. transform: translate(0, -25%);
  5944. -webkit-transition: -webkit-transform 0.3s ease-out;
  5945. -o-transition: -o-transform 0.3s ease-out;
  5946. transition: transform 0.3s ease-out;
  5947. }
  5948. .modal.in .modal-dialog {
  5949. -webkit-transform: translate(0, 0);
  5950. -ms-transform: translate(0, 0);
  5951. -o-transform: translate(0, 0);
  5952. transform: translate(0, 0);
  5953. }
  5954. .modal-open .modal {
  5955. overflow-x: hidden;
  5956. overflow-y: auto;
  5957. }
  5958. .modal-dialog {
  5959. position: relative;
  5960. width: auto;
  5961. margin: 10px;
  5962. }
  5963. .modal-content {
  5964. position: relative;
  5965. background-color: #ffffff;
  5966. border: 1px solid #999999;
  5967. border: 1px solid rgba(0, 0, 0, 0.2);
  5968. border-radius: 6px;
  5969. -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  5970. box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  5971. -webkit-background-clip: padding-box;
  5972. background-clip: padding-box;
  5973. outline: 0;
  5974. }
  5975. .modal-backdrop {
  5976. position: fixed;
  5977. top: 0;
  5978. right: 0;
  5979. bottom: 0;
  5980. left: 0;
  5981. z-index: 1040;
  5982. background-color: #000000;
  5983. }
  5984. .modal-backdrop.fade {
  5985. opacity: 0;
  5986. filter: alpha(opacity=0);
  5987. }
  5988. .modal-backdrop.in {
  5989. opacity: 0.5;
  5990. filter: alpha(opacity=50);
  5991. }
  5992. .modal-header {
  5993. padding: 15px;
  5994. border-bottom: 1px solid #e5e5e5;
  5995. min-height: 16.42857143px;
  5996. }
  5997. .modal-header .close {
  5998. margin-top: -2px;
  5999. }
  6000. .modal-title {
  6001. margin: 0;
  6002. line-height: 1.42857143;
  6003. }
  6004. .modal-body {
  6005. position: relative;
  6006. padding: 15px;
  6007. }
  6008. .modal-footer {
  6009. padding: 15px;
  6010. text-align: right;
  6011. border-top: 1px solid #e5e5e5;
  6012. }
  6013. .modal-footer .btn + .btn {
  6014. margin-left: 5px;
  6015. margin-bottom: 0;
  6016. }
  6017. .modal-footer .btn-group .btn + .btn {
  6018. margin-left: -1px;
  6019. }
  6020. .modal-footer .btn-block + .btn-block {
  6021. margin-left: 0;
  6022. }
  6023. .modal-scrollbar-measure {
  6024. position: absolute;
  6025. top: -9999px;
  6026. width: 50px;
  6027. height: 50px;
  6028. overflow: scroll;
  6029. }
  6030. @media (min-width: 768px) {
  6031. .modal-dialog {
  6032. width: 600px;
  6033. margin: 30px auto;
  6034. }
  6035. .modal-content {
  6036. -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  6037. box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  6038. }
  6039. .modal-sm {
  6040. width: 300px;
  6041. }
  6042. }
  6043. @media (min-width: 992px) {
  6044. .modal-lg {
  6045. width: 900px;
  6046. }
  6047. }
  6048. .tooltip {
  6049. position: absolute;
  6050. z-index: 1070;
  6051. display: block;
  6052. font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  6053. font-style: normal;
  6054. font-weight: normal;
  6055. letter-spacing: normal;
  6056. line-break: auto;
  6057. line-height: 1.42857143;
  6058. text-align: left;
  6059. text-align: start;
  6060. text-decoration: none;
  6061. text-shadow: none;
  6062. text-transform: none;
  6063. white-space: normal;
  6064. word-break: normal;
  6065. word-spacing: normal;
  6066. word-wrap: normal;
  6067. font-size: 12px;
  6068. opacity: 0;
  6069. filter: alpha(opacity=0);
  6070. }
  6071. .tooltip.in {
  6072. opacity: 0.9;
  6073. filter: alpha(opacity=90);
  6074. }
  6075. .tooltip.top {
  6076. margin-top: -3px;
  6077. padding: 5px 0;
  6078. }
  6079. .tooltip.right {
  6080. margin-left: 3px;
  6081. padding: 0 5px;
  6082. }
  6083. .tooltip.bottom {
  6084. margin-top: 3px;
  6085. padding: 5px 0;
  6086. }
  6087. .tooltip.left {
  6088. margin-left: -3px;
  6089. padding: 0 5px;
  6090. }
  6091. .tooltip-inner {
  6092. max-width: 200px;
  6093. padding: 3px 8px;
  6094. color: #ffffff;
  6095. text-align: center;
  6096. background-color: #000000;
  6097. border-radius: 4px;
  6098. }
  6099. .tooltip-arrow {
  6100. position: absolute;
  6101. width: 0;
  6102. height: 0;
  6103. border-color: transparent;
  6104. border-style: solid;
  6105. }
  6106. .tooltip.top .tooltip-arrow {
  6107. bottom: 0;
  6108. left: 50%;
  6109. margin-left: -5px;
  6110. border-width: 5px 5px 0;
  6111. border-top-color: #000000;
  6112. }
  6113. .tooltip.top-left .tooltip-arrow {
  6114. bottom: 0;
  6115. right: 5px;
  6116. margin-bottom: -5px;
  6117. border-width: 5px 5px 0;
  6118. border-top-color: #000000;
  6119. }
  6120. .tooltip.top-right .tooltip-arrow {
  6121. bottom: 0;
  6122. left: 5px;
  6123. margin-bottom: -5px;
  6124. border-width: 5px 5px 0;
  6125. border-top-color: #000000;
  6126. }
  6127. .tooltip.right .tooltip-arrow {
  6128. top: 50%;
  6129. left: 0;
  6130. margin-top: -5px;
  6131. border-width: 5px 5px 5px 0;
  6132. border-right-color: #000000;
  6133. }
  6134. .tooltip.left .tooltip-arrow {
  6135. top: 50%;
  6136. right: 0;
  6137. margin-top: -5px;
  6138. border-width: 5px 0 5px 5px;
  6139. border-left-color: #000000;
  6140. }
  6141. .tooltip.bottom .tooltip-arrow {
  6142. top: 0;
  6143. left: 50%;
  6144. margin-left: -5px;
  6145. border-width: 0 5px 5px;
  6146. border-bottom-color: #000000;
  6147. }
  6148. .tooltip.bottom-left .tooltip-arrow {
  6149. top: 0;
  6150. right: 5px;
  6151. margin-top: -5px;
  6152. border-width: 0 5px 5px;
  6153. border-bottom-color: #000000;
  6154. }
  6155. .tooltip.bottom-right .tooltip-arrow {
  6156. top: 0;
  6157. left: 5px;
  6158. margin-top: -5px;
  6159. border-width: 0 5px 5px;
  6160. border-bottom-color: #000000;
  6161. }
  6162. .popover {
  6163. position: absolute;
  6164. top: 0;
  6165. left: 0;
  6166. z-index: 1060;
  6167. display: none;
  6168. max-width: 276px;
  6169. padding: 1px;
  6170. font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  6171. font-style: normal;
  6172. font-weight: normal;
  6173. letter-spacing: normal;
  6174. line-break: auto;
  6175. line-height: 1.42857143;
  6176. text-align: left;
  6177. text-align: start;
  6178. text-decoration: none;
  6179. text-shadow: none;
  6180. text-transform: none;
  6181. white-space: normal;
  6182. word-break: normal;
  6183. word-spacing: normal;
  6184. word-wrap: normal;
  6185. font-size: 14px;
  6186. background-color: #ffffff;
  6187. -webkit-background-clip: padding-box;
  6188. background-clip: padding-box;
  6189. border: 1px solid #cccccc;
  6190. border: 1px solid rgba(0, 0, 0, 0.2);
  6191. border-radius: 6px;
  6192. -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  6193. box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  6194. }
  6195. .popover.top {
  6196. margin-top: -10px;
  6197. }
  6198. .popover.right {
  6199. margin-left: 10px;
  6200. }
  6201. .popover.bottom {
  6202. margin-top: 10px;
  6203. }
  6204. .popover.left {
  6205. margin-left: -10px;
  6206. }
  6207. .popover-title {
  6208. margin: 0;
  6209. padding: 8px 14px;
  6210. font-size: 14px;
  6211. background-color: #f7f7f7;
  6212. border-bottom: 1px solid #ebebeb;
  6213. border-radius: 5px 5px 0 0;
  6214. }
  6215. .popover-content {
  6216. padding: 9px 14px;
  6217. }
  6218. .popover > .arrow,
  6219. .popover > .arrow:after {
  6220. position: absolute;
  6221. display: block;
  6222. width: 0;
  6223. height: 0;
  6224. border-color: transparent;
  6225. border-style: solid;
  6226. }
  6227. .popover > .arrow {
  6228. border-width: 11px;
  6229. }
  6230. .popover > .arrow:after {
  6231. border-width: 10px;
  6232. content: "";
  6233. }
  6234. .popover.top > .arrow {
  6235. left: 50%;
  6236. margin-left: -11px;
  6237. border-bottom-width: 0;
  6238. border-top-color: #999999;
  6239. border-top-color: rgba(0, 0, 0, 0.25);
  6240. bottom: -11px;
  6241. }
  6242. .popover.top > .arrow:after {
  6243. content: " ";
  6244. bottom: 1px;
  6245. margin-left: -10px;
  6246. border-bottom-width: 0;
  6247. border-top-color: #ffffff;
  6248. }
  6249. .popover.right > .arrow {
  6250. top: 50%;
  6251. left: -11px;
  6252. margin-top: -11px;
  6253. border-left-width: 0;
  6254. border-right-color: #999999;
  6255. border-right-color: rgba(0, 0, 0, 0.25);
  6256. }
  6257. .popover.right > .arrow:after {
  6258. content: " ";
  6259. left: 1px;
  6260. bottom: -10px;
  6261. border-left-width: 0;
  6262. border-right-color: #ffffff;
  6263. }
  6264. .popover.bottom > .arrow {
  6265. left: 50%;
  6266. margin-left: -11px;
  6267. border-top-width: 0;
  6268. border-bottom-color: #999999;
  6269. border-bottom-color: rgba(0, 0, 0, 0.25);
  6270. top: -11px;
  6271. }
  6272. .popover.bottom > .arrow:after {
  6273. content: " ";
  6274. top: 1px;
  6275. margin-left: -10px;
  6276. border-top-width: 0;
  6277. border-bottom-color: #ffffff;
  6278. }
  6279. .popover.left > .arrow {
  6280. top: 50%;
  6281. right: -11px;
  6282. margin-top: -11px;
  6283. border-right-width: 0;
  6284. border-left-color: #999999;
  6285. border-left-color: rgba(0, 0, 0, 0.25);
  6286. }
  6287. .popover.left > .arrow:after {
  6288. content: " ";
  6289. right: 1px;
  6290. border-right-width: 0;
  6291. border-left-color: #ffffff;
  6292. bottom: -10px;
  6293. }
  6294. .carousel {
  6295. position: relative;
  6296. }
  6297. .carousel-inner {
  6298. position: relative;
  6299. overflow: hidden;
  6300. width: 100%;
  6301. }
  6302. .carousel-inner > .item {
  6303. display: none;
  6304. position: relative;
  6305. -webkit-transition: 0.6s ease-in-out left;
  6306. -o-transition: 0.6s ease-in-out left;
  6307. transition: 0.6s ease-in-out left;
  6308. }
  6309. .carousel-inner > .item > img,
  6310. .carousel-inner > .item > a > img {
  6311. line-height: 1;
  6312. }
  6313. @media all and (transform-3d), (-webkit-transform-3d) {
  6314. .carousel-inner > .item {
  6315. -webkit-transition: -webkit-transform 0.6s ease-in-out;
  6316. -o-transition: -o-transform 0.6s ease-in-out;
  6317. transition: transform 0.6s ease-in-out;
  6318. -webkit-backface-visibility: hidden;
  6319. backface-visibility: hidden;
  6320. -webkit-perspective: 1000px;
  6321. perspective: 1000px;
  6322. }
  6323. .carousel-inner > .item.next,
  6324. .carousel-inner > .item.active.right {
  6325. -webkit-transform: translate3d(100%, 0, 0);
  6326. transform: translate3d(100%, 0, 0);
  6327. left: 0;
  6328. }
  6329. .carousel-inner > .item.prev,
  6330. .carousel-inner > .item.active.left {
  6331. -webkit-transform: translate3d(-100%, 0, 0);
  6332. transform: translate3d(-100%, 0, 0);
  6333. left: 0;
  6334. }
  6335. .carousel-inner > .item.next.left,
  6336. .carousel-inner > .item.prev.right,
  6337. .carousel-inner > .item.active {
  6338. -webkit-transform: translate3d(0, 0, 0);
  6339. transform: translate3d(0, 0, 0);
  6340. left: 0;
  6341. }
  6342. }
  6343. .carousel-inner > .active,
  6344. .carousel-inner > .next,
  6345. .carousel-inner > .prev {
  6346. display: block;
  6347. }
  6348. .carousel-inner > .active {
  6349. left: 0;
  6350. }
  6351. .carousel-inner > .next,
  6352. .carousel-inner > .prev {
  6353. position: absolute;
  6354. top: 0;
  6355. width: 100%;
  6356. }
  6357. .carousel-inner > .next {
  6358. left: 100%;
  6359. }
  6360. .carousel-inner > .prev {
  6361. left: -100%;
  6362. }
  6363. .carousel-inner > .next.left,
  6364. .carousel-inner > .prev.right {
  6365. left: 0;
  6366. }
  6367. .carousel-inner > .active.left {
  6368. left: -100%;
  6369. }
  6370. .carousel-inner > .active.right {
  6371. left: 100%;
  6372. }
  6373. .carousel-control {
  6374. position: absolute;
  6375. top: 0;
  6376. left: 0;
  6377. bottom: 0;
  6378. width: 15%;
  6379. opacity: 0.5;
  6380. filter: alpha(opacity=50);
  6381. font-size: 20px;
  6382. color: #ffffff;
  6383. text-align: center;
  6384. text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
  6385. }
  6386. .carousel-control.left {
  6387. background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  6388. background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  6389. background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001)));
  6390. background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  6391. background-repeat: repeat-x;
  6392. filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
  6393. }
  6394. .carousel-control.right {
  6395. left: auto;
  6396. right: 0;
  6397. background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  6398. background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  6399. background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5)));
  6400. background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  6401. background-repeat: repeat-x;
  6402. filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
  6403. }
  6404. .carousel-control:hover,
  6405. .carousel-control:focus {
  6406. outline: 0;
  6407. color: #ffffff;
  6408. text-decoration: none;
  6409. opacity: 0.9;
  6410. filter: alpha(opacity=90);
  6411. }
  6412. .carousel-control .icon-prev,
  6413. .carousel-control .icon-next,
  6414. .carousel-control .glyphicon-chevron-left,
  6415. .carousel-control .glyphicon-chevron-right {
  6416. position: absolute;
  6417. top: 50%;
  6418. margin-top: -10px;
  6419. z-index: 5;
  6420. display: inline-block;
  6421. }
  6422. .carousel-control .icon-prev,
  6423. .carousel-control .glyphicon-chevron-left {
  6424. left: 50%;
  6425. margin-left: -10px;
  6426. }
  6427. .carousel-control .icon-next,
  6428. .carousel-control .glyphicon-chevron-right {
  6429. right: 50%;
  6430. margin-right: -10px;
  6431. }
  6432. .carousel-control .icon-prev,
  6433. .carousel-control .icon-next {
  6434. width: 20px;
  6435. height: 20px;
  6436. line-height: 1;
  6437. font-family: serif;
  6438. }
  6439. .carousel-control .icon-prev:before {
  6440. content: '\2039';
  6441. }
  6442. .carousel-control .icon-next:before {
  6443. content: '\203a';
  6444. }
  6445. .carousel-indicators {
  6446. position: absolute;
  6447. bottom: 10px;
  6448. left: 50%;
  6449. z-index: 15;
  6450. width: 60%;
  6451. margin-left: -30%;
  6452. padding-left: 0;
  6453. list-style: none;
  6454. text-align: center;
  6455. }
  6456. .carousel-indicators li {
  6457. display: inline-block;
  6458. width: 10px;
  6459. height: 10px;
  6460. margin: 1px;
  6461. text-indent: -999px;
  6462. border: 1px solid #ffffff;
  6463. border-radius: 10px;
  6464. cursor: pointer;
  6465. background-color: #000 \9;
  6466. background-color: rgba(0, 0, 0, 0);
  6467. }
  6468. .carousel-indicators .active {
  6469. margin: 0;
  6470. width: 12px;
  6471. height: 12px;
  6472. background-color: #ffffff;
  6473. }
  6474. .carousel-caption {
  6475. position: absolute;
  6476. left: 15%;
  6477. right: 15%;
  6478. bottom: 20px;
  6479. z-index: 10;
  6480. padding-top: 20px;
  6481. padding-bottom: 20px;
  6482. color: #ffffff;
  6483. text-align: center;
  6484. text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
  6485. }
  6486. .carousel-caption .btn {
  6487. text-shadow: none;
  6488. }
  6489. @media screen and (min-width: 768px) {
  6490. .carousel-control .glyphicon-chevron-left,
  6491. .carousel-control .glyphicon-chevron-right,
  6492. .carousel-control .icon-prev,
  6493. .carousel-control .icon-next {
  6494. width: 30px;
  6495. height: 30px;
  6496. margin-top: -15px;
  6497. font-size: 30px;
  6498. }
  6499. .carousel-control .glyphicon-chevron-left,
  6500. .carousel-control .icon-prev {
  6501. margin-left: -15px;
  6502. }
  6503. .carousel-control .glyphicon-chevron-right,
  6504. .carousel-control .icon-next {
  6505. margin-right: -15px;
  6506. }
  6507. .carousel-caption {
  6508. left: 20%;
  6509. right: 20%;
  6510. padding-bottom: 30px;
  6511. }
  6512. .carousel-indicators {
  6513. bottom: 20px;
  6514. }
  6515. }
  6516. .clearfix:before,
  6517. .clearfix:after,
  6518. .dl-horizontal dd:before,
  6519. .dl-horizontal dd:after,
  6520. .container:before,
  6521. .container:after,
  6522. .container-fluid:before,
  6523. .container-fluid:after,
  6524. .row:before,
  6525. .row:after,
  6526. .form-horizontal .form-group:before,
  6527. .form-horizontal .form-group:after,
  6528. .btn-toolbar:before,
  6529. .btn-toolbar:after,
  6530. .btn-group-vertical > .btn-group:before,
  6531. .btn-group-vertical > .btn-group:after,
  6532. .nav:before,
  6533. .nav:after,
  6534. .navbar:before,
  6535. .navbar:after,
  6536. .navbar-header:before,
  6537. .navbar-header:after,
  6538. .navbar-collapse:before,
  6539. .navbar-collapse:after,
  6540. .pager:before,
  6541. .pager:after,
  6542. .panel-body:before,
  6543. .panel-body:after,
  6544. .modal-footer:before,
  6545. .modal-footer:after {
  6546. content: " ";
  6547. display: table;
  6548. }
  6549. .clearfix:after,
  6550. .dl-horizontal dd:after,
  6551. .container:after,
  6552. .container-fluid:after,
  6553. .row:after,
  6554. .form-horizontal .form-group:after,
  6555. .btn-toolbar:after,
  6556. .btn-group-vertical > .btn-group:after,
  6557. .nav:after,
  6558. .navbar:after,
  6559. .navbar-header:after,
  6560. .navbar-collapse:after,
  6561. .pager:after,
  6562. .panel-body:after,
  6563. .modal-footer:after {
  6564. clear: both;
  6565. }
  6566. .center-block {
  6567. display: block;
  6568. margin-left: auto;
  6569. margin-right: auto;
  6570. }
  6571. .pull-right {
  6572. float: right !important;
  6573. }
  6574. .pull-left {
  6575. float: left !important;
  6576. }
  6577. .hide {
  6578. display: none !important;
  6579. }
  6580. .show {
  6581. display: block !important;
  6582. }
  6583. .invisible {
  6584. visibility: hidden;
  6585. }
  6586. .text-hide {
  6587. font: 0/0 a;
  6588. color: transparent;
  6589. text-shadow: none;
  6590. background-color: transparent;
  6591. border: 0;
  6592. }
  6593. .hidden {
  6594. display: none !important;
  6595. }
  6596. .affix {
  6597. position: fixed;
  6598. }
  6599. @-ms-viewport {
  6600. width: device-width;
  6601. }
  6602. .visible-xs,
  6603. .visible-sm,
  6604. .visible-md,
  6605. .visible-lg {
  6606. display: none !important;
  6607. }
  6608. .visible-xs-block,
  6609. .visible-xs-inline,
  6610. .visible-xs-inline-block,
  6611. .visible-sm-block,
  6612. .visible-sm-inline,
  6613. .visible-sm-inline-block,
  6614. .visible-md-block,
  6615. .visible-md-inline,
  6616. .visible-md-inline-block,
  6617. .visible-lg-block,
  6618. .visible-lg-inline,
  6619. .visible-lg-inline-block {
  6620. display: none !important;
  6621. }
  6622. @media (max-width: 767px) {
  6623. .visible-xs {
  6624. display: block !important;
  6625. }
  6626. table.visible-xs {
  6627. display: table !important;
  6628. }
  6629. tr.visible-xs {
  6630. display: table-row !important;
  6631. }
  6632. th.visible-xs,
  6633. td.visible-xs {
  6634. display: table-cell !important;
  6635. }
  6636. }
  6637. @media (max-width: 767px) {
  6638. .visible-xs-block {
  6639. display: block !important;
  6640. }
  6641. }
  6642. @media (max-width: 767px) {
  6643. .visible-xs-inline {
  6644. display: inline !important;
  6645. }
  6646. }
  6647. @media (max-width: 767px) {
  6648. .visible-xs-inline-block {
  6649. display: inline-block !important;
  6650. }
  6651. }
  6652. @media (min-width: 768px) and (max-width: 991px) {
  6653. .visible-sm {
  6654. display: block !important;
  6655. }
  6656. table.visible-sm {
  6657. display: table !important;
  6658. }
  6659. tr.visible-sm {
  6660. display: table-row !important;
  6661. }
  6662. th.visible-sm,
  6663. td.visible-sm {
  6664. display: table-cell !important;
  6665. }
  6666. }
  6667. @media (min-width: 768px) and (max-width: 991px) {
  6668. .visible-sm-block {
  6669. display: block !important;
  6670. }
  6671. }
  6672. @media (min-width: 768px) and (max-width: 991px) {
  6673. .visible-sm-inline {
  6674. display: inline !important;
  6675. }
  6676. }
  6677. @media (min-width: 768px) and (max-width: 991px) {
  6678. .visible-sm-inline-block {
  6679. display: inline-block !important;
  6680. }
  6681. }
  6682. @media (min-width: 992px) and (max-width: 1199px) {
  6683. .visible-md {
  6684. display: block !important;
  6685. }
  6686. table.visible-md {
  6687. display: table !important;
  6688. }
  6689. tr.visible-md {
  6690. display: table-row !important;
  6691. }
  6692. th.visible-md,
  6693. td.visible-md {
  6694. display: table-cell !important;
  6695. }
  6696. }
  6697. @media (min-width: 992px) and (max-width: 1199px) {
  6698. .visible-md-block {
  6699. display: block !important;
  6700. }
  6701. }
  6702. @media (min-width: 992px) and (max-width: 1199px) {
  6703. .visible-md-inline {
  6704. display: inline !important;
  6705. }
  6706. }
  6707. @media (min-width: 992px) and (max-width: 1199px) {
  6708. .visible-md-inline-block {
  6709. display: inline-block !important;
  6710. }
  6711. }
  6712. @media (min-width: 1200px) {
  6713. .visible-lg {
  6714. display: block !important;
  6715. }
  6716. table.visible-lg {
  6717. display: table !important;
  6718. }
  6719. tr.visible-lg {
  6720. display: table-row !important;
  6721. }
  6722. th.visible-lg,
  6723. td.visible-lg {
  6724. display: table-cell !important;
  6725. }
  6726. }
  6727. @media (min-width: 1200px) {
  6728. .visible-lg-block {
  6729. display: block !important;
  6730. }
  6731. }
  6732. @media (min-width: 1200px) {
  6733. .visible-lg-inline {
  6734. display: inline !important;
  6735. }
  6736. }
  6737. @media (min-width: 1200px) {
  6738. .visible-lg-inline-block {
  6739. display: inline-block !important;
  6740. }
  6741. }
  6742. @media (max-width: 767px) {
  6743. .hidden-xs {
  6744. display: none !important;
  6745. }
  6746. }
  6747. @media (min-width: 768px) and (max-width: 991px) {
  6748. .hidden-sm {
  6749. display: none !important;
  6750. }
  6751. }
  6752. @media (min-width: 992px) and (max-width: 1199px) {
  6753. .hidden-md {
  6754. display: none !important;
  6755. }
  6756. }
  6757. @media (min-width: 1200px) {
  6758. .hidden-lg {
  6759. display: none !important;
  6760. }
  6761. }
  6762. .visible-print {
  6763. display: none !important;
  6764. }
  6765. @media print {
  6766. .visible-print {
  6767. display: block !important;
  6768. }
  6769. table.visible-print {
  6770. display: table !important;
  6771. }
  6772. tr.visible-print {
  6773. display: table-row !important;
  6774. }
  6775. th.visible-print,
  6776. td.visible-print {
  6777. display: table-cell !important;
  6778. }
  6779. }
  6780. .visible-print-block {
  6781. display: none !important;
  6782. }
  6783. @media print {
  6784. .visible-print-block {
  6785. display: block !important;
  6786. }
  6787. }
  6788. .visible-print-inline {
  6789. display: none !important;
  6790. }
  6791. @media print {
  6792. .visible-print-inline {
  6793. display: inline !important;
  6794. }
  6795. }
  6796. .visible-print-inline-block {
  6797. display: none !important;
  6798. }
  6799. @media print {
  6800. .visible-print-inline-block {
  6801. display: inline-block !important;
  6802. }
  6803. }
  6804. @media print {
  6805. .hidden-print {
  6806. display: none !important;
  6807. }
  6808. }
  6809. </style>
  6810. <style>.com { color: #93a1a1; }
  6811. .lit { color: #195f91; }
  6812. .pun, .opn, .clo { color: #93a1a1; }
  6813. .fun { color: #dc322f; }
  6814. .str, .atv { color: #D14; }
  6815. .kwd, .prettyprint .tag { color: #1e347b; }
  6816. .typ, .atn, .dec, .var { color: teal; }
  6817. .pln { color: #48484c; }
  6818. .prettyprint {
  6819. padding: 8px;
  6820. background-color: #f7f7f9;
  6821. border: 1px solid #e1e1e8;
  6822. }
  6823. .prettyprint.linenums {
  6824. -webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
  6825. -moz-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
  6826. box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
  6827. }
  6828. /* Specify class=linenums on a pre to get line numbering */
  6829. ol.linenums {
  6830. margin: 0 0 0 33px; /* IE indents via margin-left */
  6831. }
  6832. ol.linenums li {
  6833. padding-left: 12px;
  6834. color: #bebec5;
  6835. line-height: 20px;
  6836. text-shadow: 0 1px 0 #fff;
  6837. }
  6838. .str { color:#181; font-style:italic }
  6839. .kwd { color:#369 }
  6840. .com { color:#666 }
  6841. .typ { color:#c40 }
  6842. .lit { color:#900 }
  6843. .pun { color:#000; font-weight:bold }
  6844. .pln { color:#333 }
  6845. .tag { color:#369; font-weight:bold }
  6846. .atn { color:#939; font-weight:bold }
  6847. .atv { color:#181 }
  6848. .dec { color:#606 }
  6849. .com{ color: #A62A00; }
  6850. .typ{ color: #0A67A3; }
  6851. .kwd{ color: #3B0470; }</style>
  6852. <style>nav.sidebar {
  6853. width: 300px;
  6854. margin-top: 75px;
  6855. box-shadow: inset 2px 0px 0px 0px #CCC;
  6856. flex-grow: 0;
  6857. flex-shrink: 0; }
  6858. nav.sidebar #searchfield {
  6859. width: 100%;
  6860. background-color: #f5f5f5;
  6861. border-radius: 4px; }
  6862. nav.sidebar .sidebar-package-header {
  6863. padding-left: 18px;
  6864. padding-bottom: 5px;
  6865. padding-top: 10px;
  6866. position: relative;
  6867. vertical-align: baseline; }
  6868. nav.sidebar .sidebar-brand {
  6869. font-size: 14pt;
  6870. font-family: bitter;
  6871. color: #333; }
  6872. nav.sidebar .sidebar-brand:hover {
  6873. text-decoration: none;
  6874. color: #000; }
  6875. nav.sidebar .package-version {
  6876. font-family: bitter;
  6877. margin-left: 8px;
  6878. right: 10px;
  6879. position: absolute;
  6880. padding-right: 10px; }
  6881. nav.navbar .package-version {
  6882. display: inline-block;
  6883. padding-top: 15px;
  6884. font-size: 18px;
  6885. line-height: 20px;
  6886. color: #777; }
  6887. .wrapper {
  6888. display: flex;
  6889. align-items: start; }
  6890. .sidenav-l0 {
  6891. padding-left: 0px;
  6892. font-weight: bold;
  6893. line-height: 1.5;
  6894. margin-bottom: 0px; }
  6895. .sidenav-l0 li {
  6896. position: relative;
  6897. display: block;
  6898. list-style: none; }
  6899. .sidenav-l0 a {
  6900. position: relative;
  6901. display: block;
  6902. padding-left: 10px;
  6903. padding-top: 0px;
  6904. padding-bottom: 5px; }
  6905. .sidenav-l0 a:hover, .sidenav-l0 a:focus {
  6906. text-decoration: none; }
  6907. .sidenav-l0 li > a:hover, .sidenav-l0 li.active > a {
  6908. padding-left: 8px;
  6909. border-width: 0px 0px 0px 2px;
  6910. border-color: #000000;
  6911. border-style: solid;
  6912. background-color: transparent; }
  6913. li p {
  6914. margin-bottom: 0px; }
  6915. .sidenav-l1 {
  6916. font-weight: normal;
  6917. padding-left: 0px; }
  6918. .sidenav-l1 li > a {
  6919. padding-left: 30px; }
  6920. .sidenav-l1 li > a:hover, .sidenav-l1 li.active > a {
  6921. padding-left: 28px; }
  6922. .sidenav-l2 {
  6923. font-weight: normal;
  6924. padding-left: 0px; }
  6925. .sidenav-l2 li > a {
  6926. padding-left: 40px; }
  6927. .sidenav-l2 li > a:hover, .sidenav-l2 li.active > a {
  6928. padding-left: 38px; }
  6929. .sidenav-l3 {
  6930. font-weight: normal;
  6931. padding-left: 0px; }
  6932. .sidenav-l3 li > a {
  6933. padding-left: 50px; }
  6934. .sidenav-l3 li > a:hover, .sidenav-l3 li.active > a {
  6935. padding-left: 48px; }
  6936. .sidenav-l4 {
  6937. font-weight: normal;
  6938. padding-left: 0px; }
  6939. .sidenav-l4 li > a {
  6940. padding-left: 60px; }
  6941. .sidenav-l4 li > a:hover, .sidenav-l4 li.active > a {
  6942. padding-left: 58px; }
  6943. .arrow-down {
  6944. width: 0;
  6945. height: 0;
  6946. border-left: 4px solid transparent;
  6947. border-right: 4px solid transparent;
  6948. border-top: 4px solid #333;
  6949. margin-right: 4px;
  6950. display: inline-block; }
  6951. .arrow-none {
  6952. width: 0;
  6953. height: 0;
  6954. margin-right: 12px;
  6955. display: inline-block; }
  6956. .arrow-right {
  6957. width: 0;
  6958. height: 0;
  6959. border-top: 4px solid transparent;
  6960. border-bottom: 4px solid transparent;
  6961. border-left: 4px solid #333;
  6962. margin-right: 8px;
  6963. display: inline-block; }
  6964. .container {
  6965. margin-right: auto;
  6966. margin-left: auto;
  6967. padding-left: 15px;
  6968. padding-right: 15px;
  6969. padding-top: 25px; }
  6970. /*@media (min-width: 768px) {
  6971. .container {
  6972. width: 750px;
  6973. }
  6974. }
  6975. @media (min-width: 992px) {
  6976. .container {
  6977. width: 970px;
  6978. }
  6979. }
  6980. @media (min-width: 1200px) {
  6981. .container {
  6982. width: 1170px;
  6983. }
  6984. }
  6985. @media (min-width: 1200px + 300px) {
  6986. .container {
  6987. width: 1170px + 300px;
  6988. }
  6989. }*/
  6990. body {
  6991. font-family: 'Source Sans Pro', sans-serif;
  6992. font-size: 15px; }
  6993. h1, h2, h3, h4 {
  6994. font-family: 'Bitter', serif; }
  6995. span.file-location {
  6996. color: #BDBDBD; }
  6997. .sidebar {
  6998. display: block;
  6999. font-size: 80%;
  7000. line-height: 50%; }
  7001. .memberdef {
  7002. position: relative;
  7003. border-width: 2px;
  7004. border-style: solid;
  7005. border-width: 2px;
  7006. border-color: black;
  7007. box-shadow: 0px 2px 5px #CCC;
  7008. -webkit-border-radius: 5;
  7009. -moz-border-radius: 5;
  7010. border-radius: 5;
  7011. margin: 5px;
  7012. padding: 5px; }
  7013. .memberdef h3 {
  7014. margin-top: 0px;
  7015. padding-top: 3px;
  7016. font-size: 20px;
  7017. line-height: normal; }
  7018. table.compound-view tr {
  7019. margin: 4px; }
  7020. table.compound-view tr td {
  7021. font-size: 11px; }
  7022. table.compound-view tr a {
  7023. transition: background-color 0.1s;
  7024. -webkit-transition: background-color 0.1s;
  7025. display: block;
  7026. border-radius: 5px;
  7027. border-style: solid;
  7028. border-width: 1px;
  7029. border-color: #FFF;
  7030. height: 60px;
  7031. background-color: #EEE;
  7032. text-align: center;
  7033. padding: 5px;
  7034. color: #222; }
  7035. table.compound-view tr a b {
  7036. color: #0D5484; }
  7037. table.compound-view tr a:hover {
  7038. text-decoration: none;
  7039. background-color: #DDD; }
  7040. video, .youtube-video {
  7041. border-radius: 3px;
  7042. margin: 5px;
  7043. margin-left: auto;
  7044. margin-right: auto;
  7045. max-width: 100%;
  7046. max-height: 800px;
  7047. display: block;
  7048. border: 1px solid #444; }
  7049. img {
  7050. border-radius: 3px;
  7051. margin: 5px;
  7052. margin-left: auto;
  7053. margin-right: auto;
  7054. max-width: 100%;
  7055. max-height: 800px;
  7056. display: block;
  7057. border: 1px solid #444; }
  7058. code {
  7059. display: block;
  7060. white-space: pre;
  7061. overflow: auto;
  7062. margin-top: 5px; }
  7063. /** Needs a bit of resetting since it can turn out basically anywhere in the DOM */
  7064. .tooltip {
  7065. margin: 0px;
  7066. font-size: 11px;
  7067. font-weight: normal;
  7068. font-style: normal;
  7069. text-decoration: none;
  7070. line-height: normal;
  7071. white-space: normal;
  7072. font-family: Hevetica, Arial, Sans-serif;
  7073. text-shadow: none; }
  7074. .tooltip p {
  7075. display: inline;
  7076. margin: 0px; }
  7077. .label {
  7078. margin-right: 2px;
  7079. margin-left: 2px; }
  7080. .empty-section {
  7081. font-size: 0.9em;
  7082. color: #BBB; }
  7083. .compound-kind {
  7084. color: #888; }
  7085. .simplesect {
  7086. border-style: solid;
  7087. border-width: 0px 0px 0px 4px;
  7088. padding-left: 5px;
  7089. margin-bottom: 5px; }
  7090. .simplesect h3 {
  7091. font-size: 16px;
  7092. line-height: normal;
  7093. margin-top: 2px;
  7094. margin-bottom: 3px; }
  7095. .simplesect > p {
  7096. margin-top: 0px;
  7097. margin-bottom: 0px;
  7098. margin-left: 14px; }
  7099. .simplesect-return {
  7100. border-color: #505050; }
  7101. .simplesect-author, .simplesect-authors {
  7102. border-color: #0BAA0B; }
  7103. .simplesect-version {
  7104. border-color: #0BAA0B; }
  7105. .simplesect-since {
  7106. border-color: #D48B0D; }
  7107. .simplesect-date {
  7108. border-color: #505050; }
  7109. .simplesect-note {
  7110. border-color: #15458C; }
  7111. .simplesect-warning {
  7112. border-color: #D40D0D; }
  7113. .simplesect-pre {
  7114. border-color: #505050; }
  7115. .simplesect-post {
  7116. border-color: #505050; }
  7117. .simplesect-copyright {
  7118. border-color: #505050; }
  7119. .simplesect-invariant {
  7120. border-color: #505050; }
  7121. .simplesect-remark {
  7122. border-color: #15458C; }
  7123. .simplesect-attention {
  7124. border-color: #D48B0D; }
  7125. .simplesect-par {
  7126. border-color: #505050; }
  7127. .simplesect-rcs {
  7128. border-color: #505050; }
  7129. .simplesect-see {
  7130. border-color: #0BAA0B; }
  7131. .simplesect-deprecated {
  7132. border-color: #303030; }
  7133. .member-list .member-brief {
  7134. font-family: monospace; }
  7135. .member-list .member-brief .member-name {
  7136. color: #337ab7;
  7137. font-weight: bold; }
  7138. .member-list .member-brief .member-paramlist {
  7139. color: #5b5b5b; }
  7140. .member-list .member-desc p {
  7141. text-overflow: ellipsis;
  7142. white-space: nowrap;
  7143. overflow: hidden; }
  7144. .member-prot {
  7145. white-space: nowrap; }
  7146. .member-list-item-header {
  7147. padding-top: 5px;
  7148. padding-bottom: 1px; }
  7149. .member-list-item-header p {
  7150. margin-top: 0px;
  7151. margin-bottom: 0px; }
  7152. .member-list-item-header:focus, .member-list-item-header:hover {
  7153. background-color: rgba(0, 0, 0, 0.05); }
  7154. table.member-list-section td {
  7155. padding-top: 0.1em;
  7156. padding-bottom: 0.1em; }
  7157. table.member-list-section .member-desc {
  7158. width: 100%; }
  7159. table.member-list-section .member-desc, table.member-list-section .member-name, table.member-list-section .member-type {
  7160. font-size: 0.9em;
  7161. margin-bottom: 0px;
  7162. padding-bottom: 0px; }
  7163. table.member-list-section a, table.member-list-section p, table.member-list-section span {
  7164. -webkit-margin-after: 0px;
  7165. line-height: 1.5em;
  7166. vertical-align: center; }
  7167. .member-detailed {
  7168. background: #EEE;
  7169. border-bottom: 1px #AAA solid; }
  7170. .member-detailed .member-name {
  7171. font-weight: bold; }
  7172. @media print {
  7173. .member-detailed {
  7174. display: block; } }
  7175. .member-params-detail {
  7176. margin-left: 30px;
  7177. margin-top: 5px; }
  7178. .member-params-detail td, .member-params-detail th {
  7179. padding-left: 8px;
  7180. padding-right: 8px;
  7181. padding-top: 2px;
  7182. padding-bottom: 2px;
  7183. vertical-align: top; }
  7184. .member-params-detail td p, .member-params-detail th p {
  7185. margin: 0 0 5px; }
  7186. .member-params-detail .param-name {
  7187. color: #000;
  7188. font-weight: bold; }
  7189. .protection {
  7190. display: inline;
  7191. padding: .4em .6em .0em .6em;
  7192. margin-right: .2em;
  7193. font-size: 75%;
  7194. font-weight: bold;
  7195. line-height: 1;
  7196. color: #ffffff;
  7197. text-align: center;
  7198. white-space: nowrap;
  7199. vertical-align: baseline;
  7200. border-radius: .3em;
  7201. background-color: #fc20e6; }
  7202. .member-side-prot {
  7203. margin: 5px 5px 5px 0px; }
  7204. @media (min-width: 908px) {
  7205. .member-side-prot {
  7206. margin: 0px;
  7207. position: absolute;
  7208. left: -75px;
  7209. width: 70px;
  7210. text-align: right; }
  7211. .member-side-prot span {
  7212. margin-bottom: 3px; } }
  7213. .member-top-prot {
  7214. position: absolute;
  7215. left: 0px;
  7216. top: 0px;
  7217. width: 100%;
  7218. height: 100%;
  7219. background: #EEE;
  7220. display: none;
  7221. padding: 5px 5px 5px 15px;
  7222. line-height: 50%;
  7223. border-top: 1px #AAA solid; }
  7224. .member-top-prot .protection {
  7225. display: inline-block;
  7226. padding: .4em .6em .4em .6em; }
  7227. .member-side-prot {
  7228. line-height: 50%; }
  7229. .member-side-prot .protection {
  7230. display: inline-block;
  7231. padding: .4em .6em .4em .6em; }
  7232. .deprecated {
  7233. text-decoration: line-through;
  7234. text-decoration-color: #555; }
  7235. .protection-public {
  7236. background-color: #5cb85c; }
  7237. .protection-private {
  7238. background-color: #666666; }
  7239. .protection-protected {
  7240. background-color: #c1c1c1; }
  7241. .protection-package {
  7242. background-color: #7f3b2c; }
  7243. .protection-abstract {
  7244. background-color: #865add; }
  7245. .protection-readonly {
  7246. background-color: #f0ad4e; }
  7247. .protection-static {
  7248. background-color: #5bc0de; }
  7249. a:focus {
  7250. outline: none; }
  7251. .member-list {
  7252. list-style-type: none;
  7253. padding-left: 0px; }
  7254. .member-list ul {
  7255. list-style-type: none;
  7256. padding-left: 0px; }
  7257. .member-depth-1 {
  7258. padding-left: 32px; }
  7259. .member-depth-2 {
  7260. padding-left: 52px; }
  7261. .member-depth-3 {
  7262. padding-left: 72px; }
  7263. .member-depth-4 {
  7264. padding-left: 92px; }
  7265. .member-depth-5 {
  7266. padding-left: 112px; }
  7267. .member-depth-6, .member-depth-7, .member-depth-8 {
  7268. padding-left: 132px; }
  7269. .header-version {
  7270. position: absolute;
  7271. right: 20px;
  7272. top: 0;
  7273. vertical-align: center;
  7274. line-height: 50px;
  7275. color: #777; }
  7276. .inner-dropdown-menu {
  7277. list-style: none;
  7278. font-size: 14px;
  7279. text-align: left;
  7280. padding-left: 0px; }
  7281. .inner-dropdown-menu > li > a {
  7282. display: block;
  7283. padding: 3px 20px 3px 40px;
  7284. clear: both;
  7285. font-weight: normal;
  7286. line-height: 1.42857143;
  7287. color: #333333;
  7288. white-space: nowrap; }
  7289. .inner-dropdown-menu > li > a:hover,
  7290. .inner-dropdown-menu > li > a:focus {
  7291. text-decoration: none;
  7292. color: #262626;
  7293. background-color: #f5f5f5; }
  7294. .inner-dropdown-menu > .active > a,
  7295. .inner-dropdown-menu > .active > a:hover,
  7296. .inner-dropdown-menu > .active > a:focus {
  7297. color: #ffffff;
  7298. text-decoration: none;
  7299. outline: 0;
  7300. background-color: #337ab7; }
  7301. .dropdown-menu a {
  7302. height: 26px; }
  7303. .dropdown-menu a span {
  7304. float: left; }
  7305. .dropdown-menu a small {
  7306. float: right;
  7307. margin-left: 10px;
  7308. line-height: 182%; }
  7309. .search-dropdown-align {
  7310. margin-left: 0px;
  7311. min-width: 208px; }
  7312. @keyframes shadowPulse {
  7313. 0% {
  7314. box-shadow: 0px 0px 0px rgba(71, 91, 118, 0.7); }
  7315. 10% {
  7316. box-shadow: 0px 0px 0px rgba(71, 91, 118, 0.7); }
  7317. 50% {
  7318. box-shadow: 0px 0px 10px rgba(71, 91, 118, 0.7); }
  7319. 100% {
  7320. box-shadow: 0px 0px 0px rgba(71, 91, 118, 0.7); } }
  7321. .shadowPulse {
  7322. animation-name: shadowPulse;
  7323. animation-duration: 1.0s;
  7324. animation-iteration-count: 2;
  7325. animation-timing-function: ease; }
  7326. #banner {
  7327. width: 100%;
  7328. display: block;
  7329. text-align: center;
  7330. background: #f0af0b;
  7331. padding-top: 7px;
  7332. color: #000;
  7333. overflow: hidden;
  7334. padding-bottom: 6px; }
  7335. #banner a {
  7336. color: #000;
  7337. text-decoration: underline; }
  7338. h1 {
  7339. margin-top: 0px; }
  7340. table.table-filled {
  7341. border: 1px solid #e1e1e8;
  7342. border-radius: 3px;
  7343. border-collapse: separate;
  7344. background-color: #f7f7f9; }
  7345. table.horizontalAlternative2D3D th {
  7346. text-align: center; }
  7347. table.horizontalAlternative2D3D th.Alt2D {
  7348. background: #6599e7; }
  7349. table.horizontalAlternative2D3D th.Alt3D {
  7350. background: #ed8585; }
  7351. table.horizontalAlternative2D3D td {
  7352. padding: 10px;
  7353. width: 50%;
  7354. vertical-align: top; }
  7355. table.horizontalAlternative2D3D td.Alt2D {
  7356. background: #6599e755; }
  7357. table.horizontalAlternative2D3D td.Alt3D {
  7358. background: #ed858555; }
  7359. .inspector-field {
  7360. margin-left: 20px; }
  7361. /*# sourceMappingURL=style.css.map */
  7362. </style>
  7363. <style>@font-face {
  7364. font-family: 'Bitter';
  7365. font-style: normal;
  7366. font-weight: 400;
  7367. src: local('Bitter Regular'), local('Bitter-Regular'), url(https://fonts.gstatic.com/s/bitter/v13/rax8HiqOu8IVPmn7f4xs.ttf) format('truetype');
  7368. }
  7369. </style>
  7370. <script type="text/javascript">var pathToRoot = "";</script>
  7371. </head>
  7372. <body>
  7373. <div id="banner"></div>
  7374. <div class="container">
  7375. <div class="wrapper">
  7376. <nav class="sidebar hidden-print hidden-sm hidden-xs">
  7377. <ul class="sidenav-l0">
  7378. <li class=''>
  7379. <a href='http://arongranberg.com/astar/docs'><span class='arrow-none'></span>Changelog</a>
  7380. </li>
  7381. <li class=''>
  7382. <a href='http://arongranberg.com/astar/docs'><span class='arrow-down'></span>Beginner Tutorials</a>
  7383. <ul class='sidenav-l1'>
  7384. <li class='active'>
  7385. <a href='http://arongranberg.com/astar/docs'><span class='arrow-down'></span>Get Started With The A* Pathfinding Project</a>
  7386. <ul class='sidenav-l2'>
  7387. <li class=''>
  7388. <a href='http://arongranberg.com/astar/docs'><span class='arrow-none'></span>Writing a movement script</a>
  7389. </li>
  7390. </ul>
  7391. </li>
  7392. <li class=''>
  7393. <a href='http://arongranberg.com/astar/docs'><span class='arrow-right'></span>Using navmeshes</a>
  7394. </li>
  7395. <li class=''>
  7396. <a href='http://arongranberg.com/astar/docs'><span class='arrow-none'></span>The A* Inspector</a>
  7397. </li>
  7398. <li class=''>
  7399. <a href='http://arongranberg.com/astar/docs'><span class='arrow-none'></span>Graph Types</a>
  7400. </li>
  7401. <li class=''>
  7402. <a href='http://arongranberg.com/astar/docs'><span class='arrow-none'></span>Movement scripts</a>
  7403. </li>
  7404. <li class=''>
  7405. <a href='http://arongranberg.com/astar/docs'><span class='arrow-none'></span>Searching for paths</a>
  7406. </li>
  7407. <li class=''>
  7408. <a href='http://arongranberg.com/astar/docs'><span class='arrow-none'></span>Using nodes</a>
  7409. </li>
  7410. <li class=''>
  7411. <a href='http://arongranberg.com/astar/docs'><span class='arrow-none'></span>Deploying for mobile/uwp</a>
  7412. </li>
  7413. <li class=''>
  7414. <a href='http://arongranberg.com/astar/docs'><span class='arrow-none'></span>Working with Javascript</a>
  7415. </li>
  7416. <li class=''>
  7417. <a href='http://arongranberg.com/astar/docs'><span class='arrow-none'></span>Using Modifiers</a>
  7418. </li>
  7419. <li class=''>
  7420. <a href='http://arongranberg.com/astar/docs'><span class='arrow-none'></span>Pathfinding in 2D</a>
  7421. </li>
  7422. <li class=''>
  7423. <a href='http://arongranberg.com/astar/docs'><span class='arrow-none'></span>Error messages</a>
  7424. </li>
  7425. </ul>
  7426. </li>
  7427. <li class=''>
  7428. <a href='http://arongranberg.com/astar/docs'><span class='arrow-right'></span>Additional Tutorials</a>
  7429. </li>
  7430. <li class=''>
  7431. <a href='http://arongranberg.com/astar/docs'><span class='arrow-right'></span>Misc</a>
  7432. </li>
  7433. <li class=''>
  7434. <a href='http://arongranberg.com/astar/docs'><span class='arrow-none'></span>Examples</a>
  7435. </li>
  7436. <li class=''>
  7437. <a href='http://arongranberg.com/astar/docs'><span class='arrow-none'></span>Groups</a>
  7438. </li>
  7439. <li class=''>
  7440. <a href='http://arongranberg.com/astar/docs'><span class='arrow-none'></span>Classes</a>
  7441. </li>
  7442. </ul>
  7443. </nav> <div style="flex-grow: 1; min-width: 0;">
  7444. <nav class="navbar navbar-default">
  7445. <div class="container-fluid">
  7446. <div class="navbar-header">
  7447. <a class="navbar-brand" href="index.html">A* Pathfinding Project</a>
  7448. <span class="package-version"">4.1.10</span>
  7449. </div>
  7450. <div class="collapse navbar-collapse">
  7451. <ul class="nav navbar-nav">
  7452. </ul>
  7453. <ul class="nav navbar-nav navbar-right">
  7454. <li>
  7455. <form id="searchform" class="navbar-form">
  7456. <div class="form-group">
  7457. <input type="text" autocomplete="off" id="searchfield" class="form-control" placeholder="Search">
  7458. </div>
  7459. </form>
  7460. <ul id="search-dropdown" class="dropdown-menu search-dropdown-align">
  7461. <li><a href="http://arongranberg.com/astar/docs">Action</a></li>
  7462. <li><a href="http://arongranberg.com/astar/docs">Another action</a></li>
  7463. <li><a href="http://arongranberg.com/astar/docs">Something else here</a></li>
  7464. <li role="separator" class="divider"></li>
  7465. <li><a href="http://arongranberg.com/astar/docs">Separated link</a></li>
  7466. </ul>
  7467. </li>
  7468. </ul>
  7469. </div>
  7470. </div>
  7471. </nav> <div class="row">
  7472. <article class="col-md-12">
  7473. <h1>Get Started With The A* Pathfinding Project</h1><div class='alert alert-danger' role='alert'>This is an excerpt from the full documentation. You can view the full documentation <a href='http://arongranberg.com/astar/docs'>here</a>. Most links on this page will just take you to the full documentation.</div>
  7474. <p>Get Started with the A* Pathfinding Project</p><p>Pathfinding is all about finding the best path between point A and B. This is what the A* Pathfinding Project does, in this tutorial you will learn how to set up the project in a new scene and get a simple AI moving while avoiding obstacles.</p><p>This AI you will write will not be very advanced, it is just the minimal amount of code needed to get moving and following a path. If you want a more advanced AI you can either extend the script you will write in this tutorial or use (or extend) the AIPath or <a href='http://arongranberg.com/astar/docs'>RichAI </a> scripts included in the package (see part 2 for basic usage of the RichAI component).</p><h3 id='downloading' >Downloading</h3><p>The first thing you need to do, if you haven't done so already, is to download the A* Pathfinding Project<br>
  7475. The project can be downloaded from <a href='http://www.arongranberg.com/astar/download'>here</a href='http://www.arongranberg.com/astar/download'>, you can either download the free version with some limited features (but still very powerful) or buy the pro version with more cool stuff included.<br>
  7476. If you want, you can explore the different example scenes in the project before you start with the next section.</p><h3 id='js' >Javascript (Unityscript)</h3><p>If you are using UnityScript, you should first follow the instructions on the page <a href='http://arongranberg.com/astar/docs'>Working with Javascript</a>.</p><p>All example code is in C#. But I hope it will not be too hard following them since C# and Unityscript are quite similar. You should know that UnityScript does not support optional parameters so you must always pass all parameters to a function. If you get an error message that the function you are trying to call has no such overload, this might be the problem. Then check the docs for all parameters and their default values.</p><h3 id='usingIphone' >Deploying for Mobile/UWP</h3><p>Depending on which platform you are building for, you might want to read this page first: <a href='http://arongranberg.com/astar/docs'>Deploying for mobile/uwp</a></p><h3 id='errors' >Troubleshooting</h3><p>At this stage, if you are getting any compiler errors from the code you can first check the Readme_upgrading.txt file included, if you are upgrading from an older version. A common problem is that classes in the A* Pathfinding Project have the same name as classes in your project. This can be solved either by renaming one of the classes, or placing your class in a namespace so it will not conflict with the other class anymore.</p><p>If you are still getting errors, take a look at the forums (see <a href='http://forum.arongranberg.com'>http://forum.arongranberg.com</a href='http://forum.arongranberg.com'>) to see if anyone else has the same problem or post a new question there.</p><h3 id='overview' >Overview</h3><p><ul><li><p>The central script of the A* Pathfinding Project is the script '<a href='http://arongranberg.com/astar/docs'>astarpath.cs</a>', it acts as a central hub for everything else.<br>
  7477. In the <a href='http://arongranberg.com/astar/docs'>AstarPath</a> inspector you create all graphs and adjust all settings.<br>
  7478. There should always be one (always one, no more) <a href='http://arongranberg.com/astar/docs'>astarpath.cs</a> component in a scene which uses Pathfinding.<br>
  7479. The <a href='http://arongranberg.com/astar/docs'>astarpath.cs</a> script can be found at Menu bar–&gt;Components–&gt;Pathfinding–&gt;Pathfinder</p></li><li><p>The second most important component is the '<a href='http://arongranberg.com/astar/docs'>Seeker.cs</a>' component, a Seeker component should be attached to every GameObject which uses Pathfinding (e.g all AIs).<br>
  7480. The Seeker component handles path calls for one unit and post processes the paths. The Seeker isn't needed, but it makes Pathfinding easier.</p></li><li><p>To make the AIs move there are a number of included movement scripts in the package (e.g <a href='http://arongranberg.com/astar/docs'>AIPath</a>, <a href='http://arongranberg.com/astar/docs'>RichAI</a>, <a href='http://arongranberg.com/astar/docs'>AILerp</a>). You may use one of the included ones or you can write your own (see <a href='http://arongranberg.com/astar/docs'>Writing a movement script</a>).</p></li><li><p>Lastly there are the modifier scripts (e.g <a href='http://arongranberg.com/astar/docs'>SimpleSmoothModifier.cs</a>). Modifiers post-processes paths to smooth or simplify them, if a modifier is attached to the same GameObject as a Seeker it will post-process all paths that Seeker handles. See <a href='http://arongranberg.com/astar/docs'>Using Modifiers</a>.</p></li></ul>
  7481. </p><h3 id='video' >Video Tutorial</h3><p>If you prefer a video tutorial instead of a text tutorial. Here is a video for you. The video tutorial takes a more high-level approach and you will learn how to use the built-in movement scripts instead of writing a custom one. Since the video and text tutorials cover slightly different ground, it is not a bad idea to take a look at both.</p><p> <iframe allowfullscreen="allowfullscreen" class="youtube-video" frameborder="0" height="400" src="https://www.youtube.com/embed/5QT5Czfe0YE" width="690"></iframe></p><p>You can also take a look at the excellent tutorial by Gabriel Williams (Unity Cookie) in part 8 of the series on making a Tower Defence game: <a href='https://www.youtube.com/watch?feature=player_embedded&v=PUJSvd53v4k'>https://www.youtube.com/watch?feature=player_embedded&amp;v=PUJSvd53v4k</a href='https://www.youtube.com/watch?feature=player_embedded&v=PUJSvd53v4k'> The video covers most things which will be discussed in the text tutorial.</p><h3 id='newscene' >New Scene</h3><p>Create a new scene, name it "PathfindingTest". Now let's create something which an AI could walk on and something for it to avoid: add a plane to the scene, place it in the scene origin (0,0,0) and scale it to 10,10,10.<br>
  7482. Create a new layer (Edit-&gt;Project Settings-&gt;Tags) named "Ground" and place the plane in that layer. Now create some cubes of differerent scales and place them on the plane, these will be obstacles which the AI should avoid. Place them in a new layer named "Obstacles".<br>
  7483. Your scene should now look something like this: <div class='tinyshadow' ><img src="data:image/png;base64,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"></img></div></p><h3 id='addingastar' >Adding A*</h3><p>Now we have ground for an AI to stand on and obstacles for it to avoid. So now we are going to add the A* Pathfinding System to the scene to enable Pathfinding.<br>
  7484. Create a new GameObject, name it "A*", add the "AstarPath" component to it (Menu bar–&gt;Components–&gt;Pathfinding–&gt;Pathfinder).<br>
  7485. The <a href='http://arongranberg.com/astar/docs'>AstarPath</a> inspector is divided into several parts. The two most important is the Graphs area and the Scan button at the bottom.<br>
  7486. The Graphs area holds all the graphs in your scene, you may have up to 256 but usually 1 or 2 will be sufficient. A single graph is usually preferred for simplicity.<br>
  7487. If you open the Graphs area by clicking on it you will see a list of graphs which you can add. I can't explain them all here but the two main ones is the <a href='http://arongranberg.com/astar/docs'>Grid Graph</a> which generates nodes in a grid pattern and the <a href='http://arongranberg.com/astar/docs'>Recast Graph</a> which automatically calculates a navmesh from the world (only available in the pro version).<br>
  7488. The Scan button is for updating the graphs, this is also done on startup (unless the startup is cached, more about that in <a href='http://arongranberg.com/astar/docs'>another part</a>) and some graphs will do it automatically when changing the graph settings and the scanning won't cause any lag.<br>
  7489. There is also a <a href='http://arongranberg.com/astar/docs'>shortcut</a> to use Cmd+Alt+S (mac) or Ctrl+Alt+S (windows).</p><p>For this tutorial we will create a Grid Graph, after adding it, click on the new <a href='http://arongranberg.com/astar/docs'>Grid Graph </a> label to bring up the graph inspector. <div class='tinyshadow' ><img src="data:image/png;base64,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"></img></div> As the name implies, the GridGraph will generate a grid of nodes, width*depth. A grid can be positioned anywhere in the scene and you can rotate it any way you want.<br>
  7490. The Node Size variable determines how large a square/node in the grid is, for this tutorial you can leave it at 1, so the nodes will be spaced 1 unit apart.<br>
  7491. The position needs to be changed though. Switch to bottom-left in the small selector to the right of the position field (currently named "Center"), then enter (-50,-0.1,-50). The -0.1 is to avoid floating point errors, in our scene the ground is at Y=0, if the graph was to have position Y=0 too, we might get annoying floating point errors when casting rays against it for example (like the height check does).<br>
  7492. To make the grid fit our scene we need to change the width and depth variables, set both to 100 in this case. You can see that the grid is correctly positioned by the white bounding rectangle in the scene view which should now be enclosing the plane exactly.</p><h4 id='heighttest' >Height Testing</h4><p>In order to place the nodes at their correct height, the A* system fires off a bunch of rays against the scene to see where they hit. That's the Height Testing settings.<br>
  7493. A ray, optionally thick (as opposed to a line), is fired from [Ray Length] units above the grid downwards, a node is placed where it hits. If it doesn't hit anything, it is either made unwalkable if the Unwalkable When No Ground variable is toggled or the node is placed at Y=0 relative to the grid if it is set to false.<br>
  7494. We need to change the mask used, currently it includes everything, but that would include our obstacles as well, and we don't want that. So set the Mask to only include the "Ground" layer which we created earlier.<br>
  7495. </p><h4 id='collisiontest' >Collision Testing</h4><p>When a node has been placed, it is checked for walkability, this can be done with a Sphere, Capsule or a Ray. Usually a capsule is used with the same diameter and height as the AI character which is going to be walking around in the world, preferably with some margin though.<br>
  7496. Our AI will have the standard diameter and height of 1 and 2 world units respectively, but we will set the diameter and height for the collision testing to 2 and 2 to get some margin.<br>
  7497. Next, to make the system aware of the obstacles we placed, we need to change the mask for the Collision Testing, this time set it to contain only the "Obstacles" layer as we wouldn't want our ground to be treated as an obstacle.</p><p>Now everything should be set up correctly to scan the graph.<br>
  7498. Press Scan. Wait a fraction of a second and you've got a generated grid! (if you have done everything correctly, that is, compare your settings to the image below, also check that Show Graphs is true)<br>
  7499. <table class='table table-striped table-filled' ><tr rows='1' cols='2' ><td thead='no' ><p> <div class='tinyshadow' ><img src="data:image/png;base64,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"></img></div> </p></td><td thead='no' ><p> <div class='tinyshadow' ><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARoAAAGkCAYAAADuc+q/AAAC0WlDQ1BJQ0MgUHJvZmlsZQAAKJGNlM9LFGEYx7+zjRgoQWBme4ihQ0ioTBZlROWuv9i0bVl/lBLE7Oy7u5Ozs9PM7JoiEV46ZtE9Kg8e+gM8eOiUl8LALALpblFEgpeS7Xlnxt0R7ccLM/N5nx/f53nf4X2BGlkxTT0kAXnDsZJ9Uen66JhU+xEhHEEdwqhTVNuMJBIDoMFjsWtsvofAvyute/v/OurStpoHhP1A6Eea2Sqw7xfZC1lqBBC5XsOEYzrE9zhbnv0x55TH8659KNlFvEh8QDUtHv+auEPNKWmgRiRuyQZiUgHO60XV7+cgPfXMGB6k73Hq6S6ze3wWZtJKdz9xG/HnNOvu4ZrE8xmtN0bcTM9axuod9lg4oTmxIY9DI4YeH/C5yUjFr/qaoulEk9v6dmmwZ9t+S7mcIA4TJ8cL/TymkXI7p3JD1zwW9KlcV9znd1Yxyeseo5g5U3f/F/UWeoVR6GDQYNDbgIQk+hBFK0xYKCBDHo0iNLIyN8YitjG+Z6SORIAl8q9TzrqbcxtFyuZZI4jGMdNSUZDkD/JXeVV+Ks/JX2bDxeaqZ8a6qanLD76TLq+8ret7/Z48fZXqRsirI0vWfGVNdqDTQHcZYzZcVeI12P34ZmCVLFCpFSlXadytVHJ9Nr0jgWp/2j2KXZpebKrWWhUXbqzUL03v2KvCrlWxyqp2zqtxwXwmHhVPijGxQzwHSbwkdooXxW6anRcHKhnDpKJhwlWyoVCWgUnymjv+mRcL76y5o6GPGczSVImf/4RVyGg6CxzRf7j/c/B7xaOxIvDCBg6frto2ku4dIjQuV23OFeDCN7oP3lZtzXQeDj0BFs6oRavkSwvCG4pmdxw+6SqYk5aWzTlSuyyflSJ0JTEpZqhtLZKi65LrsiWL2cwqsXQb7Mypdk+lnnal5lO5vEHnr/YRsPWwXP75rFzeek49rAEv9d/AvP1FThgxSQAAAAlwSFlzAAALEwAACxMBAJqcGAAAIABJREFUeJzsvXd0HOd56P2btg1Y9A6QIECAFWxiA0mxiGqkuiyr2SpuiZTk3MRx4ntuvpPvnJtzkziJrcTlfFdObEeyJVuiLJGSKLGKIil2CqwgCBAkAaJ3YFG2T/n+WM4QICE2kAJIze8cSovdmXdn35l55nmfKvz85z83lixZQigUQhAEbGxsbG4khmEgh8Nhjh8/jt/vv6KgEQRh2G10Xb9Zx2hjY3OLYxgGsizL5OfnEwwGLytoBEEgGAwSCoXQNA1d15FlGUmSSExMtAa8eJ/LjWcYxiX72NjYjB6yLCGJonVfWv89f5uqmn7Z+3y4+9kwDGRRFImPj0eW5csKBkVRqKqqoqioCKfTic/nwzAM4uLi6OzspKCg4JIv0XWdYCCArmsMHloQRHTdwOFw4HQ6r2kibGxsbg6yLHH02AnKKurwepNwyAoIApIkIEkSHkVkwZxJuNxO616XJAlN04hGozgcDgRBuGSFYxgGsvnCMAxEUbzky82dDMMgHA6TkZFBZmYmPT09NDQ0sHLlSjZu3EhtbS35+fmDDlqmoqKClm4/Tnec+ZXIskJd7Rl2bv2YH/7t31JUVISmaQhC7MeoqnpDJk2SJEtr0vVLpbDJlb7XFL6CICCel/Sapn3h917N7zCXoPaS02asIAgCXV09rNu0j1mld7F0/nTiPS4y0pJITfGSHO/iv9/eQKdvgDy3w7qf2tra6OvrY926dbzwwguIokhKSsqQsS1BIwgCgUCAEydOEIlErBtUURRKSkrwer3WwUiShCzLJCYmUldXx9q1a5EkidraWrKysnC5XBiGgSAI+Hy9lCx+lJT0LHRdRTcgGg5z6PC/kZ2dS0FBgSVkgsEgbW1tQ4TVYJxOJ6qqXvYmH0xdXR0DAwN4PB7y8vKQJGmIsHE6Y1K5ubmZgwcPcv/99yPL8pBtRFGkv78fv9+P2+2mqqqK+Ph4Jk+efMl45vz4/X7KysooLS21vmPweA6Hg66uLvx+P9nZ2Vf9e2xsbiaCAIFggMSkBJLTMjlW68PjklCrWuj3D1CYnUA4GsVAsfYxDIP333+fyspKotEoP/rRj1i2bBlPPPHEJQ9a0dwhLi6O+Ph4urq66O7upqury3pv8M1iLnfi4uJYsGABJSUlpKSk0NfXd8lNI4giPb4+Du7dSf25egLBCJs/WENLSyNzFixG02IHI8syGzZs4Pnnn6e6uhpZlhFFEU3TLMG3Zs0aKioqEEWRSCSCpmmWBiYIwpDvFgSBv//7v+edd97hH/7hH9i9e7e1nylA161bx4EDB+jq6uKjjz4iEolY+0JMKAQCAX7729/S3d3NT37yEw4fPkxFRQXhcNgaz5xQU0OJRqP09PQMmTNN05BlmebmZl5//XVUVWXt2rWcPHkSSZJGeInY2NwADJBEkWBYo6e3nzumT2DmpPHMnzERd3waDW1+1EgEuHB/lJeX09DQwLRp0/jBD35ARkYG1dXVnD59+pLrWh78R2FhIW1tbQwMDBAfH8/EiRMt7cbaQZZxOBzouo4gCEyYMAGv18vevXuHWQoIDPgjbN/4AYIAK1Y/w/5dn7Bs9bO48WHoOoIsMDAwQG1tLaWlpWzdupU77riDrVu3sm3bNjIzM3nooYf4wx/+QHFxMS+++CJbtmyhp6eHF198kdOnT7Njxw7GjRvHt771LUuLcLlcrF69mvXr11NbW0tGRgYbNmwgGo3y1FNP8c477+D1ennuuecIBAL84he/IBKJ8MMf/hCn04kkSZw8eZJwOExeXh5NTU3Mnj2br3/964TDYV599VXOnj3LnXfeSXFxMa+//jo5OTksXbqUqqoqHnroIX7729/S1NREf38/ixYtIhqN8t///d+kpKQwZcoUPvnkE2bNmmVrNTZjAkEQiKoG/f19VNV3IAkid84chyjFHuiBYABB9Frbd3d309fXR1paGllZWSQlJVFbW0sgEMDtdhMKhawHsWWUMbWaiRMnYhgGEydOvESbMe04kiQhSRKiKCKKIunp6bjd7ksEja5rRHSFOx/6Fr2+Xl772f9LQkoOOUV3EA5HEISYkfnYsWP09fWxdOlSDhw4QHd3N9XV1Zw7d46FCxcybtw4xo8fz+rVqyksLGTx4sUMDAywd+9eOjo6CIfDPPnkkzgcDmvZFg6Heeutt0hPT2fVqlVkZ2dTWlrKqVOnaGlpobCwkJUrV5KRkUEkEuHee++loaGB2tpaSxqfOXOG1NRU0tPT+cEPfsBHH33EP/7jP7Jt2zYOHDjAD37wAx5++GH8fj91dXU89thjJCcnU1FRgWEYNDQ04HQ6eeqpp3jvvffIzMykuLiYZcuWkZeXR11dHX6/f1jbmI3Nl4kBiJKELsr09fbR1x/CKQmcqm2ls6uHwICfgQE/ohC7VnVdZ9GiRRQXF7Np0yZ+/OMfU1ZWxoIFCxgYGOD//J//w/79+xFFEUEQhmo0hmGQnZ1NZ2cnubm5w9og3G73JUJFkiQcDselB29A/0AYT0IKc+9+loOfvsv00ocIRESiqoZAbLmxe/dunE4nzc3NaJrG3r17efrpp0lKSuJf/uVf+Nd//VdkOXaoW7du5fjx48THx+P3+/F4POTn55OdnU0oFLJ+hyiKPP300yxduhRd1/n5z3+OJEk4nU4CgQCSJBGNRjEMg9TUVAoLC3E6nUSjUctYm5aWxunTpwkEAhQXF/OjH/2Iv/iLv8DtdiPLMoqiWNpdRkYGBQUF1NXVWfNmGsbi4+NxOp3W+JIk0dfXR2JiIk6n09ZobMYEoijR19ePRiMebyp6wEsLGg31bSQoGrI2MMQ5IssyixcvZvr06Xz44Ye8/PLLxMfHo+s6DQ0NJCYmWiuiSwSNw+GgpKTE0g4uprGx0YqjMYWNoiixyOKLnsyyLNHdVkt/fx+i7GL+XU9hCDJtddU41BCiJNPe3o7X6+X73/8+ycnJTJw4kRMnThAIBKiqqmLOnDmkpKSwYsUKNm7cyPz58wmHw+Tm5tLT00NKSgpJSUmXGJ9yc3NJTk4GYjaS1NRU6uvrmTRpEufOnWPZsmWsX7+ecePGkZOTAzDEmK1pGtOnT+fAgQNUV1ezfv16/H4/d955J9/4xjd4++23+fGPf8zChQuZOHEiWVlZqKqKLMvk5uZa2t6xY8c4ffo09957L9OnTyc3N5f33nuPUCjEggULEEXxhnnabGxGgqIoKEg01TcS0RXOynIsVk5WCGn9pMQbSGJM0JgP89mzZ+P3+5kwYQLZ2dkoikIkEuHBBx9kwoQJ1kNU+NnPfmaUlpYOSUG42C4DsadzR0cHTU1Nlxh6TJuIadMxx/D5fDQ3N6FrOpzXEmLjGiQnp1g3uLmPefCmOzoSieByuaxtwuEwiqJYxlXzxjb3HczFv8E03iqKYvn8Te3F9CBdvI8kSVRWVlpLyUgkQnx8vPV5IBBAUZQhrnTzu91uN3//93/PuHHjePHFF4f8vtbWVmpra5k/f76d9mEzZhCAjvZOTp5pots3wEB/kJqmbvwRg2B/O4+smMqy5csu8abC0PvNDCkxl02GYQwvaL4I0z4zHIZhXOrSusz2uq7fEksGMybGtKMMnuDhBLKJKIo0NTXhcDhIT08fstQ8H5J92fgeG5vRIBa+IqKrGuFwhP5AiGhUxTB0khLiUYYxkVwJwzCQBUFAURTLi3S9CIIwrJ3mizANyrcCkiTFrGXXMD2GYVjR0oZuXOTfGzSujc0YwzBAkGRcHhl3XNz5qP7rDzA1DAM5FApx+MhhBvwDlkXZxsbG5kahGzpyNBrlXO05+vv7EUTbXmBjY3NjMXQD2eVyMW3KNIKBy2dvXy8CAgjDZ3Xa2Njc/lju7ageJapHhxc0AihyzNMjSiK6pqPpsRiYKyJANBpFjaq43e4bffw2Nja3AEPiaAwu1TjMZMft+7bT2dWJJEksLF1I/vh8dEOPlakwDMs9rKqqZeA0s52rKqs4c/YMjz32mOVpMr1Rt4rnycbG5voxMIbzhVxAEAS2bNmCr8fHI48+QsAfwBvvpampyUpC9Hq9VhTg+PHjaWxsRNd0AoEAE4smEg6H6e7u5tSpU8TFxVmRx02NTaSlp5Gbm2uXS7Cxuc35QkFjlkhobGxk+fLlpKenE0oI4XK6ePONN/H5fCxeshhFUQj4A+zbu4/HHn+MLZu3xNzcAjQ0NJCRmUFnRycVJyro6uri6aefZu3ateTn55OSmmIHrNnYfAW4rD9bFEUwsCJot32yjTNnziBKIiUlJbF0gFCYqBolEonQ09ODJEvMnDWTZcuWUVtbSzgcJisri6XLl6KqKpFohIIJBTQ3N9Pf329rMzY2XwG+UKPRdZ34+HimTJnCwQMHcbvcnK4+TW5O7vmUAlBVlf3795OUlBQr6NTZBUBDfSwLevz48ciSjKZrMRuOphKJRJhQMIFAIMChskNMmTLlshG2NjY2tz6XtdFomsaKu1aQm5tLa1srC0sXMqFgAnHxcXg8HgzDYNnyZbS3tzOxaCKiKFJdXY1hGOTk5DB58mSi0SjeBC9xnjhWrlyJx+OhubmZnJwcFi9ZbOU22djY3L4Ir7zyijFu/DgCgcCw9hIzHdxMOjS9RmaGs1mXxvQ+ffzRxxRPKmby5MmWwdislndxIqTtdbKxuf25pEzEF20UjUaHvDdYA9E0zRIWqqpy7333YhiGVRtm8PbmOBePZ2Njc3tzw5ObbFuLjY3NxdhZlDY2NjcdW9DY2NjcdIa10ZhlKIdLS7CxsbH5IgSGb9o4RNDE2i1EqTtbR3tL+9UlTtrY2NzSmOVszbYqQzCGOnwAJDnmaR5OPmiahuJSKCouwuv1WsJmqEZjQHVVNZIoMXfhXBSnYht3bWxuY2KdSDQa6uro7urhQhlJHQMDSRTJnZBHZla2FeLS2tJKR3sH0UgsY8DAiDWgkySSE5OJ88RxovwEs+fMxu12D3Vvm21xfT0+7l11L4nJiTicDnv5ZGNzm2Iuc7Z9uoPPWwS01DsRBQFECUlxIogi0UAPNafKeCgtlWnTpnH08FHKDpQxfeZ04rxx6JqOjIyIiI7OkaNHyMrKIj09nZamFoonF6Pr+lCNRtd1RES8yV4cigNBEyz1yAzcM1FV9ZIuA+YY1g8RhFgpiUHCShIvqGjDFTS/4uTY6Qo2NjcEURTpam/lcFMUfeazxGUVIckKRqif4LZ/R8qYhHPKvQx4s9l/eANTJhZTWV5JQmICLc0tPP7k43jiPDh0B5IosXnrZgD6B/pjDSndcZaCNKzXabhWCpqmcfzYcTZv3szePXsZGBi40IVOlvn88885XX3aMiTrus6mjZtoaGywhJAoinR3d7Nr1y42b95stTIxG7aZ3zU4Qtn82xQwH3zwAV1dXXZhbxubESIIEIlEiEiJeDILcYgyDlHE6YxHikvFkZqHy5uCJ3sSfQE9luMIPPbIYyTEJ7D+/fVEAhFEQWTzls2cqj7FI088QnJKMmpUHVLM/6rc26Iosm7dOj788ENkWaatrY3+/n4ikQjhcJhgMGgJHUEQiEQi9Pb2UlZWRmdnp1UEq6uri5/+9KfUnK0BoKmpKZbRHYkQCASIRqP09/XT29sLxLSjcDjMwMCA1VXy4IGDdHZ2EgwGb/C029h8FYmtWQRi97ne04z/s1cxEHBOmAsCCOeVAROnw8ljjz6G2+Pmgw8/YOPmjdTU1PDEE0+Qnpk+bEeVK6YgmALiwP4DPPf8cyxavAg1Gls2/fQ/fko4EmbevHm0NLeQnZ1N3rg8Xv2/r5KQmEBfX5+13BJFkbKyMgzD4Jlnn8ET50FAoPpUNb/5zW8YN34cy5cv50T5CRoaGpi/cD4pySm8s+Yd0tLS0HWd5194HgTY/ul21rSv4bnnnqN4UrGdL2VjM0IEwEDHiPqJNB1DcCaeX9lc6lnSdR2H4uDh1Q/z6//+NadPneY7L36H3NxcBoIDiMPoL1fUaMxynqIokpycTMAfYPPmzbS0tODz+SgqKuKee+6ho7ODQCDAyZMn8fv9PPnUkyQlJVlCwDAM+vv6SU1NRVEUas7W8MknnxAKhwgEAjz88MNMmDCBouIiEhISOHb0GP39/aiqyjef+ybtHe1UV1cjCiILFy5k/PjxVFZVjniCbWxszrctc0gYGER7WvFMvwfR6x12W9OMsWf3HhySg8lTJrPn4B4G+gdwS25ELo3Bu6KgMRvYexO87Nmzh/7+fnZs30FrayuSJJGWlobL6Yr14jZ0JEkiFArRWN9IT0/PEBVq6rSpVFdXU11dTUN9Azu270BVVeLj40lPT6eiooL1H67H6/US8AesTPFgMIhgCHi9XgRBIC0tDYfTYfestrG5QcQcNwbhmgOxN0QZIxCMGXIEkSFmWwG2frKV06dP89hjj/HUk0+hyArvvPsOfr/fsskO5oqCxjAMHA4H3/rWt+j19fLaa6+RkppCaloqBQUFJCYmElWjjB8/ntTUVKZOm8qkyZPYv38/kyZNsoJ2NE1j6tSpfO2Jr/HR+o/Yt28f06ZNIz4+nsLCQnRdJzMzk9TUVDxxHhKTEhnoH8Dv97Ph4w1MmTqFwsJCCgoKcDqdZGdnk5GRYXugbGyuE8MAWRYRdT9BXxvhjmY0fxdS2nhUdwYR1UU4ECTU3YTLcd7uIsKnOz7ldM1pHn7iYVKyU9BEjdUPr8btcfPu++/iG/DF7LWDll1WPZpgMIh/wE/50XIefeZR3A43gnFhQ9ObFAqHLA1GkiQralBRYsF9uqYjyRc6IWiaNsTlLcuytY/D4bDGiUajF1IfDANFUThw4ADbP93OD/7mB4iiiKqqKIoypBe2bZ+xsbk+BEFAU1Xe+2gD5cF0XBOXIBsGhiijaQago0b8GKe38tDsXBYuXMCe3XvYtHkTd6+8m8ycTGtVYcqGHdt2kJmZSU5WDuFgmCklU4hGolc2Bpvouo6u6yiyYg1uChBBEIYsYy63pDE/kyTpknHM7zBfT506lQkTJgx536xlYwsYG5uRYRgGkizz0H0ryTt2nJaW9xFE6Xykr4ABSIJBcWkh06ZORVM15s+fj8fj4dy5c/T6egcNFmt9O3fuXGbPm0354XJCwQs1qa5a0Aw+uBvBlcYxDAOn04nT6bSXRzY2NwnDMPB44lm2dCmiMLwlRdM0VC1W91sURebMmcPcuXOH3VY3dKJG9JJ79poFzZeJLWBsbG4cZpzbxTW6Y1U0r96xcrkVi4GBIV16345I0AxOB/ii14AVzDd4uWPaaoYTJteTZiDLMqqmcrnULDt9YWxieiYHXz+D/wbsIvbXiSiKNDQ0sHbtWuLj47n//vsZN27cl256GFHhq3A4DAytK6zrsS6VptQTBIHOzk6qq6tRFAVZlpEkifLy8pjb+qIIQtOdrUbVq2ouZwqP8vJyouEv6B9+nv7+frth3RhDVVX6+vusa8lsXGhGlJsPqJaWFlT16q4JmwsYhkFycjIPPPAAfr+fjz76aNj7bjCSJOFQHCiKMqyr+nq47lFkWebNN96kob6BY8eO8W//9m9IksTa99ay67NdtLS0oCgKTqeThvoGdu3aRTAY5FztOZwuJxs3bsTv9+NwOKwfLYoivb29bN++HUEQLMGkKIr1uaIoQybAfL1p0yb8AT+SJKEoipULJcuyJdwqKyupqqoakhxqM3qIokhTUxP//E//zNEjR3E6nbS2tvL2W2/zx3f+yKGyQwiCwPr16/nwgw/54IMPrGaGNleHYRjExcUxffp0SkpKaGxstLqTDIcoirS0tHDg8wMcOnyI3r7eGyJsRnTHZedkc/TYUTweD3V1dbS2thIMBhk3fhwAVVVVbNm8hWAwSHpGOp9s/YT1H67nr/76rxAQ2Lx5MwP9A3z9ya+Tnp6OoigcKjtEelo6siLzu9/9zorBeeaZZ2htbeXjjz9GFEUef/xxUlJSWLNmDZ0dnbS3teNwODh69Chln5cxY+YM5s6dy7p16+jr7WP1A6uZWDiRT7Z9QmFhIQ6Hw15GjTK6rlNcXMyc2XOIRqPIsszRI0eZO28u06ZN43e//R0FhQW0t7fzw7/9IT/7+c9oamyicGKh7XW8BswVh2nM/SIkSaL6dDWfffYZ+RPy8fl8fF72OU987QlSklNGtHS9blFlGAaFhYWcPX2Wvr4+SkpK2LljJxMKJtDc1ExHRwdbNm/h3vvupaSkBF3XmVg0kYWlC5k1axb+gJ/s7GyysrM4fvw4iqIQjUZpa28jISEBXdfZv38/c+fOJRwOU19fz6aNmygtLWXO7Dls3LCR2tpampubefqZp3F73ITDYT5a/xE5OTls2LCB7u5uDhw4wMLShaSlpZGYlEhXVxf9/f3XPWE2NxYzbgpA1VQ6uzpxOpy4XC4GBgZoamyKabcOBV3X6e7uHuUjvn2JRCLs37+fRaWLWHXfKp5+8mmys7IpKysbcbWEEQmarKwsAqEAHe0d3HHHHXz66afk5uaiOBRCoRB+v5+8vDySkpMQiGVwm0sht9vNHXfcQUJCwpBGc7IsoxuxuJmc7BymTp2Kx+MhGAwSCATIyclh3Lhx9Ph6aG9vJyEhgcysTFxOF/19/fT19ZGUnMTXv/51EhIS+NM//VPWrV3HkSNHrKXXjVp32owcSZKsa8LhcJCSnEJUjRIOh/HEecjJzbG0WkEQSEpOGu1DvuX5okaRqqricDjIH59vvTd92nQCwcCI75nrXjrpuk5qaiopKSlk52RTUFCALMvk5eVRUVGBN97L1KlTefX/voogCKSnp5ORkUFjUyOHDx/G6XRaF48pLQVBID8/n9bWVoqKiqzIY1EUcTqdzJs/j9+/+Xs0XWPlypUUFBSwc8dOXv3/XqW/v5+0tDTmzZvHgf0HKCouIiUlhX379uHxeFAUhebmZtLT0klMTLSXTWMAURSpqKjg4MGDnDp1isLCQubOm8v777/Pvr37uGPuHaSlpZGamspPfvwTvF4veXl5tvfpOjEMA8MwiEQil3hgBUGgt7eX/oF+Kqsq8Xg8ALS1t9Hr6yUQCFgda6+Hq05BGHZnQSAcDluaSDAQxBPnsd6TJIn29nY8Hg8OhwOXy0VPT49loHU6nZZ3yrSZ6LrOvr37mL9gPrqu43K5CIfDlkG3vb0dQRDIyMgAiHksQmE8Ho/VD7ytrQ1FUUhMTKS7uxtFUUhNTeXI4SNk52STnZ1tr/HHCKFQLHsfID4+HrfbTWdnJ6FQiOzsbKu+UWtrKxkZGbhcLvshcR2Ynt633nqLe+65h7vvvntIPIzD4eAPb7/FkSNHUBwOK0vJIBZj89Kf/AmFBYVXTGQ242j279rPQN8AU0umXlsKwrCDno/eNV974jzWe+bFkJ2dbb02XW2D93c4HNZriD3llty5xMqBMgxjyMWVlZUFXEhbSPAmgPfCeIIgkJOTY0nvrKwsS4CVzChBURRbyIwh3G639YAwl0gpKSlWYJl5jeTn51vb2Fw7mqYxbdo0SktL2bFjB4IosHzZ8guxS0AkqqLqBqg6FwLSBFRNR9dHNu8j9vMOPvGDBYrJcFGIJsMFZpkMNhJe63iDt7k4odNWu8cWwwmPi9+zBczIMTXDwaaI4baJ/R+GK3g1EkZk4RFFEY/Hg9vtxuVyXVN8g7ns+iKfvqnNXAuhUMgKHBwO84K1jcFjB0mScLlc1jkx46cGG+3NpbYd/3T9iKLI6dOn2b9/P/feey9LFi/5UoX3dZ85s8TnH37/B1wuF/HeeFatWkVycrKVcmBGcprlHwZna3s8HrZ/up3klGRKS0sJh8OWtiHLMkePHo2lm59fBomiaMUCKIpijW8usRwOB1u2bCEvL49Zs2aBAIYe67IgSZIluE6dOoUsy1ZWuM3oIYoidXV1fPzxx6xcuZKpU6cSDAZ5//336e3tZdX9q8jJzeHQoUMcKjvEzFkzWbBggX3erpPW1lYURWHatGnDzqGmacM+qM37biRc96NdEAS6urpoam7ia098jcTERH7xi1+gqio1NTWUlZWhaRo9PT1UV1eze/duent7aWxs5B/+9z9QUVFBX38fDQ0N7N69m76+Pksotba2UlVVRUpKCnXn6qiurmb//v1WVGh5eTk7duygr68PSZJobW1l586dVFdXEwqFUFWVg/sPUltbGzMgd7Sze9duWppbyMzMZPfu3fj9fjvCdJTRdZ309HTUqEprSytOp5MjR47gdDqZe8dctm/fjt/v5+DBg6xevZrjx4/T3t5ua6TXiZnSMdgsYaLpOgX5+cycMYMZ06cP+TdzxgziztvRrpcRJ1UmJSWRlZXFPffcw/59+zl06BAH9h/Am+AlGAii6zo7du5g9uzZvPHGGzzyyCP09fWBEXuilZeX09PTQ01NDd/85jfRdZ2Ghga8Xi/p6en85Mc/ITUtFTWqIgoiCYkJ7Nixg5ycHD744AO+8Y1vsObtNUyZOoXurm7cbjd79+zl7NmztLe3853vfoc/vPkHJhRcqEds1tOYOXPmZZdaNjefpKQk0tPTEUURTdeoO1fHtOnTKCkp4ZNtn1BfXw/AjJkz2LR5k/WwsLmxqKrK8mXLuGvFiuE/j0ZH5ES5IY8GURRjmdPAuXPnaGtrw+P2WIFXc+bM4amnnqLX14vD4SAvL4+SkhIMw2Dp0qWsXLmS9vZ2a7yBgQFrqaMoCqtXr2b2nNmxAuWnqplRMoNvfvObNNQ3cO7cOTRd48knn2TqtKkEAgGOlx+P1SL2xjMwMMCMGTM4V3uOvt6YBiQg4B+wNZqxwuDltSAO7ell2mXMuI9h+0PbXBVXut7N1kfD/dNHa+lk0t7eTuXJSjZt3ET++HxmzZqF0+lk+ozpzJw5EwRobGxk//79xMfHk5iYSCQSoaamxrLhRKNRy35jGAZZmVkEgzFtKKrGSnxGIhF0XSdvXB5na86yc8dOUlJSSEuA0914AAAgAElEQVRLw+/3s2fPHqoqYwmTZrzFypUrSUxMZPKUyeTk5LBr9y40TSMSiZCdY8fSjDaCIODz+WhsbKSurg7/gJ/iomLOnDnDnt17yMvLIy8vD1EU+WznZ2Bg2exsrh5BEHA4HKN6vUv333///05MTERVVaKRKO2t7UwpmYIiKUOKCw+HoihgQFd3F2lpaTzw4ANkZmaSmJhITU0NSUlJdHd109bWhsPhYMmSJWRkZBDvjaevv4+CggIyMzNJSkoiJSWF9PR0DMMgISGBM6fPkJScREZGBtnZ2cTFxZGWlkZxcTE+n4+2tjbuWnkXWVlZpCSnUHO2hhkzZ1BYWEjJ9BLaO9rp6ekhMzOT2tpaDMNgxYoVdLR3MDAwwOw5s+0LdpQRRZG2tjaikSgej4fU1FQKCwvp7Oykr6+PFStW4PV6SUpKorKyknnz5zFu3DjbGHwNCIJAd3c3+/bt4+DBgxQUFDB79uybq82L0FjfSCQcIT0jHV3TRx4Z7HK5gJhhLxKJxJY7DgVRiEUG79q1C8MwWL58OeFw2CowPjhGxjAMq0A5xFyefX19GIZBamoqkUhkiCfLjAHQNM0az1xqmRZyMxAwqkaRJdkKAGtvayfeG29nb48RTI8hYHkeL/YqyrJsLZ3sFjvXhln2YdOmTSQmJrJ8+XJSU1NvmrC+aZHBw7WmjUYuGFjN2qJ+v//C58MYYAf/cE3TiI+PBy4U1xqs9pnvDR7v4jEHbxPRLsTqpKSmWMduM/pomnbJNXTxubSFy/Wj6zpZWVl873vfA7CE95fNlxoBdblI4Iu5WYLAFjBjC9MQbKYb2Nx4BlfAHC1GHBlsLp1Mg9PlGE7zuBxXGs/m1kYQBPx+P2fOnLHiqGxuT65b0IiiSGdnJ79/8/fouk4oFGLbtm2WS3JwCLkpkI4dPUbZ52U4nc5hQ8oH14tRVZUtm7dYLm6zrKc5vh2OfnvQ19fH66+/Tvnx8hEXV7IZu4woMnhgYID//M//5NChQ+iazueff44oijQ2NLJnzx66u7uRJIn+/n4O7D9AZWVl7MmFQEVFBdXV1UPG8/l8HDx4kLa2NkRRxJvgJRQKUVZWRllZGadOnUJVVaoqq6iqqrJV7VscwzAoKChgRskM+1ze5oxo6aSqKkuXLuWzzz6jrb2NuLg4Ojo6WLNmDa2trax9by2qqvLee+9RU1NDa2sszLz8RDm7du1i65atnDlzxtKA3nzzTc7VnrPKBezYviPmdo9G+eyzz9iyeQtnzpxh+/btfPrpp1RUVNiazS2Oea5tbm9GJGg0TSMnJ4dFixax9r21AJyuPk1SchLf+9736O7u5vTp07S3t/P0M08zd95cVE3l+PHjBANBHE6H5cY2DINJkybR2NRoeSGi0ShJSUkUFBQgIPDCiy9QebKS/v7+WOnO/n77SXiLc6E0gWDbaG5jRiRozB5O9913H/6An7NnzpKdnY2vx8e+vftwOBxWEN6hskOcrDhplQB1uVwsX76coolFVgzOrFmzGD9uPNu2bQNiGlN7WzuvvPIK06ZPIxqN4k3w4nQ5uXPpnUydOtUO3rqFEUWREydOUFFRwa7du6irq0OSbTvN7ch1RwabAVROp5MJEyYwbtw44uPjmTd/Hv6An0Nlh1i8ZDGTJk0iMTGR/fv3M278OIqLipk9ezaNDY2cOXuGtNRYTViAPXv20Nfbx/Lly0lKihWh9ng89PT0oGs6PT09LF68mJ6eHqqqqkhOTrYEmc2th2EYJCUlseKuFSxZsgSv12ufy9uBGx0ZbNYKNmv6mq/NpnC6rlv9eszCxqqqomnaJdG9gLWfuY2Zn+FwOjB0wxrPdHsP3tfGxmb0uSmRweaSx2xbahr1Lq6ap6rqJQLh4uje4fYz/w4GhkaODrevjY3N2MXOubexsbnpjNg3LMuyVbHLLIBsY2NjM5gRCRpJkqipqeHokaNEo1Hy8/MpXVRqCZ3BNYPN5RVgRQwPbqmiaZoVGWq2R7Gxsbk9GFEKQmNjI7/5zW+YOHEic+6YQ1paGgDNzc1W5O7AwAAtLS2UHy8nEAjQ1tbGj//tx5w5cwZd16k8WUlzSzOSJNHW1sa5c+esJnE2Nja3ByPqgnDk8BFSU1OZv2C+1Z2ypaWFP/7xj3i9Xnp7e4lGo2zYsIFJkyZx/PhxlixZwrlz5wgGg5R9XkZlVSW9vl6+9e1v8fprr+NN8PLQQw9d0rLTxsbm1mVkAXuGbi2DzOXSqVOnaG5uxqk48fl8BINB5s6dy2OPPUZrWysZmRkUFBQwa9Ysjhw5YnU2MPOiHnjgAQoKCuylk43NbcR1azS6rjNz1kw+++wzjh49SlxcHLquk5SUhNvlZuGihVZrE7MNraqqCAiEI2FaWlpISExAFETuu+8+cnNyiUQjSJJkx8bY2NxmXHdksGEYpKSkkJmZya7PdnG29ixxnjjmz5+PGlU5dPgQbreb1NRUkpKSrPKBxcXFsdSC9nZWrFhBZVUldXV1ZGdn43Q4GZ8/3qpxY2NjM3qYXUMlSbKKkw1GkiRkWR7ixAGGjQwekddJ0zTmzJljles0K3ndv+p+4NLynPfddx+RSIR77rnH8jR9+9vftiKG8/LybkhXPBsbm5EhCAIBf4BT1aeIRqMkJydTUlJifS6KIqdOnaK1tRVZkplYNJGkpCQ0ffhM/BHH0Qy3zPmiWBrz/cFV9obU9rVjcGxsxgSKonDocCwRetGiRfz8Zz9n8eLFVlkWURT55JNP+LM/+zMqKyupq6/j2WefJRAMDDveV7aYi1mWwDY63zjMOTXLfgzGDOq0tdVLGatzE4lE+NrXvsbjjz/Onj17WLpsqZWjKEkSNbU1/Pmf/zmHDh3ijTffuOxYN13QmLWETff34LYqo4UoinR3d9PX10deXp4VNDhWMZNXzbYzY2EOL0YQBMLhMC3NLaSlpxEfH2/NaTQaxefz4fF4iIuLG7VjlCQp1ovs/PGGQqFRP++6rlNfX09CQgIpKSlj5sFnGAbJScm88sorrFu3joaGBvLz8635kySJaCTKiy++SGNjI0vuXHLZubypgkYURfr6+jh58iSlpaX09PTQ1tbG5MmTR+0ES5JEe3s769atQxRECgsLufueu8dslTczkLG5uZk77rjD6uw4efLkMRXUqOs6H330ET6fD1mWeeqpp3C73bHQha5u/uu//osFCxfw4IMPjopXURRFmpubOXrkKKIkomkaK1aswO12j+q1+Omnn1J3rg5d13ns8cfIyMgYE9diNBplwcIFnKk5w7Kly0hPT+fMmTM01DcgCAIZmRn8r7/7X/T19fHuH9/lvvvuIxQKfeF4NzWp0jAM3G43O3fuZPv27WzevNnqqz1aSJLEiRMnmDplKi//2cucPHlyzGkHgzGb4a19by0tLS3s3LmT1tZW68kymiiKgsPpwOmMxUx1tHfwN3/zNyQlJVFXV2d5Ksbnj2fFXSvAGL12N+a1WFhYSG9vL59u+3TUi6Gb9a9fevklpk6byonyE6N+TIMxG0R6vV7i4uIo+7yMX//Xr/nNr3/DZzs/w+PxkJCQYD1QLsdNFzQOh4MXXniBNW+vQUBg4cKFoxono+s63d3dllsuGAwSCATGlHYwGLMi4eoHVvPzn/2czo5OVqxYMapPPTNvbfeu3az/cD2fbP2E+rp6BGJ5baIo4uvxWTluCIz6U9owDJKTk8mfkM/p6tO89PJLo6rNiKLIwMDABZOCKNHd0z3qS7kvwgzIlWTJcndfi13pSykT4XA4EEWRUHj018SiKJKelk44HCYcCuOJi9kNRvu4LoeqqsydO5dwOEzpolKriNhoYV506Rnp5OXlkZWVRWZWJghYbY9T01IJBAJEIhEkUbKKn5mR5KOBKIq89Ye3mDxlMtOmTRv1B57X68XlchGJRAhHwqSnp4+pB54kSciKjNPpxOFwkJOTw+w5s5k9ezbjx49HUZQvbJ10MTfVRiMIAtFolHVr1/Ht73ybbdu2cejQIebOnTtqJ1lVVUpmlLB27VqqqqqYOXMmsiyP+hP3SkiSRHJyMh6PZ0wIRVEUKSoqsm4MXdfJyc3h31/5d+Li4iguLub9998nPz+fnOwcdu7cSTQSZWLRRIqKir708y/LMvv27aOqqor/8Zf/g+bmZpKTk0dV8EmSxIxZM/jlL3+JLMk88fUnxkxUvCzLnKw4yeYNm6k4XoHL5eL7f/392BKY2Pn/xc9/QU9PDzU1NRQVF1FaWko4MnxRuptuDG5tbaV4UjGlpaUkJCRQX1+PruujljSp6zrJyckxn38gQFpa2pgXMiZz5swZU9rXYA+JIAg8+OCDdHV2kZiUiCAIrFq9CkmUEASBv/7rvwZi2u1o3Exmn/jMzEw+Wv8RDoeDJ596coh37MtG0zSW3rmUqVOmEhcXh9vtHjNeJ1EUqT1Xy0svvcRz33yO5194nlAoZJXRlWWZ9o523n7rbXbu3MnmLZtZsmTJF453UwWNpmlkZ2dbEb9Tpkxh+vTpox6YZxgGHo9nzGgHV8Jcqjzy6COj1qT9SgxeTpn1hJwOp/W56dYezZt65cqV3H///ZZtIRwOj/r5NwzDKq8y2sdyMaIg0tDQQGVVJS0tLfz+jd+jOBTrs/q6eqqqqqg5W3PFsW56HI2u69aNMbiu8Ggz1k7q1TDaAvpq+KJ5HQvzfa29378sxsLcXIymaUyfPp0dO3bw2uuvcdddd3H/qvutY5VlmezcbF57/TUEIebkudzcfmUjg21sbL4YTdPIys7ixW+9CFxYeg62yd1///2WjSsSiVx2STwiQSMIghWSHI1Gr1tbMctIjMUlgY3NVxVN0wgEhs9dAi4boHcx1y1oBEHA7/ezZcsWBEFg1qxZZGRkABdyN8yawGbcxeD8IkEQrOCk48ePk52dTUpKimUkNrcZvM9YVDFtbGyuzIhqBre0tLBlc0zQvPWHt4hGo6iqytmzZ2lvb8fhcPDZzs9Yt24dgUCAjo4OamtriUaj1NfX88tXf0lXVxfRSBRd11FVlZqaGlpbW2NxN6EQvb29VunPsRRjYGNjc/WMeOlktjH1eDw4HA7WvL2GUDiEf8DPo48+SkNDAzU1NcyfP5/GhkaqqqqIi4tj0qRJHD58mJUrV3L48GESEhPYvXs3Pp8Pv9/Pww89TFd3F++++y7FRcVIksTzLzxvazU2NrcgI4pWMuNkdu7YycLShYTDYWpqa/jOd77DtOnTOH78OBOLJjJv3jzy8/NJSkoiKzuLU6dOMT5/PJMnT2bu3LkEg0F8Ph/Vp6p5/vnnWTB/AYcPH0bTNCZNmsSTTz9Je0f7mPFY2djYXBsjEjTRaJQJEybwrW9/i40bNhIIBHAoDurr6+nq6iIpKQkAn8/HuXPnePvtt3G5XNYSKxgK0t3TjaqqOBwOHE4HDQ0NtLW3kZycjKqqxMfFY+jGmImYtLGxuXauu2awmV4QiURYsWIFXd1dSJJEYWEhGzdsRFEU7r77bhISEqisrCQ1NRVVVfH1+khISKBwYiHhcJj+/n68Xi8TJkwgNzeXTRs3oWs6990fK/vpdDnJysrC7/cPCXm3sbEZowxTM1h45ZVXjHHjxxEMBvEP+Ck/Ws6jzzyK2+FGMK6Q+j2oIJPD4bA8S6Zv3QzgMXOJzGRAU0iZ70uShKZpVuavue/gDpeKotwSAWs2Nl9lDAwMyWD/rv0M9A0wtWQq0Uh0ZMZgXdetm/9yQsAUOBdvY75vxs9cHEcz2CZjCxkbm1uX0UtdHWXM+BybkWHP48j5KszhTRc0Zm8YuLDUGm0EQbDiei5nhxoriKI4pNbtWJhDiB1LV1cXfr8fQbw15tHpdFr/xsLNLQgCHR0dY7r42o3gptejGRgYoLa2llmzZtHb20tnZycFBQWjWtmsu7ubtWvXoqmxxLGly5aOWde5KIp0dXXR2dnJlKlTGOgfoKWlhYKCglG9MCVJYu/evRw5fATFofD4Y4+TnpE+ZudREATa29s5WXEyVoweg/nz5+NyuUa1ZvDOnTupPFmJLMt87WtfIzkl+bZMxbnpGo2iKHz44Yfs37+frVu30tLSMqp1UWVZ5sSJExQVFfHyn73MsePHxrTr3BQmb77xJt2d3ezetZszZ86MulZjGAaHDx/me3/yPWbOnMnRY0dH/ZiuhCiKxMfHU99Qzx/f+eNoHw6aplF+vJyXXn6J4knFlJeXj/k5vF5ues1gj8fDs88+yxu/fQO/38+dd9456iUUOzo6cDpi5QkD/kBM9R+jaqumaWRkZLBs+TJ+9atfUV9fz9133z2qTz0zzy0YCFplHjs7Osf0k9gwDNLT05k7by6tLa1897vfHdWiV6Io0t/fbxWTUhSFjs6O2zby/aZrNLquk56WTlSNIsnSqJZOhNgJTklJQVVVVFXF7XaP+QJYqqqybNkympubKV1UitPpHPWawR6PB5fbFYu/ikZJThndsphXgyRJvP3W22RkZDB33txRrU2j6zrx8fE4nI5Ynl9UtZKKb0e+FEHz/vvv883nvkldbR0nTpwYVfVQ0zRKSkqorKrkl6/+kqnTpo6J1iVXQlEUMjIySEhIGBNCUZIkZs6cya9+9SuOHD7C7Fmzx/QSVJIkDh06RMWJClY/sJq+vr5Rn0dZlpk2bRq//OUvqaysZEbJjDFr4xopN/WOlySJpqYmMjIzuOuuu0hKTKKmpoapU6eOWs1gTdNIT0/nySefpK+vj9zc3Fvi5BqGweTJk0e1RchgVFVlyZIlFBQU4PF4SE1NHfPz2NHegcvj4u233sbhdPDss8+Oes3gFStWUFRUREJCAsnJyWN+Dq+XEUUGX9UXnHfHRqNRqx/MWCineCv23nY4HESj0TEhaEzGat/o4TDbgpjHO1bm8laawytxUyKDr+qLz59QGHs1g2+1EzsWo6NvJUFt2uXGGrfSHF4vVyVoRrvx15eNYcSyxW81QWRjM1a5rKAxExqPHDlCR0fHl3VMo4sBTqeT6SXTSUlJ+Uo8bWxsbjaXFTSiKHL8+HGKJhbx6COPXveXmNrQSG9aURQRENB0zXID3mitQxAE+vr62LJlCw6HY0w1bLOxuVW5oqDpaO/gmaefsUp2XiuGYdDY2EgkEiE/P/+6XduCINDS0kJfXx/5+flomoZhGDfFa5CTk8OO7TsYGBgYVa+Ejc3twhXvesMwiITDhGTlmm84RVHY8PHHfLZrF4lJibzw/Avk5eWd12yMQd0ORERRGNT5QDxftwZUVUOWJY4fP84bb75JSkoKjz/2GH5/AE3XWLhgAZqmn69poyIIIhCreaOq12d4FhDGjNHaxuZ24KrUi2AohChJ1yxoVE2l6lQVaWmpfP/7f40kibz6y1fp6+ulqamZ559/jqysbH77298SiYT5zne+S1VlFWVln9Pd3cPKlXex8u67Y50VamoQBIG/+su/JC4+ns2bN+NQFDZt2sSevXupr6/nueeeA+CznTuZc8cdrFq16jq9DAaqpt62UZo2Nl82V3QlxTrUhQgGg9f8zz/g57HHH6e9o4OXXn6JlpZWjh45SoI3kYULF/LR+o+Jj4vnwQcepLurh7LPy6itrUUQRF588UX+8NZbdHd1M+AfYFHpItLS0vjOd7/LifITnKs9R3X1aZYsuZOldy7F6YyV/HzttddITknhrbfeoq2tnXAofM3HHQgEx6Qb1MbmVuWqNJpQMIAkXkckrwEOReH/+bu/4x//8Z/49NNtOBwKkyZPoqe7m0gkzKfbP+VEeTkul5NgMLYcyszMJCkpEUkUCYWCaJoKBrz80ku8/vrrrF37Hmnp6YiiSE3NWd59711efuklnIqD3t5ecrKy+d53v4sajRAMXvtxG7qOpmq3RK0aG5tbgauy0YRCYSTx2pdOAB99/LFlDC4snEjZ52WEgiFUVUWSZaKRKNXVp3E4HZw5cxaXy8XuY7s5ePAgJSUzEASRcDjCnj17OHzkELpucM/d99Dc3Iyu67z55u9pamzi3XffY8H8+SxbupStn3xCcXER6ekZGEZMcFwLVtcFW87Y2NwQrkKjMQiHQiiKfF2C5s47l+Dz+UhOTibOE8cLL76ALMkY5DBp0iQURSE3JwdFUVAUhfIT5eTl5lJQWIDX68XvHwBgRkkJOdnZxMfHk5CYwIQJ+WDAgnnzUTUNTVNxudwUFxfTWdqJLMtIkkQ4fPX9gQej2TYaG5sbxmUFja7r5OTkUl5xgpzsbLgOL6+ZU9TZ0UmH0QGCAKbAOv/aiokBsjKzAOj19eLr8Q0eCFEQ8Pl89PT0DBnfxGf4hrw3ZP+rP2BCoSCyItsxNDY2N4jLChpN05g2fRpnz56lobHxyzqmUcXAQFEUZs+Zg8fjsSODbWxuAFdcOgmCwJQpU75SuU4QS8CzhYyNzY3hEkFjdi1wOBwI+iAbxS2wgjBu4EFKkjSqtY1tbExuJe+ngYEu65fcO0MEjVnH9NChQzhl5y0hXAYjYQsGm9sLHf2GPkC/DAzRoK6ujuTEZOu9IYLGMAwkWSI8ECakh245QSPf/PI6NjZfKhraLSdoBFFAFMQhmtglgsbtdrNi6QqcyugWwL4ebrUTYsP5KofaJQ81URKB0Sn3Opa4lZZNJpIssf2z7fT6eq33LlEBDMOIVcKTtKs+yaYL+1qq1g1uA2obXb+aiKLAkaPH6PD1I8mKFfYgyTKnTp6gvbWBP/nen5KQkADGhbCFwdfOxa9NrNfC1d2sX3WBdkPRLr2nR7TWMIVLR0cHUTVKUmLSsK1LFEUZUrHOrBvc2dmJIAgkJyfjcDjsk/0Vw9ANOnv6mX3v0zhdLnRdBUMgFAiwedsOMrxecrNziIykxrRha7pjgWEFjYaGzhW0DCHmAl7zzhp6e3sRRIHcnFy+/sTX0TQNVVVjhaAxqKyqZNz4cTgdTgRRoKenh9+98TvcHjd+v59lS5excMFCSwpquoau6SiKYmlYkiyd/1rBSng0C02b32VWBISY18gcx2YMI4n09fsJtjSTmJKBrChsen8NiDJTps1AM249Y+hXmS86V5e6txGIEkVGvqzKKUkSBw8cpKKygh/984+QZIloNEptQy2HDx1m9erVbNq4iRkzZvCvP/5X5s2fxze+8Q0SExPZuHkj7jg3f/7nf24VjO7o7mDdunX4fD7uu+8+iicV8+Zv30SURO5acRf79+8nFA4x0D/A0888jaqpbPhoA/Hx8Tz8yMNs+HgDXV1dzCiZQUJiAts/3c6kKZNYvHjxLWfU/qogCKDpBk2NLaz73X+wcPmD5OYXc2j/TlY9+T0coXpUI4p2pYeezZjBwEBFvUTgXHcUnoBAc1Mz+fn5KA6FUCiEIAj09/VzsuIkgiBQcaICr9dLcXEx9957Lx6PB1VVaWltYcqUKaiqSiQSQZZl9u3bR2JCIk987Qk2bdxENBKlrKyM+Qvmk5uXy779+5g4cSJxcXGcOnWKfXv3oWoqtbW1nD59mhMnTpCYmMj8BfM5duwYgiAwd+7cW9KY9lVCVVWcCVnMXLSaTz/+I2t+8woZeUWk5EwaE215bG4MIwr3zcjM4Ny5c6iqisvlQtM0q4+TpmmEQiGrl5PL5UIURSRJIi01jVOnTlk9h1VVpdfXS2ZmJvkT8gkEAkSjUTIzMykoKMAwDFJSUpgxYwbx3niCwSDtbe1IosTKu1eSl5eHQ3EwY8YMotEoDzzwAF6vl9+/8XtU1U6OHKsIxDQaX1+I8VMXUzhjMaFIlGkLHqAvoKLrhv2YuE24bmOwpmnMnz+fiooK/uPf/wO3x01hYSHz580nEAjwq//6laXljB8/no0bNvKNb34Dt9vN/avu59e/+jU//elP0XWdu+66i9JFpbz99tscOHCAmbNm4nQ6EUUxZmORYwZkTdMQRRFZllmyZAlr165FFEUy0jMse40oihw7dozu7m48Hg9gexTGLIKArqt0d3UiKy4mlKwge+J8DNlLd1sbSbqGXavj9mBEnSoFUUBTNZoam0CA1NRU4uPj8fl8RKNR4uLicDqdqKqKz+cjNTUVURQRRZFAIEBraysOh4O0tDRcLhddXV0Eg0EyszKRRIlAIGAJi0AggNvtJhqNIggCTqeTzs5OgsEg6enpaJqGw+FAlmUGBgbo7e0lPT3d9maNYQRB4PTpMzQ0tmIIsUVurF60DoZBwYRcCgsL7fCHW4ib0qnS0A0kSSJ/Qn7s7/PFxhMTE2MPIiP2nsPhIDMz07pgdF3H7Y5pQObfuq6TkpqCwIV4nMFlGszXTqfT2ictLc16PTiOJz4+3uraYAuZsUusn/gkpk6ZPOzn2vnrwubWZ8Qx+8PdzIZhDPH0fNE2l7ynG0Os1YM/N18Pfm/wRXjxtraAuTXQNA2738StiflwvxpuSO2HwdGZNjY3EkEQ7Cz6MYQgCPj9fj7//PNruudHJGgEQUAURXw9Pjo7Om9aE3rTrgNjs9G9zfURjUYJBoNEIhEryHMwgiAQDoepqqoaclGbwZk2Xz6SJLFnzx7+85f/SUtLy1XXqRqRoNE0jXfeeYe33nqLd99912ojqygKTqfT6kpp1gN2Op2WcHI4HEO2kWUZh8NhPb3MzxVFobOz0yrfuWP7DnRdt8ZTFOWS7xBFEUEQrGOxGVuIokh3dzf/84f/kzfeeIO9e/dy9uxZKioqrHNonrv+/n7Wf7gel8tlGfvPnTtHOBz+yhVjG21iTRlVzp49iyRJ1NXVXfU5uG4bjSRJHDp0iGPHjvFP//RPKIpCOBImFAqxdetWqqurWbJ4CaWLSvnwww+JRqJ0dHbw9DNP09rSSnl5OR0dHcyfP5958+axa9cuzp45y5I7l1BYWMiaNWtoqG/g4UceZuPGjTQ3NfPyyy8jSjEhsnXrVsqPl1Myo4RVq1axccNG/H4/ra2tPPLoI3g8HjZt3ITT5WTVqsiP7/0AACAASURBVFU4nbdeNvrtTDgcJjk5mW9/+9u4XC6qq6tjAqirmz+++0ccioOMzAwWlS7C1+vjtf9+jeSUZJYuXcorP3nl/2fvvaPjOM98zaeqOqEbGWjkSBBgThCTKFAMCiQtWqI0kkceW7Ysh3u9c+V7do9nZ8+ce/fcGZ+rsfbO2ZlZj5MkJ9nKDGJQIglmUcwJAEkkImeggUboWGH/aFURIEEJJEgRAOvRoYBGV1U3UNVvfd/3/t7fS8H0Ar7zne8QHx9vLhh/ReifnxdeeMG42Y+1/9mtK4MFgabGJvLy8nA4HASDQSRJoqamhsrLlXzrW9/i4MGD9Pf389lnnxHljCI2NpaK8gq6urq4dPESJSUlfHrkU7q7u9mzew9x8XHs3LGTsrIympubeeH7L1BYWEhubi73r7iftPQ0Tp48SXNzM2fOnOG57zxHVWUV7e3tnD5zGkVVyM7J5ujRo7S1tVFTU8MDJQ+YQWYCYrFYaGtrY/N7m2lqaqKzo5P6+noOHTpEXm4es+fM5vy580gWif7+fu5bfB8VFRUEAgEKCgpYs3oNsXGxZpD5itE0jZ07d/Iv/+tfqKysHPP62bjGnsnuZBobG410taZpeHo8xMfHM2PGDBRFYWhoiLi4SGfKhIQEgsEgaFB8XzE5OTloaHR0dOD3+8nKymL9hvW0t7WTkZFBTk4OdrsdSZJwOp1YrVYskgWPx0N0dDRFM4pwuVz09/fjjHKybOkykpOTGRwcZP78+ax4YAWv//F1enp6zAXFCYYsy2RnZ/Pt73ybwsJCVE0FDXp7e3G73UZFvyzL5GTnMHv2bKxWK6oasYmMjo42z+ldwGq1YrFYqKioiMhYxsj4lMFLl1BeXh5RBruiyMvNY+nSpXx27DN+9rOf4U5xk5KSAhrGEGu4B42qqmiaxrRp08jJyeHMmTPMKJrBwkUL+e1vf8tLL73EunXryMvL44NdH1BUVIQoikyfPp3Dhw7zs3/6GaqikpubG6niViJWFBaLhYb6BpqamrDZbMbrmEwcLBYLjY2N/PH3fyQtPS3Sh8siUbKyhE8++QRJkkb4HOnlLaoaOd+79+zmWynfIjo62hzVfIUoisJDDz1EYkIiOTk5hlvClzEuZbAoioRCIRrqG0AEd7Kb+Ph4ent76e7uJiMjA5fLhdfrxeVyEQqFjItHVVXsdjuDg4PExcXh8/lobWklNjaWZHcyvb299PT0kJGRgdPppL2tnbj4OGRZJjY2loGBATo6OkhJSSEuLg6v14vT6TSyF5Ik0dbaRkJCAvEJ8WagmWCoqhrxMQqHsdvsxMTGIAgCfr+fSxcvUV1TTWxMLE/91VN4vV5iYmIYHBwkKirK2DclJcVIJph8tSiKMuqI8o4og/UFoaIZRcZjVVVJSEggMTHReBwXF2dMr0a8KU0jNjbWeK6wqNBQFyclJZGcnGyMRjIyM9A+bzanqioxMTHGcVVVJTY21hjN6OrhaQVXlccmEwtRFElPTzcea1pEZe71evH5fcyYMYN58+ehaZpxnnW1t8ViISsryzyvdxG9tnDM24/3BfVh7XCuvQD0x6O9seGK3+HH+bJjXLv9aMphcxQzsbn2HMuyTFpaGhkZGYaJ2fBp7/Cv5rm9u9zs339CjDuNlrifV1/Dl49CxrqdycRGtxGBiIBPH6GaTC3GHWiGB4mbqX2ASLBQVZVeTy9Wm5Xo6Gja29uxWCzEx8ffsLRBFEU6OjoQBAG3223e3SYpoijS2NDI/v37SU1N5aFHHkISJfN8TkFuOb0tSRJtbW18/4Xv09XVhd1u57133+P3v/s9VqsVh8NhqHJtNptRs6IvIEmShMfj4de/+jXvv/8+r7zyCk1NTZw/d56amhqOHTtGW1uboRLVVcQOhwOHw8HZs2epqKgw05yTGEEQ2LdvH0uWLGFgYIDLly+bi7tTlHGdVVmW6enpoaKigqSkJI4dO8bCRQupqanhwP4DZOdk8+CDD/Lxxx+zYsUKWppbsDvsFBUVIQgCO7bvICUlhW99+1uEQiFsNhvnzp5DVVSjTGH37t34fD66u7opLCykrKyMTU9uwiJFcvl1dXUsW7aMuXPnjjnVZnL3EQSBgYEBPB4PCxYuoK+vj7ordSxcsPBuvzWTO8C4BHvhUJhFxYuorKzkYsXFSCo6yklKSgolJSUc2H8An89HfFw8r736Gp8d+8zwpQkGg7S3tzNv/jyjFYs+V7dYLZw7d46+vj4+++wzJFFCEAWqKqsoLCyM1FpYJCRR4sEHH+T9be8bhlgmkxMNzfR3nsKMK9CoqkpqSioul4v33nuPpcuWEg6HOXLkCM0tzcYIY87cOVRWVRLtiiYhIcFIi7tcLurr6omKisJisYxYBNSnQ06nk0XFi0hNTWXmrJlkZGYYCtGiGUXMnTsXQYxU+ZpMHjRNIyYmhsTERM6dO0dzczP50/LN9Zkpyvgc9ogsAC9YsIBgMEhiYiIN9Q3GFElVVWpra6mpqeEH3/8BJ0+dpKysjDlz5iAIAo88+gjvvPMOqqYyNDTE6tWrjQBzbRpbVdVIn6bPg5EoiMaoJysri5iYmDEXeJlMDDRNY83aNezfv5+0tDRmzpxpdj6YooxLGRwKhfD7/cTHxxuKXF39297ejsvlwmKxIIoibreb/v5+FEUhLi7OmCp1dnbS1taG0+kkOzsbWZYRRZFgMIjT6WRoaIjo6GhCoZDhS6OqKoqi4PV68fv9ZGZmGrVWJpOLa9PbJpObO6IMttvtOBwOo9BNkiRDlVtUFFEL6x9+RVGu8/FVVZWUlBRSU1ONx/r+emtdu91uTLWuJTY21tjPDDKTE0VRzEX8e4DxTZ2GBY1rP+ijXTyjCbFuJM4aTQ16LeYFamIyOfhKLcqGZ4X06twvY6zbmZiY3HkEQSAQCFBWVnZTDodfSaARRRFN0xgYGDCawDU3NxMKhb5wyiOKIi0tLTfMKOkiwC8KROaUauKiX6imJefkQXfW/P3vfo/H4/lqPIPHgiRJVFZW8otf/ILN723mV7/6FeFQmC1bttDX10fp3tKIVYDdbvzTlcU2m40tW7YYFhDDfylJkqirq+Pv/8+/Z3Bw0OhgqRtXW61Ww1YUMI5tjo7uPhaLhX379rFt2zZcLhcfffQR586dMxXeExzdM/j0qdN0dXVRebnyznsGj/WNhUIh/vz6n3n6madZvHgxfr+fqKgoAoEAqqpisUb6dO/csROf34fVEql5amlp4W++9TeEQ2EOHDiAHJbZ8LUNhv2EKIqcOnUKn89HeVk5D656kBMnTmC328nJyaHsQhmLihdhtVoJh8Ps2bOH/v5+1q9fT0xMjFm4dxdRVZXi4mL+4xf/wcHMg7Q0t7B69WrznExw9NnBD3/0Q174/gtGF9qxcEdHNLrZtKIozJ49m1AoZIw49H/Hjh3D7/fz0ccfkZ+fz/nz51E1lf6BfjweD7IskxAf8bfZs2ePkS7v6emhu7ubH/2nH3H06FE0TSM1NZVPPvmEd95+hyhnFLIsc/z4cbq6uti3bx9Lly7F5XKZF/RdRlVVUlNTWblyJb977XesWr2K6Ohoc5o7CdA0jdLSUl599VWuXLkyMaZOmqbhdDkJhUJ0dnbicrmue2OSFKnWzczIZP78+WRkZjB37lzcbndkCmSzUnxfMXPnzqW/v99IdZ8/f56GugY+O/oZtVdqqa+vp6CgAAGBsvIyZs2aZVSUZ2Rk8Pjjj7P5vc20t7ebQ/QJgByWmTN3Dtk52UyfPt3U0EwSrFYrQ0NDHDp0yCiWHgt3dOqkqirx8fGUrCzhrTff4r7F9+H1enn88cfR1KtaGriqp9CFf3rqOhQKceDAAXo9vcyZMwdJkhgcHOTSpUv86D/9iPxp+ezYvoPjx4/T3d1NTm4OhUWF7Nq1i0cffRQ06Ovrw+/3Y7VZ6e/vJzs720yN32X01sd6osBkcqAoCo8+8ijRrmimTZs25tnBuJTBN0NtbS19fX0kJCSQn59Pd3c3CQkJeDwekpKS6Onpwe1209vbS2xsLIODg8TExNDZ2UkwGCQUClFQUIAkSSiKgsfjITk5GUmS8Pl8xoKwy+XCarUafsIej4fY2Fhqa2qJjYslKyvrtv1OJuNDlmU8Hk/EwN5kUhEKhUZtY3RHlMFjRRAEwxpCr13Sq7jT09NRFMX4mpycjKZpxqKvERgEUBXV8JbV99f9hp1OZ+QX/fwXz8rKQlEU0tLSUFWV+Qvmj2o7anL3sFgsxnk3mVzcbK+0ryTQfJGvsP5z/eu13sA3ugiHD9lG85C99rhmweXExAwyk5NJ5xk83P5TkiSzbslkyqAXAeudPa69rvUMqqqqRjGx3l1A92iaKowr0AiCgMViMf4oejZnrHcpvS+ULrBra4v0YRqtgNLEZLKg3zzb29vp7+/HbrOTlp6GzWYzgocoilRUVHDx4kXmzp3LzJkzGRgY4OinR3E6nSy/f/mEVUxHMk0aXBMHBVFAECXC2vUZxFsONKIo0tbWxss/f5n//n//d9LS0ti6dSvePi/fff67WCwRIZ5u0RkOh40/nKIoWCwWzpw5w2dHP8NitfD888+zZfMWnvqrp8jKyhqxv14ZLkoi4VAYRVGwWq1IkkQoFDJ1MRMc/YZ0r6CqKuXl5WRmZFJ0XxFer5eLly6SnZ1NTEwMAD09Pezbt4+SkhL27NlDTk4OpXtLiY2Npbu7m/PnzrNs+TJCodBd/m1GIkkStbW11De1IooW9Oy2KEp4erq5cO4U3/zO31wXJG/57Ouq3+rqai5evEhCQgIH9h9g7ry51NXVcfDAQfLy81i+fDmffPwJy5Yvo621DckiMX36dFRV5fjx48xfMJ+VK1dGskd+H4IgUFVVxb59+8jNzWXdunVUVVVRV1dHe3s7JSUlTJ8+naNHj9LQ0MCqVatIS0sz5/oTFEEQ8Hq91NTUEA6FmepunYIg0O/tp7CokFWrViEIguF/ffr0aebOm4soivj9fgL+AMXFxezauYsrV67Q0NjAj370I5qbmzl18hTLli+727/OdYiiQGtrG4WLN5DoTkXVFFQVRATe/sMvGBgYJCcni/amthH7jes2Ew6HKS4u5tLFS6S4U3C73cREx5CQkMCiRYt49913mT9/Pgjwpz/+CbvDzlNPPWWUEKxdu5bX//Q6Q0NDfP3rXzemUjt27GDdunUcO3aMS5cuUV9fT3VVNfevuJ8tm7fw3ee/y949e5k+fTpbt2zlxZ+8aAaaCYokSVRerqS5udkQeE3lejNRFGlvb2fD+vUMDQ4iy5HrMjMjkyNHjqCqKoIgkJ6ezuw5s3n99ddpaGyIrOGoV+ciijqRr2eRsCpEDOuiY7E7ojh77ACVFy+weOkKRju942uJq0TS03a7nXfffZcHSh6gs72TM2fOoKqqUZ29bNky3vjLG6xbv47U1FSCwSCqqjJnzhz+23/7b/zsn35GXl4eFosFr9eLIissW7aMlpYWmpubkSSJ+Qvms+KBFZSWllJVVcXg4CDpmenk5uYSDAan9MU7mVEUhaIZRaSkpBimZteeq6l07gRBoK6ujpbWVpKT3UYf+N7e3usyqg8++CDd3d20t7WTPy2flLIUqqur6ezsJDc3d4L+XQQQBHp6vHy4+TUysqdx/9onKP1gMwuWP0xyvISqXL+UMb5Ao0UOOG/+PAYGB3C73TQ1NlF5uZKY2BgURYmMRqqr+e53v8v58+epqKhg5syZhEIh9u/fj6ZqJCYnEhsbSygYIikpiZiYGN74yxs0NDbw1FNPUVFRwYXzF/D0eEhLTWPu3LkcOngIn89HUmbSeH4FkzuMqqq43W7ycvMQxIn4wbn9pKWlceTwYRx2OynuFPx+P2fOnsGd4jZGdOFwmN27dzPQP8BjGx8jLjaOtQ+t5aOPPsIZ5eTrj399wq3P6KiqgiJGMW/5Bkq3/o7aynJUVaJw4Rp6qkpH3eeWlcGCIOD3+/F6vaSmphIOh5FlGb/PjyAKNDY2Eh0dTVRUFADZ2dl0dXUZ9p2qqnKl9godHR3k5OaQnZ1Nc0szKe4UhoaGqKysJDk5mblz5/Luu+/S39/PvHnzyM/LJy4+jvb2durq6khNTSUnJ2eCRn8TnamUqv0ydOV6Q309Q0M+rFYr6RnpZGZlYrddHdXpC6a6/YKeDtcfT8S/mdVqZd/+QwSTHiAqJp7LZw9y9JM3WfPED8mbsxRPxU6+9kgxJ46evj3KYE3TiIqKwuVyoSgKNpsNm82Gy+UCwO12AxhzUl31q/8MoLCokKIZRYagLzsrG1VVSUhIYMWKFWiaRjgcZsaMGdjtdgoLCwmHw4biNz093VT7ThLupRuBxWIhKSmJ6OjoiNGbIGKz20Zk3m4kYp0MGVQBjd6+XnyyRHLOAh7662xcsUn0dHpQwyFGW6QZt2ew/se61tt3LP7A1/6hhx9ruHJ4xowZACOc9szgYjKRkSTJMNifSkFWURRyc7PxV19A9UWmgS5RQu1RQVVIy05CFK8PK5NC3DAZoryJyWhMpSADkc9ibm4u+Xl5XKfYA1Q0ZK4fBFwXaHQfXkmSbmv1tomJydQhEmJGjw/De3XpjAg0oijS1d3F1s1bET7/bzJhxSxdMJlaKCioTJ4RvYYGAvR19zG9YLrx8xGBRlVVkpKSWLViFaIw+QyJxK+2e4yJyR1H+/y/yYQkSVyqvEQocDU9P+oaTUZ6Bg6bY9IFmsl2QkxMxsJkm1lIkkRtXS3BwNXkzaiBRlVVFFWZdIHmTqGvW42GJErIimxmwUxMdMZbgqCLidA+73d9zQhCf16vztY/fKIgXle7ISAgSuJX8gGVRAlVuzWfG0EQCAZDtLU2j1RqCpH/efu9pKWmk5OdYyilTUxMRnJ91gmBECEkRt7BRVGkrbONrq4uoqOjSUtLw2a1GcFGkiTqG+vp7OykuLiYg4cPMnv2bBRVoburm8KiwhHHC4VCVFVWMWPmjBE+HV+Gbg70ZfJsfTtZlim/VE5iUiIp7pSbDgYWyUJjcz0tfWFSs6ejaSpoIFksNF6p5rX/79/4h//r78nKzTJHNSb3PBoaMvJ1g5DRp06f/6fPDS0WCwcPHmTfvn3k5OQQDAR5bONj5OXlEQ6HjbYoNbU1nD1zlkX3LeLDjz4kJTUFySLR0NTA9BnTIyMbRYmMEkJBqmqqmDZ9GvYoO5oSWfQShYjjmO62JwhCJDhoV7NiNdU13Lf4Pmw2m9FiVxdG6Y97enuovFzJsmXLqG+sBxFSUlMQEUccV389QYyM1K4LeAIEggHcWbPILJiNqiloqkY4GOTD7VuYVlBEdk5WZMRkrhGZ3OPcaPH6S6dOoijS19fHrp272LRpEw89/BA+nw9VVTl06BAnT5zE4XDw9DNPY5EsI/opC6JAMBhkcGAQURDZu3cvNTU1FBUVsWzpMrx9XgRB4GL5Rfbu3YuGxkMPPURycjJbNm/B6XISDoV57jvPYbNHLAY+PfIp77//Pv9Z+M+IksiJ4ydwp7jZuHEje/bsoa2tjcWLF9Pb28sbf3kDVVXx+/zIskxLSwvbtm2LKDZVje8+/112791NfV09doednNwc1q5de93IRBRFBgb9fLT9XVzRsSxatoaj+z6irbWZlQ99HUU2exKZmHwRX5oPFgSB/v7+SJO3rEyCwSCiKNLb28uunbt4+JGHSUhI4INdH1w3GhAFkV5PL7W1tQiCwPHjx5FEiYULFuIP+Ll8+TIDgwNs3bqVuXPnUryomK1btuLxeKiqqmLhgoU0NjZGrCLEiAgoLz+PgoICCqYXsHPHTlJSUjh39hzV1dUcP3acxMREZs2cRU52Drm5uSxdupSqqio8Hg/BYJDqymoWLVpEfUM95eXlHD16lIceeQhBiPhrjI5GIKzhD2rsePM1Sj/cxpG9u1i8ahOO6CQ0U7lsYvKFfGmgUVWVxMREJEmioqICURSNPkqaphEbG4sr2hXxmBm24Dq8bED3UP3BD36Apmn87ne/MwKWpmiE5TDRMdHExsVGmsfJCklJSUwrmIbD4RixHqObNyuKgs8XqYz9xl9/g6ysLH78v/2YxsZG3nzzTaMD5nD/YVVVSXYnM23aNBx2Bz6fz2hYp7+f0RCAQV+YGcUPM3vJQ+x485fYnPGkFSzE5ze9cExMvowvnTppmobL5eKb3/wmu3btoqamBofdwfoN61n54EreevMtREnkmaefoas7slAMEBcXhyRJ2O32iNdMKMTBgwdRVIX8/Hzj59HR0axbt47S0lJEQeTRdY8SnxBv9GKOiY0xgoXe/8lmt3HhwgXWr1/PyZMn6evri7TJPXceh8NBdnY2qWmpxMbGsmfPHhITE7Hb7VgkCzExMZHfKdpFeno6K1asYN++fXR1dZHsTr5B0NAY8oexDIUpKF5HCDsZubPwh234A+a0ycTkyxizH40kSQQCAQYGBnC5XNjtdkRRZHBwEIvFgsPhMNY2BEEw7Dr1EU4kTRxEURRcLpdRoa17cPh8PgCcTqdRLq+3ohhu/6h7dYTDYVwulzGy0kc+mqYZzeT07YY7uw0/rsVi4dChQ/R6ejl/4TxPPPEEixYtGtEDymKxUF93hUNnmxCj3AgCCIIYWfJSVCyhdjasKSYmJs4s/jS55xl3p0q980BSUtKI6dHwoDF8NDDc1EfHbreP6OOkb6N3m9S/H/7ctdMZva2LrtMZ3qHS4XBc1ydKn2pd+770IJiXl4fD4WDxksWkpaVd12hOlmXSM7L4WnQ0ihxipBpJw2ZPw+mMMYOMickXcNM2Edf12r1JEdyNtr/V43zZ+/mi42qaRk5uDnl5eV9ooCVJIolJyTc8jhlkTEy+mEnhR3MnURV1TNWxZjAxMbnK8JnDWDDLnU1MTG6am+08Mu5AI4qisRZyo/SwXpCof712O0mSzBTxPYhhsmaRbli0erPcruOYjI4oing8Hvbu3Xtz+433RYeGhjh/7jwnjp+gqalp1CBy6NAhhoaGOHTwEKFQiObmZuDqQvGRI0cYGBgYU7DRm5CZTG5EUSQQCFB2oYyTx09SX18/7l7T+rXm8/nMa+QOIYoiH334Ea/89hWqq6vHHNhv+cwKgsDAwACvvPIKV65cobOrk4aGBkMopw+tLBYLnx75FJ/Px+HDhwkEAjQ1NRkXQjAY5NMjnzI0NGR0qhyOLMvG+kg4HOaDXR8wNDRk1DYNnyuqqmr0+NbrnmRZNi+6CYbequfVV1/l0uVL9PT0UFdXhyiKhMNho34OIgv2oVBohMRBb0CoP69/lSTJuNb0ls3mub+9yLJMfHw8j6579LoM7Rdxy4vBkiRx6tQpBgcHefabz6JpGrIiMzgwyDvvvEN3dzezZ83m8SceHzF1UhWV2tpaiouLefONNwkEAnR0dOBwODj66VEulF0gMzOT9evX82//+m8kJyfz6LpHycnJoaamhr+88Rf6+/vx+Xw8+dSTNDY2EggEqK6qxuf34e3zsvahtRQUFLD5vc1oaKxft57MrEyzunqCIEkSZWVldHd389Of/tTQRg0NDbFjxw46OzpZv2E9cljmk92fYJEspGeks2nTJt58803ksMz69esJy2EOHDjAt771Ld566y2efvppw+/6448+prGxkRkzZ7B2zVrCZj3abWP1mtWEw2GcTueYP1PjGqv2enpJTU0FwO/3o2kaFy9eJOAP8A//8A+UlZfR1dU14q6iqAotLS1UVVURCAZ48cUXSUmJNI3bs2cP7mQ3J0+cxOPx4On18Pimx8nMzCQUCpGfn8/8efN55plncDqdnD1zlvKycjIyMmhra+O+++5j49c3UlpayulTp/F4PAT8Ac6ePTvuYbnJbUQAj8dDijvFaHgvKzIWi4UHVz5IfHw8Fysu4g/4cTqc/JcX/wvl5eWRpmwNDeRPyyc9Ix2fz0dHRweCKNDd1Y2qqEYd3qHDh3C73Rw5fAR/0G+ObG4D+t/wz3/+My+++CJlZWV3fuqkaRp5+XlUV1fT398fWa8ZHDKGsIIgGL7DuunV8BSx3+8HIoEnGAoSDocJhUNkZWfxgx/+AIfDQXR0NHGxVxW3qqqiKJHtlyxdwscff4zH4yE/Px9RFImOjkaySDgcDvx+P06nk41f38j9K+6/qWGeyZ1FUyNCybq6Onp6eiKqc3+AS5cu8dbbb0Uar6kRO5HomGgkKXJO7XY7P3nxJ5w+fZrSvaXYbXYEBLx9Xnp7exHEiPVHMBhE0zRmzZ7F89973gwytwlN07BYLMybO4/4+HgKCgrGnOK+5amToigsWLiAhoYGfvGLX2B32Jk9azYPPvgg586d46X/+RJFRUW43W6Sk5ORJAm3240kSSQlJTFnzhxOnTzFb379G6IcUSQmJrJh/QaOHD5CdnY2q9esxu12GyUDEFkIzsvP4+OPP+bJJ59EskgUzSjCbrejqAp79+7F7/PzyCOPkJObw5W6K3z00UcsW7aMxMRE05p0gqA3BVyzdg2//tWvcbqcTJs2jfnz5xMKhejs6sRuszM4OEhlVSW/+uWvmDljJhaLhS2bt+ByucjIzMCd4sZqtfLmm2+SlJSEKIokJiaSkZHBAyseYPcnu5k2bRoPP/wwFumel4zdFmRZZvHixcQnxJOYmDhmfdkt996Gq/2Dh4aGAIwSAIBAIEBUVJRRmqAv3g7v3KdpGrIsY7PZDLOrQCBgLCKPJgrS5/OBQIA//OEP/OAHPyAxMZGf//PPeWzjY0ybNs1YkNYXpc1M1cREkiR8Pp9RPiKKojHytNlsHDp0iLa2Np5++mng6vUiCAJWq9UofdHvtMPLYPQpmb5mY3L7GP75vZZx1zqNhi7b1+uU9A83RILOaJmBa9+gfoHA1Xqq4ccf7TWtViuyLPPss88SFRVFIBDg2W8+S3x8vFE4qeNwTL5uDvcKiqLgcDiAq22Qh9e/LViwqIwbwgAAIABJREFUgNmzZ484p3r/av2xno269lpTFAW73W6e+zvArfxNb8t48kYB4U6hqip2u90YMWmaRlpa2ohA91W8D5Pxc6Pe1KqqGpYjt1r+YZ77icO4UzH60HR4VueryvAMvwD1gGMyuRDFiI/0aNOb0W4cJpOTcY1oZFmmqanJyKlnZmbi9/vp6+sjNTX11oZYwxz0TKY2oijy4Ycf0tzcTFx8HE89+dR1th4mU4NbHnpIkkRzczMvv/wylZWVbH5vM9u2bSMcDlNfX28oc4creK81nhqu7NU0DZvNRllZGZcuXTKe07saAMZ+JlMDVVVZs2YN3/ve92hrbaOxsdFcuJ2ijGtEoygKeXl5PPvss9TX1/PS/3yJgoIC2tva6evrY/v27fj9fp7962cpryjn8uXL9PX2kZ+fT0tLC4WFhax9aC3vvvMuiqqwbt069uzeQ2dnJy+++CLnz5+nubmZRcWLyMrK4s033iQ7J5sNGzZEOhmYd75JT0xMDGUXyrDb7aSnp5sj2SnKuBdTdJPw2NhYEhMT6erqor6+nri4OB595FF8Qz7q6urweDy43W4eXPUgDQ0NPP3M0/T09FBWVkZ7ezsBf4Dz588zZ84c1q9fj9Vm5eDBg8THx7Nv3z68Xi/BUJBNmzaZQWaKIEkS1dXVnDx5ku9+97uGT7TJ1GNcgUa/KGw2G/X19fj8PtLS0kCAw4cOc+jQoYjK8/OmcZmZmdhsNlLTUomKisJqtdLf34/D4WDDhg2UlJQQlsPIimxoc+YvmM9zzz0XsdRMTycqKsq8GKcIqqry2quvEQgEOH36NL29vWapyBRlXGfV6XTS0d7Bv//bv1O6t5QXXniB+Ph4YmNjiYmNoam5CZ/fR0trC3abHavFis1mw+l0IggCTqeTZcuWAfDJ7k+ou1JHUVERFy5cwGq1sqh4EZ988olRU+Fyucw1mimEqqr89bN/zdy5c7HZbGaQmcKMSxkMkYtFliMFcVar1ZhjD1dmXttfaTi6GtTn8xEVFYXFYiEQCGC1WrFYLPT392O322+4v8nkxmq1GgkBWZbN0eok544ogyESKGw2G8CIhTxdVPdl6Fkovd+SLkfXlaL6z02mJuGwad9wLzBhxqrDg8mNvjeZmph1aFOfcQea0Xo5Xfv8aBeS7hc7lmPf6Bi3gulPPLHQp9Z6DZPJ1GRcgUaWZfr7+w0hntfrHfEhFgSBoaEhBgcGr/v54OAgp06dGhGcrDbriO2CwYhPjd/vx++/dfMiQRCw2WxYLBbOnj0b8S4xg81dR1cGv/baa2zevPm6JoQmU4dxKYMbGhr4zW9+g8PhwOPx8Mv/+CVWq9UIHhaLhaamJhoaGrBIFmNkIkkSfX197CvdZ9RJSZLEmdNnjMAFUFpaSm9vLwcOHODgwYPGXe/aLpaG0dbnXsH6V/219KBms9k4ePAgXV1d19VnmXz1qKpKSUkJzz33HI0NjaYyeAozrvGqblBeV1dHa2sriqIQCoXYunUrg4ODrF+33uh/3djYyHvvvUdUVBTJ7mRWr15NV3cXv/3Nb4mPj+fhhx/mN7/+DfPmzeO57zyH1Wqls6OTvLw8Tpw4YQQZq9XK6VOnOXnyJLl5uTzyyCO88sorWK1WAv4A3/nOd+ju7mbr1q04HA7SM9Jxu9388j9+yU//7qdYLVb279/PBx98wNe+9jVmzZplqlHvIgkJCVy6eAmr1UpKSop5LqYo42634unxcPbsWSrKKxAEgcuXL3Pu3DlUReXo0aN0d3XT0dHBwUMHWbN2DSsfXElTYxOiEHnpTU9uoqGhAUEUmDVrFhs3biQhIYHa2lrS09Mjd7jP14MFQYh0QvjgAxISEzh48CAdHR3U1NSwdu1aXC4XV65c4fDhwzz8yMM8UPIADfUNFBYWUlxcTElJCaFQiIKCApYvX86xY8eMjJnJV48kSVy5coVPj37Kc995jtjYWHPxf4oyrkCjKApZ2Vk88cQTPLruUSRLZEpksVhYtXoVa9auQVYijmmhUAhN04y1FlmRSU1JJSUlJeL1+rnNg0ZEc1NRXkFhUaHxc0mSsNlsKIrCkG+ItLQ0XnjhBVwuFwnxCWRnZ2OxWgjLYUKhEKqqRl5LvOoGpk+rCgoKiIqKMu+edxlVVXn1lVeRZZmLFy/S19dnTmenKOOaOkmSZJgTSZKEM8rJwoULOXf2HHv37mXZsmXY7XYsFgsPP/wwe3bvIRwOY7PZkCTJMK5yuVwAzJg5gz179hAbG4uqqSQlJRnPl5aW0lDfwPz581n36DqOHz9OTnYOq1avMsocdAPrhx95mL179hIKhbBarSQkJGCzR6whY2JjIr+4xYLL5TLvoHcRVVV54oknGBgcMPU0U5xxKYN1UZ2+gKdbcerZKJfLhcViQZIkWltbqaqqorq6mvy8fB5d9yihUMiwfhDFSMeEQCBAb28vNdU1rF6z2hjR6E3DrFYrDocDr9cLRMog4KqFhMVioaWlherqaqqrqplWMI1169YxNDSEoigj/IM1TTPvoHcZ/XxomkY4HDYD/yTnjiiDr9XCSJJkBI2EhIQRF43dbsfpdLJq1Sryp+Ujy/J12SO9/slqtZKcnGzsLwiC4S0LkYAWExMZmQx/Df04DocDp9PJ6tWryZ+WTygUMtZihm9vplLvPtd2JjWZmtwxldTwD7SqqiQmJpKcnGw8vtGdSxdvjdYB4UbHH86NXsu8U5qY3D4URbkpN8RxzxuGTz2+SMGr23PeyB92tO1vleGvZQaYiYu+OK/rngDj8e04tqnJuf0IgkB/fz9Hjhy5qRnBuM6oqqr09/cbbyAUCuHz+b5wH1mWOX369Hhe1mQKoKvJm5ubaWpqQlUi628N9Q20tLTcMNiIovil5QqiKNLd3U1VVZW5BnebkSSJ/fv289vf/vamBJbjUga3tbXx3Lefo62tDZvNxuuvv87vXvsdFovFUPvq2+p3qmAwyEcffjTieZN7D0VReOftd/jwgw/58MMPeeuttxBFkQtlF6iuqsZqtY56/XR3d1NTUzNCDX7tdroi/fjx48Zx9O31bcz1uZtHb97o8XjIzMyko6NjzPuO2zPY4XBQVlaGO9nNpYuXWLJ0CVVVVezbt4+kpCSefPJJ9u/fT01NDSUlJWRnZ2O1WmltbeXUyVOs37De6Dpocm8gSRIXLlzg8uXLvPTPL6GqKv/4P/6R8vJy7HY7Z8+dpaKigiVLl7Bo0SLee+89wuEwmzZtYvfu3Xx65FNe/MmLdHV1cbHiIrNmz2L16tXs2LGDixcvsrJkJdHR0VgkCx6Ph/e3vY/dbufrj3+d8vJyzp49y6JFi1iyZIlppHYT6J/Rv/nW3xgZ3LFq0cY1rgyHwyxctJArtVc4ceIEhYWFSKJEVlYWDz/0MCeOn2BgYIBTp07hdrspLCxEEAQ8Hg/btm5j3vx52Gw2M8jcYwiCQHt7O6lpqcY0KC0tjZ7uHgQE0tPTeeYbz7D7k9309fVx5swZiouLSUhIYPr06ZSUlDB3zlzmz5/PouJFHDxwkObmZk6fOs1PfvITHih5gLAcRpREjhw5wsDAAE1NTVy8eJGyC2XYbDbmzZtnXnc3iT4KfOONN/i7n/6d4Xw5Fsa9RhMfF09iUiI7du5g4aKFhMNhdu7cSX1DPRaLBVmW+fGPf0x3Zzc7duxAkiRkWaa3t9fUsdyjaJpGZmYmbW1thmK8tbWVlNSUiGI8NaIYt1gsxMfH87d/+7ds376dS5cuGVMhf8DPn//8Z8KhiNBPlzDEJ8QbNy9VVfF4PDidTjZ+fSN5eXl8+7lv47A7eOvNt8xAc5PoGeGszCx8fh8ZGRlj3ndcUydRFHE4HCxfvpzo6Gji4yMnWVVVozdT5eVK+rx9hORQRPGrqmTnZLNx40a2bdvG888/byiATe4NFEVh9uzZzJ8/n1/98ldomsbMmTOZPXs2V65c4ezZs5SXlTNv/jz8fj/79+8nNiYWm81GRnoGe/fupaysjFAwxOXLlwkGg9hsNpKSkvinf/wnVqxYYVyLixcv5p233+H48eOsWLGCc+fO0dvXS3pa+t3+M0xKFEWhpKSE+IT4m2qPMy5lsKqqRjN1YITnq97dQH9z4XCYhIQEIDLlcjgc+Hw+Qzlscm+h66S6u7vRNA23220kC0KhEOFwmLi4OAD6+vqw2WxGO5bBwUHDQ9rv9xue0vq0PDo6Grvdjqqq2Gw2BgcH8fl8xMfHEwqFCAQCJCQkmAvCt4oAmjp6z/Q7ogzWV/z10cjwaVBiYuL1b2JYexZ9Idkcvt6b6Ofd7XYbj/XAcK2KW7+W9Me6Khwwbmb6cykpKcZjvSzF5XIZdW1Wq9WscRsv2s2r6setDP4ihe+X7WOebJNrr4HRromxbDPW/c1r7u5grsSamJjcccxAY2Jicsf5yqznh1szTCgEAUkUDBe/4UgWi1EzZWJicuuMOdDY7XZkWUaWZWNFX5bl67a7UdW1npG6I201BEYNFF+6myAQCPg5d66MkKx8fqAIoihy9swJpuXn89hjj028AGliMokY06deFEUOHz5Mfn4+GRkZnDh+goTEBPLz843ndb/g5uZmVq9ebdSh6MHlyJEj9Pb2snHjxhFpcL24Tv9e/6rbd+qV2Hqdip6dgEj26vTp0wT8AZYtXzbiPV+7j/6z4QiCgLevDy0qmeL7H0VTZVQ18roNNZWc/9PrLFuyBKvVavqmmJiMgzGt0YiiyK6du2htbSUmJobS0lLKy8uxWCx0dXVRUVFBIBDA6XQSHxcf+QB7vVRWVtLS0sLAwADdXd001DdwpfYK/f39tLS08PN//jkVFRVGwVxrays//+efU1ZWhqqqVFVW0dDQgCiK+Hw+KioqaGxspKuri5d//jJnzpwhJiaG6JiIlWdraystLS3U19cDkb5QVVVVNDc1097ePvovp2lIVhf9g0P0DwwhqyJe7yDb3v4DhTPn4U5xm2JCE5NxMqYRjSAIWG1WTpw4QU9PDz09PURFRdHV1cUf//BHopxRlJeXk5Gewfnz51mwcAF/+P0fSEpOoq21jQULF2C1W7ly5Qqbt2zG6XSycuVKGhoa6OzoZO7cuUBE5NfQ0ECvp5c9e/ZQXVXNwOAAmzZt4rOjn6FpGvctvo+4uDjq6+vp7u6mubkZb5+XgoICXn75ZWbNmkVjQyM//NEPOXPmDPV19cTHx+PxePiv//t/xSKNNOsRBAiGFT47WMqFEwd55nv/BxfPHcPvD7LisadQlS+2vTAxMflyxjSi0T+YsbGxuN1uw+f1woULdHd3k56WzsDgAIFgAEVRaG9vp7unm02bNpGTkxPxglU1pk2bxsaNG+nq6orUSCUmUlxcbEyH0tPTSUxMZMbMGZw8eRJXtIu4uDh6enpISUmho6MDRVZISUkhKSmJxYsXoyqq4TVrkSysX7+e/Px8KisruVRxiXXr17Fg4YJIN4YbLLP4gzJZhUuRFYE3fvv/cHjPdhaWbESyxYC5NmNiMm7GnN6WwzJFRUWUlJQQHR1NMBgkMTGRcDhMaloqD658EE3VCIUiNU2iIFJaWkp1TTVWS8SwXPepkcNyZO0EjcbGRmNtRl9PaW1tJTEhkX5vPyUlJWRlZbFw0UJmzZ7F+9veJxAIIAgCDQ0NxgI1REoi7Da7YTOYmJTI0U+PcvrUaQRu3APc7w8jC1E88LXv4e33EpuchTtvHv1DweHrwyYmJreItG7duv8RFxcX6SgZCtPZ3snMuTOxSlaEYZ+yYCBIXn4eMTEx+P1+MrMymTt3LlHOKC5fuowgCGRlZxETE8OsWbNwRbvo9fTS1dVFwbQCcnNyiYmJIT0jHVESmTVrFtHR0TQ3NTNz1kwg0gLF6XTS2trKhg0b6OzspLm5meTkZOrr6unr7aPkwRKmT5+O0+mksbGRaQXTSExIJCMzg3AoTGFRxIoiOyubwqJCent76fNGek3dv+L+Eb+8IAj4hgapbPKi2N0g2UjNnUN6/nwEycVAdxNZCRpJScnmOo2JyVgRobmxmVAwFFnjVNSxF1XeKL09vF2G3gFBt4pobW3FIll4YtMTpKenGxkkPYtjsVhAwCj1B4xiOX07/Xs9s6WqkamS/pzeGC4cDmO3243jWiwWDuw/wIULF5BlmVWrVzF//vwRKfnIaMbP8RNnGQwqkVGPKAIaqqJit8CS++aRkJBgBhoTkzEw7qLKYDAIXPUG1rlR2nfjxo1GJkrTtBHb6ccarWnY8J/p243GaPsOP244HGb5/ctZuGghNpvN8MYZjqZpOBwO1qx+ABgeSHRhjoCmYQYZE5NxckeVwXonyruFHkj0kdSNuP49atd8NTExGQ93tNZpIqhpJ8J7MDG517krRZVf1P/pqzyGyd1HEASjYaDO8K4FcNX3yLR9nbyM68yJoojT6SQqKmrMNUz6Gs94JP234xgmdx9BEBgcHOTixYt4vV7j5lFbW0tZWRnhcBhRFPF6vZw5cwaPx2MGm0nKLZ81URTp6enhX/7Xv/CLX/zCKCWQJAmbzXbdXUi/Q1mtVs6fP89nRz/DarVitVqNICVJEhaLxbBlBEZsI4oiAgJRUVGcOHGCs2fP4nQ6zYtvEjM4OMibb7xJ2YUyHA4HNTU1HD50mIsVFzl08BCKorB9+3aam5rZtXMXg4OD5kh2EnLLn1BBEOjp6aGjo4OlS5eyY/sOQqEQdXV1fPrpp3g8HlpbW/F6vQC0tLQQCoUQRZH+/n68Xi+KonDq1Cnq6uqQJImmpiZqqms4efKkkSE6f/48x48f58qVK3R0dPCzn/2MC+cvMNA/QHNzM0ePHqWvr8+8+CYhmqaRl5dnlKCIosili5dYtGgRTz/9NJcrL9PZ2Ynf5+f57z2PrMi0trSaN5ZJyLjOmN465fLly2RlZWGz2fD7/HS0d7Bl8xaqq6r56MOP8Hq9vL/tfeMCEUURu8PO8WPHOX/uPJvf20yPp4fXX3+d0tJSjn56lIqKikgjutJ9tLW28cc//BFVUent7Y3077ZIlF0oo6qyil07d5kG55OU4RlBWZEZGByIjFxFgWAgSHd3d8QMW4tomwYHB+/yOza5FcYVaPQ5dk11DTNnzUSSJHx+H7FxsTQ2NnLf4vtobm7m4IGDFBQUGJoaiGhdzl84TzgcxuVyMdA/gN1u52sbv8aChQvo6OigsrKSxUsWs/HrG3G5XCQlJ5GRkcGChQvQVI37V9zPuvXr6O7pvi1/DJOvnuH+RVaLldSUVAaHBvF4PMTFx5GTk4OmafR7+0GAZHfyXX7HJrfCuDtVZmRk8MMf/pAPP/iQiooKdm7fiaqoRq+d3NxcPvzwQ0pWlhiLt4qioGkaKSkpOBwOHnr4IdLT0wmFQkiiZDQVy8nOoexCGXt272FgYMBQBtfU1BCWw4YieDQDLpOJjyiKlJeXc/nyZY4ePUptTS1Lly3l4sWLvP3W26y4P9KfKT8/n3//938nPS2djIwM0/FwEjLmWqdRd5YkEhITmD1nNjHRMTidTjIyM/D7/RTNKMLtdjM4NEhMTAzLli8zhHFWqxW3203xomK6urvo7u7G7XbjdrvJyMjA5XJFqrhnzIisBXl6kGWZ+1fcT1xcHH19feTn55OSkkJ8fDxxcXGkpqaamplJhqZpJCQksGbNGh544AFcLhdRUVHMnTuXhYsWkp6RjqqqFBYWMmfOHGbPmW2uz0wGRql1umVlsH6RLF++nGAgyOIli1FVlaIZRcbCrCzLBINBVjywwthPURRycnIQBAFFUdi4cSMQGR2lpqYSDocjDdotFurr66mqrCIsh1m1ahUACxcuHNGuRVVVFi9ebKa6JynDF/H1EauefdRvTKqqjph2m0w+xlWCoKoqoVDouvqn4axduzZiDTFsejN86Du8nmn41EpRFDIyMvirp//KKJJUFGXUkgYzyEw9bqaXk8lXj96cb8zb38H3AoxuVj7WVLSmaYYmx5yXm9wMpnL8zqEoCh0dHTc1jR23MjgqKmqEuE5vZ3ojNE37wqrs0bY372ZTE4vFgs1mw2q1Gv3bbxd6Bb/J7UWSJOrr63nrrbcIBoNjDubjUgZ7PB5+9ctfMTQ0hNVq5eTJk+zevRtJkrBarYa2RRRFrFYroigSCAR4+623Ix0KLKb25V5FkiQuX77Ma6++xm9+/Rt2bN9hKMD12if9utGvI11drj+nd7mwWCwjrjWHw8G5c+c4fer0l974TMaOPjvZtnUbO7bv4OyZs2PWr93yGo0gCAwMDPCnP/2JxUsWs2jRIrZu2UpKagqLFy+mpqaG1NRUMjMz6e3tpb6unuycbBwOB83NzaiqSktLC6mpqabY7h5DFEU6Ojp4/fXX+cY3vkF8fDyKohAMBmltbcXv95Obm4vf76e6upqMjAxycnJoaWkhLi4OTdPw+XzExsbS1dVFX18fycnJpKWlMTAwQG1tLZcvXybFnWJmqW4j+uziiU1PsGbtGnJycsa8pDGus6DICsXFxVw4f4H2tnY0TSMzI5PBwUG6Ort44y9v4PP5+Mtf/kJDQ4PRa8lqs3Lw4EFOnjxpBpl7EF0/ExcXx9KlS8nNzaWgoIC+vj5e/vnLNDY2Iodl3nrzLVpaW9i+fTter5ctW7bQ0NBAbW0tn3zyCV6vl5deeolLly7xzjvvEA6H2bJlCzXVNbS2tJrX1h1AV3LfzPIHjDPQyIpMQUEBPr+PHTt2sGTJEuSwTCgUIikpic7OTkKhEAUFBTQ3N0cEeZJES3MLhw8dZsOGDeYd5x5F0zTDV8zr9bJjxw4AMjMzeeyxx+jp6SEYDPL9738fd7Kbmpoa4GqzQk3VCIfD5Obk8swzz6CqKq2trXR0dPDsN5+NdMgwnRFvK/pUde/evfzTP/4Tzc3NYw7m4xvRfD5CmT59Og0NDeTm5eLz+9i1axedXZ1IkkR3dzdLly4lPS2d0tJSNE0jPiGeoqIitm7diizLZnbgHkNVVebNm0dPT49RMPvZZ58hSRKqqqIoCgmJCciyzKmTp+jt7SU5ORlnlJO6K3UcP3Ycn9+HpmoICIZVbFRUFJqqce7sOS5duoSimpnK24nuz/3YY4+xceNG5s2bN+ap0y0rg3Vxld1mZ+mypcyeM5vY2Fiio6PJy82jrq6O3NxcoqOjqamuoX+wn1WrVhEbG4sgCKzfsN7ocOByuczM0j2EpmnExMSQlZXFsWPH6OrsYv78+UaL5bz8PBwOBxarJdKKeVo+xcXFJCQmcO7cOdLT0ykqKiItPQ1JksjLyyMcDjN9+nSS3ckcPXqU7JxsigqLSExKNEc2txFN04iNjaWgoMBYL7uO8XRBGA1RFLFYLIZB0fB+2fqQSpZlI1sgyzKKomCz2QiHw8ZX80K4N9E9hoZ3zxje51zPVOojFj2bqSvCZVk2ttevJT0Lpa8lmHVwd4YbCfbG3QVhNHRlMFxV++ovfiMlMFxV8t7sgpLJ1EKWZaPvul56oKqqYYSmKMoILYyuGB+Ofi3pX4c3FDS5c9zs4OC2d0EYTQk8nu1Mpi6CIODxeOjs6ES7puOEKIikpqXeeHhuMqkYV6Cx2WzGtEjTNGRZxu/3jzCWHj5tGo4+zL22qM7hcBjPm3emqc/ly5d5YMUKnE4XV9vbCPT19XL69BmW37/cDDRTgFsONJIkcezYMdrb2gnLYawWK9MLp1NRUcG6R9cRFx+HqqqGfmbatGkjXO23bNnC2rVrcbvdxnA4EAiwc+dONE1jwYIF5ObmGirQ4UM1fU6vr4IPr4XS14j0jJg+HNc0zUilm3VTEwNVVbFarCxfvvy658LhMKfPnLkL78rkTnDL6W1VVUlPTycjM4N9pfsoLCwkJSWFmpoaGhsbqaqsulqn9Hm3x+qqas6fO48sy9TW1iLLMp0dnQQCAURRpK+vj0MHD5Gels7bb7/N0NAQXV1dXLhwgb6+Pjwej2GA5fF4CIfDdHd1c/r0afp6+/D7/ZSVldHY0Bhpd+vzU15eTmdnJ0NDQ/zr//uvVFRUmHfICYKeuez1eIx/np5ePD299PX2medpCnHLgUbTNLKyspg5cyZut5tZs2eRlpbG0NAQnx79lO07thtBp66+jtOnT7Nt2zba29uNtHjdlTp27dpljFYEQcBut+PxeEhISMDhcNDV1UV1VTXvvvsuFy9eZPv72wkGg7z33nt0tHfwyquvUFdXRyAQwOfz0dzUzHvvvUdvby+bN2/m7NmzBINBwuEwdXV1dHd3mxfwBEJVFbx9/Xi9kX/9Xi/9Xi9erxdVMbORU4VxCfZ0cZU+VVEUBYfDweOPP86cOXNoa2sDItml06dO87XHvsaTTz1JVFQUgUCALVu38EDJA8aCnyiK9Hn7OHbsGPPnzzdaqaSlpXGl9goLFy6kvb2dQ4cOkZaWRnNzMzExMbzwwgtk52Qb5llDQ0N4vV6ys7Pp7uomHA6TmJhIdnY2y5YtQ7Ka0vSJgqKoeL1evH2f//N68fZHvtc0jS8xeTSZJIxb/69rHHR0nYwsy5FAJEfWQzIyMqgor6C2ttYwy1qyeAl79+41mofJskxaaho//vGPKS0t5dLFS7z77ruE5TCKqmCxWCiaUcRbb77FypUrSUpOoq+3j/LycrxeL598/Am1V2pxOBx4PB6WLF1CUVERH3zwgREQm5ubwbxRTgyEyPUyNDiE3+fH7wsYX4cGhyLrbGakmRKMyzNYzzaFw2GKiooA8Pv95Ofno2kaiYmJxMTEEB0dzYKFCzhz5gxVVVVML5yOpmqsfWgtfr8fgJSUFEPQt3Tp0oibnqbiTnbT0tpCRkYGqampWC1WhoaGWPvQWuLj4wkEAxw+fBi32012TjbVVdWkpKYQ7Yqmvr6e1tZWVq5cSVpaGqIo0tjYSEFBgVljNQEQBIGm5iY62jro7O6ira2V1vY2OtrbaGhsxGKxkJ2TbU5EReA4AAAgAElEQVR1Jxu3WxkMkYvFZrMZ4rvhCk39AtH9gXVvkFAohNVqNZSg+rRr+LFsNpuRXdKzVYqisGfPHhITE1m8eLGhLh6ePtfFXoYiGQFFjShEdZ8T0xBp4uD3+xnoH7hORyMIAnFxcTgcDjPQTCLuiDIYrnfMG67QvJbRths+7Rp+rBv5AK9cudIoexhtu+Gp62vT2KYuZ+IRHR1NXFzc9U8IgIZ5U5gi3HZl8K2iT8O+SDGs9+4e/vzNKoxNRfLEQRAEent78fR0X3dOw7JMMBgiLy8vUpX9+bUBRKb0wsjjjPb9qK/5+Y7XjqBM7izj9gy22WxGxkifttwKw7NXX7TNcOHel23/Ra8zWZlqHsrnL1Tg1eIJOjII2NMJ2NMJO7PZ9sF+/vznPxtT8OG/t8ZVLxuTycEtBxpdNHf61GmsVmtE71JdjSRJiKJofNU9XnUFL2AU0unbhEIhtm/fTl9fHzt27BixryRJSJKE3W5n9+7dNDY2GqUPHR0d7Nq1y/CMHW7Cc+3rATgcDj7++GPa29uxWq0jlMr6vvp+o5VHDH/P+s+GP766Mcb7Gf4ehvva6pXL+uNrvXBHey2bzcaZM2coLy/HarXe6qmbOGj/f3t3GlzVmd95/HuWu+pe6WoXQgtIgANmx2CBkbHx3mCcdrcnbrfHmXSqeptUJzWVTFVqajJT6XTVpGomafe4nTdTSdrddleMiRPabmMbA17EYrABGYRYJCG0gFaku9+zPfPi6h5JIAO2RbPo+VCU6m7nXG1/PedZfo/ARqVucQNzfm8lNb+3gtqFqzCFl8GhYVatuouCggJ0XXfzhN2vq6a6P0cTf8auesqxf9Lv1pdugqiqSk9PD7/5zW9Yu24tZzvOcvrMaerr6xkaGiIWixGJRNxOXb/Pz2h0lMKiQqLRKMlkklgsRkVFNlPkZOtJGhoaOHXyFADDw8P4/X56e3sJBALU19fT3t5OMBhEURRqampIJpKcPnUaVVXp7OxECEFlZSWKopBOp919vQcHBykqKiKZTNLa2kp5eTmWaVE5uxJd1zl//jyWZVFVVUUikSCTyXDx4kWqqqrcdH7DMEgmk4yMjFBYWJgd8Uqn6ezspCC/gIpZFW5rSziCto42dE0nnB8mHA4zNDREOp2moryCRCZBd3c35eXlFBcXMzQ0RCgvhO1kVyv7/X4SicSkcyWTSdrb22ltbaVyVuVtM2qmKCod7e2cOLKfpavvJZxfyOu//n/MX3wXlVUFcrnIbeIr9dFMvHTSNA2f18fAwAA//vGPabi7gVgsxqq7VtHT08PcuXN5+Vcv85f/7S/Z/u/bWbJkCW1n2tgzsodnn33WbUF4vV52vbcLgWD58uW0nWmjpaWFZ779DF6Pl+ajzZw5c8YdefL6vJztOMtvf/tbVFVl3bp1LFu+jM7OTvbv289dq+/ihf/7An/1P/6Kd999F8u0aPqoCU3TWLpsKQsXLmT79u3ous496+6hu6eb/fv2U1JSQnl5Od986ptuTOSLL77I8uXLGR0Z5fs/+D7btm3DcRyi0SibNm2irq4OVVV5//33OXrkKF6vF8Mw+NYz3+Kv//qv2bx5M5FIhJd/9TKRSISLIxf5zne+wyuvvMLmTZsZGh6ira2NdevW8bOf/Yxly5YRHY3yve9/j62vbsXv99PR0UF1dfV0ff9vLAUsy8FwPLQ0f0rbyRNUzVnAyMgID37je6TPNSGvkW4PX+nPYm6tysQOVtMwKSsr4+lvPU0ylaSsrIyenh462jsoKS1h13u7KC4qpqiwiNmzZ9PR3uEeT9d1zpw5wyeffML9998PZDNk05k0w8PDKKrCPevv4emnn6b1RGt2jZSi0tzczOjoKAAX+i64u1wODQ/RcryF8vJydu/a7SYA3r/xfu7dcC9nz56ltbWV4eHhbDJ/fx+ZdIZVd63i8S2PZyf3jTFNk7lz5vKtb32LdCZNb28v3V3d/PEf/zGLFi7iyJEj6LqOZVl89tlnbNmyhUcefQSBwDKzExG3bNnCQP8AmUyGH/7nHxIOh2lvb8eyLATCnQZgmiZz587l6aefJpVKcf78efr6+3juD59jxcoVt83UfIWxjBklyIYnvstA/wXefv2fWbhqI44ekq2Z28hXKjT5+fkkkgnOnTtHW1tbNufVttzdJQ3DoLCwkHQ6zanTp9iwYQOvv/469fPqeemll3CEg+M47loky7IoLi6mIFJAU1MTO3fu5NjxY+Tl5ZFIJDBNk6HBITo6OigqKsq2GEyDQDBAXl4ejz72KKtWrsKyLEKhEH6fn0OHDrH58c1s27aNRQsXYds2gUDAnRwYDAYJBoI8+OCDNDQ0ZI8XCGTT2ezJ4V3+gN/d/jcQCLiFcWBggJLiErdlF4lEOHr0KAcPHnRnSOdWoIfzwxiGwelTp0kmkuSH8/F6vFw4f4HDn2bXZTm2g9/vHxt9GU+da29vp6O9A0fcHoUGwLIFI7EMeAtZ/cgfsuL+p6lcsJbRmIFtCzkz+DbxlWYGh0NhgoEg7+95n2BekI0bN7oxi/X19cTjcerq6gjlhcjPz2f58uWoikpDQwOJeIILFy5QWlpKaWkpXp+XuXPnoukajz32GM3NzdTX12f7QAoKCAaDFBYWcnH4IqdPnebRRx8lFA5hWzYb7tvAuXPnOHbsGPn5+ZRXlOM4DoFgAK/XS8PaBmzbZtWqVaTTaaprqvF5fei6ztq1a+np6aG5udl9n5HCiLvXUF1dnZu1o6oq1dXVxONx7rjjDvLz83nnnXcIBoLcv/F+t2VXW1PL2c6zXBy+iN/nZ9nyZWSMDPPmzSMvmEcmk2Hnzp3U1tZy1+q7CIfD7G3aS0lJCfX19ZRXlANQVVVFPB5n0aJFBINBdu/aTXl5OfPnz6ekpOSWj0BVVIWuri76B4ZIjvajCpOCggiZ6ADJgQ5KQzZzaqtxbqNRthnhWmYGNx9uZst/2ELAH0C9hgZPbvRDVVQMM7uGSdf1STmuuqajqNkZuT6vj4yRcV+Xm6mr6zqWaaF7dHfGr23b7kiNbdmgjI/QWJaFECI7ec8w8fq8bu6MO0tY09F0DcMwJp03t/NCLqfW5/O5rwXcWAvdo7sTAnOjQBOzjjVNQ1Oz788wDYQQeDwejh87ztGjR4lGo6xvXM/ixYvdlhAwafdEwzDc9wnjC1UnncvIfn1UTXW/FhNbW7cqBYVEMk58dGRsJCj3h02gKCrhgkKCweBtNZx/uxMIHBwOfHSAeCzOoiWLJs8Mzv2SqLrK4PlBKqoq8Pq9V/0mZ+yMO4sz93NiWRaokLbS2YVzjp1dyKhA0kxm7xsrHMBYp6A16WPKTOXe+fixBZC7bBeTz5UyU+PPGauPhjDAnOK8TDjWpa/NUcaPDeDgZH+5L/28xkPhQIGMk6HujjrKZpcRzAtml1TYYzOix46Ve33uvRrCAGvy+SedS51wrtxzbo9BJ4L5eeQVhKZ8zBFO9vOWV0+3DMdxiA5FGb04SkGkAOFkf2AnjTr5A34qKis4dPAQRe1F2b+y8o/Jl6KoyqRN0iRpJhBCEI/GyWQy3LHwDrdDf1KhcRyHOXPmUFBQwNDgEMKQvyWSJF07IQSRokh2Pps63hS9bB5NLt6hpKTkd/oGJUm6PUy1NOhzJ+zJbWolSZouUxaavr4+BvsH5RwGSZK+ECEE/jw/1dXV6B7d7aOcVGhUReXU6VMkYglmzZ6F7tHl0KIkSddOwOjIKJ9+8ikrV610Ex3cQqMoCslkkoG+ATbcv4Hi8mJ8fp8sNJIkXTPHcYhfjHNg/wF6e3qZWzc3m2458Um2nZ3vEimN4NW9KJYy6fJJUbKBQ7mx8RxVVUFhfA3OWEyCO2fl0tcq2claX6aIKep4HIBwvlg2i6IoqJo66X1JkjR9FBTCRWHC+WFiozF35OmyaV+fl+2hKEp2G5OR0UmPqapKW1sbx48dd2fbJhNJ9jbtJZPOuMdKJpPEo3E0TcPIGMTj8S/8SWiaRjwW52TrSU6fOk0ikbjm16qqyvDwMPua9t3yU/cl6WbmJiFOrBPX+mJVVXnppZf4mx//DalUyg0dUlWV48ePc/DgQXeafjweZ8eOHSRTSXdTuPfff5+f/OQnmKbJydaTbNu2zY2GyBUoN/RJuzzMSNd1Tp86zfM/fZ49e/aw892dnDhx4rLAq1zk46XHzIVzvf322ziOc1mwlSRJ18815dGoqsr53vN4dA8+n4+Wlhbuuece3t7xNsdbjpNKpphdNZu+vj62vrqVvFCeu6tBjqZpdHV18cZv3qB+Xj26rtPd3c1bv30LRzjct+E+Dhw8wJNff5Jtr21j1apV2E52zc/SpUsxLZPt27dTWlrKj370Izfa8YMPPuDokaOUlZexZMkS9u7di2EYPPXUUzR91ET/QH82F2fVKspKy0imkrz8q5cB+Paz3/5K8aOSJF2ba2rRqGo286W4uJglS7O/zCMXR9izZw/r1q2jpqYGIQRNTU0Eg0Ea1zdeFgIuhOCxxx7jyNEjfPLJJ6iqyq73dmGaJhcvXuSzzz4jNhrjww8/5NTJUxw+fJiW4y2EQtl1MEbGYHR0lHnz5mHbNsePH6e7u5uB/gGGh4e59957KS8vZ8WKFfT393Pss2N0dXVhWRaNjY288cYbRKNRbMtm+YrltLW10dPTM6k1JEnS9XHVQpNbdXzseHY3yHg8TufZTjrOdmBZlpvdYts2sWiMQCCQ7Ri+pB/Etm1mVc7i0Ucf5b2d72EYBqPRUUzT5JFHHmHNmjXU1dXx1m/fomFdA21tbZy/cJ6amhosy8Lv91NaWsrRo0cRQnBg/wEOHTqEqqnU1NZQXV3N+3ve58jhIwT8AZKpJKqmUlpaSllZGZqq4QiHoqIi6uvr8fl9cisPSfodmbLQKMr4aJOmaXR2dlJbW8v3vv89fvjDH7Jo0SK6u7tZs2YNr//r6/T19ZGfn8896+/h1KlT7Hx3JwX5BW5rQQiB3+9HUzXWrVvHhg0bCPgDPPzwwySTSfbv20/v+V6WLF2Cz+dj+bLlRCIR6uvr8eget9/lyW88iaqq/N3/+TvOnDlDYWEhAX8Av9+PZVl4PB6i0SglpSX0XehDOIKW4y38+te/pqGhgZKSEvLy8hBCkB/Ovz0CviXpJjPlYNKleTRHDh/h8ScfJy+Y5xaKXFznxCHq3BYrmUzG3VFAVVUyRgZVUbMp9cp4HctdRqmqms2ssB10XSeTyZBOpwkEAu6ulaqqTtrHJ0dVVWzb5uLIRXxen1s0BCJ7LgXSqXR2lwRd4x9e+AcqZlWw+fHNbl/MxLS7a03OlyTp2jjCwTRNDu49SCqZYuGShZfn0fj9fnx+H2fPnGXuvLl4A1fJoxnLczHsybtFOsLJ5qtcRe513oAXS1hYhjV+3CvIC+cBkDbTlz+oZY+rCY2HH3s4G2qlOJOfK6fRSNJ14TgOwxeG6e/rp3ZurTu3btKQi+7VmTd/HqdPneZY87FbfkuPXOvp0gmGkiRdH7kMporKCopLit2+Wh2ys/lUVHCguKiY/JX5pFIpFCEvKyRJunaCbLxuXl7e+D5niGyhUcf+KSjggE/34Qv7bugbliTp1iUc4WaOCwR6KpVi74G9RKPRSYlYkiRJ00E4Aj0QCLBw0UKSyaQcgZEkadqN7VaiU1tTSzqdloVGkqRpJ4RAVxTFXZgoC40kSdNNCIEei8V4bdtrRGPRW344W5Kkm4/jONlLp/LSckLBkGzRSJI07dw+muqqalLJ1DUVGkVVsksQuHwDdk3TsG17ysckSZqZhBibR2M6JoZjXLXQCCEYHhgmPz8fr3fy8gTHcTjXfo7Zs2df9pgkSTOXEOLKMREej4ft27fzyaFP3EWJR44cIR7PRnJ6PB73fyaTYcdbO4jH45MWWXq9XrlKWpJmuCvGyymKQjwezy5HGGvt+Hw+PB4P5zrP0XG2g0wmQ2lpKQsWLMC2bUzT5OOPP2bhwoWMjo7S3NyM1+Ol8d5G2QckSTPUNQVfubsOCMHRo0dJpVIMDAxw8OOD+H1+Duw/4OYIHzx4kEQiQX5+vrvlwoIFC+SIliTNYNcc5anruhs+nis8NbU1LF6yGFVV3bS6jo4Ot6isb1xPUVER7777bnaJg2zRSNKMdE3J3C0tLSSSCaqqqiaNJuU2854YatV4byMfffQR1dXVxKIxQqEQg4ODl236LUnSzOEm7E211klRFKLRKMlkEtu2CeWFEAhCoRCWZWGaJsFgkHg8Tl5eHvF4nHA47HYIG4ZBNBqlMFJIuCAsc2EkaQZyh7ev9ISCggIKCgrc24qSnUej6zoBfwBHOEQiEYQjKCwsRDgie1sI8oJ5FBYWApeHlUuSNHPoAB7Vg1f1Xr0PJfeweoX71Evu55L7JUmaUYQQ6IZhcPL0SeKxuMyjkSRp2gln7NLJsi1M25TRnZIkTTvhCPS8vDwaGxvJZDJy+FmSpGnndgYLIdx9jiRJkqaTEAI9k8nQ3NxMIpmQhUaSpGk33hl86iSxaEx2BkuSNO2EI9D9fj+Lfm/RNefRSJIkfRFuH43lWJiOOWWhmbi2aeJygykpgBjf31qSJGm8M3js36VUVeXkqZMcO3YMn8/HvffeSzgcRlEVHNtBCIFlW3g9XizLQlVU4vE4H370IRs3biQQCADZpQyO4+A4DpqmTSpIiqKgairCEXI9lCTdhtydKqeiKAqGYbBn9x6WLFnCnLlz8Hg8jIyM0NPdw6zKWUSjUd58800eevAhjh0/hoLChvs2MHv2bHRdp7+vH8u2SCQSlJWVEQ6H6ezsxLZsPF4PJSUlmKZJV1cXoVCImpoauVRBkm5Dn1toxgKFmVU5i08//ZSKigq0Eo0333yTYCDIoUOHWLpsKfFYnHQmTTweR1VUYrEYTR81ceedd/LBBx8wNDSE3++nqKiIlatW8uabb7J48WIOHz7Mk08+yUcffkQwGGTRnYtkH5Ek3aau2JGiKAqbNm1i5cqV/Nu//Rv79u1jYGCASGGEYF6QvLw8QqEQixcvJhwKU1NbQ0FBAZZlIYRACMGCBQtYs2YNF0cucrL1JLNnz2bN3Wvcy6rZVbMZGBggkUjISydJuk19bqFRFIV0Os3J1pOUl5fj8XrQdR2/z49t2yxevJhQXgjHcejs7CQUCtHT3UM8HseyLABsy8725wgHy7KYNWsWvT29NH3YRDwWx3EcamtqqamtYf++/RjG1QPSJUm69WiPPPLI/ywoKMA0J4865Tpwu7q6uNB3geXLlrNk6RJmV81mdHQUx3aoqq6ioqKCWCzGksVLMEyDSCTCrMpZlJWVEQgGqKioIBKJUFxUTO2cWnxeH4ZpMDgwyKpVqxgcHEQIwerVqykqKpK7J0jSbeiKwVcouLsfAFimhaZpqJo66TaA7djouo5t2Wiahmma6LruXkLpHp3BgUE++OADDMOgurqa1atXZ3dIUMCxHXnpJEm3IXd4W1d0dFWf+rLFBgUlO0Sl6iBAWNlWh6ZoMDZIpKEhLIGKirDHnutkX6ug4BgOJYUlfH3L17MzBT06lm0h7OyxFJTsayRJuq0IIdAdxyEWi5FMTNGime4TIibtqCB3s5Sk25+7qPJw82FGo6NyNq8kSdPOcRz0cDjMQw89RDqdliM+kiRNO7ePJrdJnCw0kiRdD7oQgkQiQSqdQlXkpZMkSdPLEQ56LBbjtW2vyT4aSZKuC8dx0AOBAI3rGmUejSRJ14UQAl1RFHSvjm5NPY9GURS3pfNVJ9SpqurOOL50BrCmadiOzRRpFVc0cbhckqSbj9sZ7AgHW9iXzWtRFIVYNMa5c+fQNI26+jq8Hm82u+ZKv9djeTOXHmtgYICBgQGqqqoIhUJucRBC0NXTRUlJCT6fb7xoXHqcibfH3mrzkWaKi4qprqmWEROSdBMSQlx5UaXjOLz127fo7OwkOhrFyBgYhkEqmQKyLZxceNXE9L10Ko1t225rI/f4jh072Nu0l6ampuzSgzG2bfPqv7zKwMCA2+qxbZtUMuVuw5s778RteTPpDKdOnaJ/oF9e9knSTeyKc/4dxyGZShIIBFixcgUej4cPP/iQC30XqKiowOvxMjw8zNc2fY3du3Zzd8PdnDx5kjOnz+AP+Hn00UcnpewlE0k8Hg81NTXEYjF8Pt/4G9F19zJtZGSEHTt2YBomkcIIDz/8MEePHKW7u5tgXpAHHniAN954A0VRGB4aZsGCBdf3qyRJ0lfyuS0aIQRer5cnnniCWCzGS794idHRUebMnUNJcQmtJ1qpqKigo6OD1tZWIFtMDh48SFl5GQP9A/T19bmLLvft20dpaSmmaWJZFh+8/4HbOsnJFZrmo80AfP3Jr3Pu3DnOnDlDTW0NFbMqaG9vp6WlhcHBQR544IHsim9H9s9I0s3siuPZhmHg9/l58htPkkwmOXToELve2+Wuzi4sKqSsrIyd7+6kuqY626FrZft6HnzoQTf2wTRNTp88zfwF86mrr+PNN96ktKzUXd0N2cunVCpFMpl0b5umiaqqpFNp3t7xdrYPRkA6ncaxHWLxGPFEfMq8Y0mSbh5XzKNJp9Ps2b2H5uZmKisrWbx4MUODQwSDQQBmVc6isKiQ4eFhGtY2EAqFCAQCtLe1MzIyQkVFBaFwCE3TyC/Ip7m5GeEI/H4/c+bOobi42C00He0d9Pb2curkKerq60jEEzR/1kzd3DqWLltK34U+dI+OpmtUV1ejqirt7e0EA0GqqqomHUuSpJvLlfNoyF5C2bY9aTQod8lj29nsGVVVsWwLxCXD1BNGiVRVdUeFdF2/bOsWTdfcS6DcKm/bymbc5Dqcc+fNbeciEKiKOuVwuSRJN4fxtU4oqKhTxzaooKmamxuTez5k78cZ28dp7CpM2Nlf/suGph3cJQ6O5bg5Ne6bsaY+vrDH4iTE+P2qorpZNwJx2bEkSbp5uNutqGP/pvxl/byGwpUaEF/mNdf6fNlwkaRbikCgp1IpmvY3EY1G5d7bkiRNO+GI7Fqne5fcSzKZlKu3JUmado5w0HVdp6qyinRGBl9JkjT93EWVqqa6U/8lSZKmkxAim0ez9bWtRGNRWWgkSZp2Y9tr68yeNZtIfkQWGkmSpp1baCorK68afJWbswJj81sQMpZBkqSrcifsWY6F6ZhXLDRCCLcf52znWQKBwBea9j8x/kGSpJnjink0Obquc+jgIV78+YukUik8Hg/79u7jzJkz+P1+VC1bQHRdx+P1uKu1c7EPmqbh8XgYHR3l/Pnz7uOSJM0cVyw0iqKQTCbp7u7Gsiza2trcvbi7u7p5/V9fp6OtA9M02bN7D1v/ZSvHjx/HcRz27N7DyMgInzV/RmtrK7t37+aXv/wlPT09sthI0gxzxUKjqird3d3ous6au9fQcrwF0zSxnWyyXjg/zM6dO9m3bx+dnZ0sXrKY3bt209vby4kTJ0ilUnR2djIwMEBZaRmzK2dTUlIi+3YkaYa5aoum5XiLe9lz9uxZN26zpraGRYsWkclk6O/vp6S0hLq6OhRFcZcz2LZNOp1G13W8Xi9+v59gMChXWkvSDPO5hUZVVfr7+7Edmz94+g946qmnmD9/PocPH0bXddrOtPHGG2+wYMEC1q1bR29PL1tf3UppaSnz5s0jUhBh13u76O/vRwhBWXkZvb29tLe3y0snSZphrphHY1kWlmXh9/uzQVipNJZtoaoqpmmSTqcpLCzE5/MxMjJCPB6npKQEv99PMpEkkUwQCATQNA2fz8fw8DA+n2/SDgiSJN3e3OHtz+PRPXg8HoQQCCHwB/zuYwoKRLIHcRyHSEGESCTi3g4EAwTzgmR3Zsm+vqSkxD2WJEkzhw7gUT14Ve/nz6O50oRh5ZLHp7p96Uc5AVmSZgwhBLphGLS0thCPx+USBEmSpp0QAl1VVfJCeSiaIvNoJEmado5wssFXjesbyWQyskUjSdK0E0KgCyEwDEMWGkmSrourjjpJ0u/KVH/kcvfJkcpbnyw00g1n2zbxWBTHsZk4JKkoCpbtEAgE3D3cc/dfiWyZ33yuudBomuZu4mbb9qQN4b6M3PEguy/UFz3WVz2/dHPQdZ0TJ07QOxQnECqAsZaLpumc62zjne2v8ed//l+oq6t3v9+qqk76CFduEX3e459Htp6m3zUVGlVVOX/+PB0dHZSWllJZWcn+/fvZuHHjpGbtxKbulWiaRm9vL52dnTiOw/z58ykrK5u04+RUx8rdl0gk+Pjjj6c8v/whubUoisLIyCgL1zxGWWUNtm3hOA5mxuDQ4f9NdU0tC+YvQNW0r/S9lT8XN9ZVx7MVRSGRSPDKK6+QyWQYHR0lnU5z4MAB0um0u2e3oijE43FSqVR2i1zLcrevzX2THcdB13Xa29v5p3/6J5LJJCMjI4yOjgJgmiapVArHcdxj5Y5hWZY712eq8wPE43EMw7iOXy7pelBVlZHRGE173qHt9GmSKYt3frOV8z1drFizHssyZaG4xV3zpVMymSQcDrNu3TouXLjAwMAAL730EqZp8t3vfpeDBw+yf/9+NE1jy5YtfPzxxzzwwANs3bqVhoYGN6Fv9erV7N69mzvuuIPNmzdj2zaKotDU1MRbb73FypUraWhoYMeOHQwMDPDNb36Ts2fPcujQIYQQ3HHHHTQ2Nl52/nfeeYeuri7Wrl3LsmXL5GXVLSaRstn/4W7io0M8uOU59r//Dusfe5qAEpPfy9vAVVs0QghCoRB/9Ed/xNtvv80vfvELFEXB7/fzzDPP4PP56OnpYe/evXznO9+hsbGRnTt3UlhYyOHDh7lw4QIdHR20tbVRVFTktlbKy8uxLIuOjg7OnDlDOp2mvLycJ554glAoRGNjI5qm0dHRQTKZpKamhh/84AccPHiQWCxGMBjkmWeewev1MjQ0xPDwMF6vl7q6OvnX7xYjhCBtKqz/2n/CEUjHa48AAAWWSURBVDr//LP/Tri4ksr5q8hkDGTf7q3vmqYCG4ZBRUUFf/Inf8Lx48eJRqMUFBSQn58PjOcJm6aJbdt4PB7q6urYsWMHGzdupKWlhcHBQaqqqlAUhTlz5nDo0CFs26a1tZWPP/4Yj8dDSUkJmqaxd+9edu7cSTgcdi+NfD4flmW5q8HD4bB7/lQqxbPPPktBQQGvvPLK9ftqSdeFEIJoIoOlBFn5wNOU1S5hUcNmUqaGYVo3+u1J0+Cql06apjE8PMxrr72Gqqps2LCBwsJCKioqcByH0tJSwuEw9913H7/85S/xeDx84xvfoKCggLKyMpYvX05PTw8lJSX4fD5M0+Shhx7i1Vdf5YUXXiCZTNLY2EgwGCQSiWDbNhUVFRw5coRAIMDo6Cher5fPPvuMtrY21q5dSzAYdM9fXl5OIBBwL7UWL178u/i6SdPI6/Vw8fwZ4rFRFBRW3LMZ4ThcaDuGx0yiqjK/6FanPP/886KhoYF0+vO3xFUUBcuyEELg8/lwHAdVVbFtG03T3Nu5DmBVVRFCoGmaOxQOuDsg5J6TSqXc8HIhhNvxmxu6zrVkXn/9dYLBIBs3bnSPkzt27vy5eAqPxyN3WriFKIpCLBbjwvneST8fIpsvQkEkQkXFrBv8LqWv4ppnBueKxsTtUqb6OHFeDGSDsyY+Z+LxbNvG5/NNev7E0ancbcMwaGxsdItP7jmXnh9wi5906xBCkJ+fT2Fh4ZSPO44jv6e3gS80M3i6O1mv5XiO4xAOh6/L+aWbw5eZsCndWm6JJQiywEjSrU0G0EiSdN1NatGoqjpp/YgkSdKXleuLhQmFRlVVRkZGOH/+vOx8kyTpKyssLKSysnJ81Cm7sG2Erq4u5s2bh9frvdHvUZKkW9y5c+doa2ujvr4+W2hUVaW3t5d58+bx0EMP3ej3J0nSbWBwcJAXX3yR+fPnj7dochPkjIwhV0BLqKpKV1cXnec6qa6uprZ2Do5tZ3Op5CCgdBWKomT3dBsbMdYnPmAaJoaRkYVmhlMUlQsXzvN3f//33L3mboxMhuqqKjIZg0wmjcfjQVVVDMPA4/GgjWXFCCGwLBuv14sQcl7MzKaQyaTdGf+TRp0syySTkYVmplM1jXgiwcDAAIvuXMTSpUvp6+vjpz/9KbFYjOeee45QXh6vbt2Kbdv82Z/9Gf/4j/9IPB6nv7+fbz/zDKvuugvLNG/0pyLdQJkJdWS80ChgmCbptCw0EsyqmMVz//E5fvI3P+Hxxx8nFA6hqRp/+7/+FsMwiMfjbP7aZl74+QucO3eOjvYONmzYwJ133smu3btZsWIl6XTmRn8a0g2USWemuHRCwTJNMmOpddIMpkAykWDFiuX86Z/+iBd+/nM2bdqEqiruz8evXv4Vobw8An4/6VQKTVOprq6ip7sn2yoe+y/NXEYm42ZAT7p0Ms3spZMsNDObpuucOnWKf9++Ha/Py30b7mP1Xav56MOP+Iv/+hf8/hO/T3FRMYePHMZybE60tlIQiWBZFpqmkR/OJ5lKkZGFZkbLZDLuuIHy/PPPi/Xr13Po0CG8Hg/Lly+XhUZCAOmxzOZgMOh29qZSKXw+H5qmkclk3FiOXNQHyJB4KSuTybDj7bfZtGlTtkUjhMDn9xMdGcU0ZJGRsqPYwUAQAMceH0EKBsaKjiPwerITO3VNRzjjhUUWGUlRFIaHhvH7/MDYpZPjOFRXVXF0cJDtb/wGGdEqSdJXo6DrGsuWL8e27fEWjcfjYeWqVaTSY2PfN/p9SpJ0S/N4PPj9/vFCA+MB46G8vBv53iRJuk3k4nVhiuAreX0tSdJ0k+EzkiRdd7LQSJJ03clCI0nSdScLjSRJ150sNJIkXXey0EiSdN3JQiNJ0nUnC40kSdedLDSSJF13stBIknTd/X8iev5YESsX/wAAAABJRU5ErkJggg=="></img></div> </p></td></tr></table>
  7500. </p><h3 id='addingai' >Adding the AI</h3><p>What is a pathfinding test without some moving stuff? Not fun at all, so let's add an AI to play around with.<br>
  7501. Create a capsule and add the Character Controller component to it, also place it somewhere visible on the plane.<br>
  7502. Add the Seeker component to the AI, this script is a helper script for calling requesting paths from other scripts, it can also handle path modifiers which can e.g smooth the path or simplify it using raycasts.</p><p>There are 2 alternatives now. You can either write your own movement script or you can use one of the built-in movement scripts. I recommend following the tutorial for writing a custom movement script even if you end up using one of the built-in ones in your game because it makes it easier to understand how the system works under the hood.</p><p>Check out this subpage for the tutorial: <a href='http://arongranberg.com/astar/docs'>Writing a movement script</a></p><p>There are also included movement scripts in the project which you can use if you don't want to write your own script. The included scripts are much more advanced than what you write in the tutorial linked above. The included scripts are called <a href='http://arongranberg.com/astar/docs'>AIPath</a>, <a href='http://arongranberg.com/astar/docs'>RichAI</a> and <a href='http://arongranberg.com/astar/docs'>AILerp</a>, the AIPath script can be used on any graph while RichAI is primarily for navmesh based graphs. While the AIPath and RichAI scripts follow the path loosely, the AILerp script uses interpolation to move along the path very precisely, but perhaps not in the most realistic way. Which one you use depends on your game. The different scripts are used in different example scenes, you can take a look at how they differ there.</p><p>For this tutorial you can attach the <a href='http://arongranberg.com/astar/docs'>AIPath</a> component to the AI. Create a new GameObject named "Target" and position it where you want the AI to move. Then attach the <a href='http://arongranberg.com/astar/docs'>AIDestinationSetter</a> component to the AI. This component is just a very simple helper script which will tell the AIPath script to move to a particular location. You will likely replace this script with your own game specific script in the future. The AIDestinationSetter component has a single field called "target", assign the "Target" GameObject that you created earlier to this field.</p><p>If you press play now the AI should move to the target. How the movement scripts work and how to configure them is explained in more detail in the video tutorial linked above. Take a look at that if something doesn't seem to work.</p><h3 id='smoothing' >Smoothing</h3><p>Now you have learned how to set up a simple grid graph and how to calculate paths Pathfinding, but surely there must be a way to get those paths to look a bit smoother?<br>
  7503. Sure it is. Path smoothing and simplification scripts are called Path Modifiers and are scripts which can be added to the same GameObject as a Seeker.<br>
  7504. The most straight forward one is the Simple Smooth modifier which can be found at Menu bar–&gt;Components–&gt;Pathfinding–&gt;Modifiers–&gt;Simple Smooth. Add that to our AI.<br>
  7505. What this modifier is going to do, is to subdivide the path a number of times until each segment becomes smaller than the Max Segment Length variable. Then it will smooth the path by moving the points closer to each other. The modifier has a number of settings, I won't go through all of them here. See the SimpleSmoothModifier documentation for more info about each variable. For this tutorial you can set Max Segment Length to, say 1. Iterations to 5 and Strength to 0.25. Experiment with it to get good values.</p><p>Now press play again, the path should look much smoother, just as we wanted.<br>
  7506. </p><div class='simplesect simplesect-note' ><h3>Note</h3><p>Smoothers don't usually take world geometry or the graph into account, so be careful with applying too much smoothing since that could cause paths to pass through unwalkable areas.</p></div><p>
  7507. <div class='tinyshadow' ><img src="data:image/png;base64,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"></img></div></p><p>Another good modifier to use is the <a href='http://arongranberg.com/astar/docs'>FunnelModifier</a> which will simplify the path a great deal. This modifier is almost always used when using navmesh/recast graphs.</p><p>Read more about modifiers on the page <a href='http://arongranberg.com/astar/docs'>Using Modifiers</a>.</p><h3 id='logging' >Logging settings</h3><p>Every time a path is calculated by the system it can optionally be logged to the console. This can be a big help in understanding what the system is doing and also to spot performance issues. Logging is not free however, so for release builds it is recommended that you disable it.</p><p>You can change the logging settings under the A* Inspector -&gt; Settings -&gt; Debug tab. <div class='tinyshadow' ><img srcset="images/path_logging@2x.png 2x" src="data:image/png;base64,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"></img></div></p><p>Use less debugging to improve performance (a bit) or just to get rid of the Console spam. Use more debugging (heavy) if you want more information about what the pathfinding scripts are doing. The InGame option will display the latest path log using in-game GUI.</p><h3 id='end' >The End</h3><p>That was the end of the Get Started tutorial part 1. I hope you learned something from it.<br>
  7508. From here on you can explore the rest of the documentation or dig straight in to the project.<br>
  7509. If you want a little better AI, you can use the AIPath script which is included in the project.</p><p>You can continue with the next part of the get started tutorial, where we will use navmesh graphs: <a href='http://arongranberg.com/astar/docs'>Using navmeshes</a></p><p>You can also take a look in the sidebar, there you will find a number of tutorials for how to use the package.</p><p>Good Luck! </p><div class='alert alert-danger' role='alert'>This is an excerpt from the full documentation. You can view the full documentation <a href='http://arongranberg.com/astar/docs'>here</a>. Most links on this page will just take you to the full documentation.</div>
  7510. </article>
  7511. </div>
  7512. <div class="row">
  7513. <div class="col-md-12" style="height: 30px">
  7514. </div>
  7515. </div> </div>
  7516. </div>
  7517. </div>
  7518. <script>/*!
  7519. * jQuery JavaScript Library v2.1.4
  7520. * http://jquery.com/
  7521. *
  7522. * Includes Sizzle.js
  7523. * http://sizzlejs.com/
  7524. *
  7525. * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors
  7526. * Released under the MIT license
  7527. * http://jquery.org/license
  7528. *
  7529. * Date: 2015-04-28T16:01Z
  7530. */
  7531. (function( global, factory ) {
  7532. if ( typeof module === "object" && typeof module.exports === "object" ) {
  7533. // For CommonJS and CommonJS-like environments where a proper `window`
  7534. // is present, execute the factory and get jQuery.
  7535. // For environments that do not have a `window` with a `document`
  7536. // (such as Node.js), expose a factory as module.exports.
  7537. // This accentuates the need for the creation of a real `window`.
  7538. // e.g. var jQuery = require("jquery")(window);
  7539. // See ticket #14549 for more info.
  7540. module.exports = global.document ?
  7541. factory( global, true ) :
  7542. function( w ) {
  7543. if ( !w.document ) {
  7544. throw new Error( "jQuery requires a window with a document" );
  7545. }
  7546. return factory( w );
  7547. };
  7548. } else {
  7549. factory( global );
  7550. }
  7551. // Pass this if window is not defined yet
  7552. }(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
  7553. // Support: Firefox 18+
  7554. // Can't be in strict mode, several libs including ASP.NET trace
  7555. // the stack via arguments.caller.callee and Firefox dies if
  7556. // you try to trace through "use strict" call chains. (#13335)
  7557. //
  7558. var arr = [];
  7559. var slice = arr.slice;
  7560. var concat = arr.concat;
  7561. var push = arr.push;
  7562. var indexOf = arr.indexOf;
  7563. var class2type = {};
  7564. var toString = class2type.toString;
  7565. var hasOwn = class2type.hasOwnProperty;
  7566. var support = {};
  7567. var
  7568. // Use the correct document accordingly with window argument (sandbox)
  7569. document = window.document,
  7570. version = "2.1.4",
  7571. // Define a local copy of jQuery
  7572. jQuery = function( selector, context ) {
  7573. // The jQuery object is actually just the init constructor 'enhanced'
  7574. // Need init if jQuery is called (just allow error to be thrown if not included)
  7575. return new jQuery.fn.init( selector, context );
  7576. },
  7577. // Support: Android<4.1
  7578. // Make sure we trim BOM and NBSP
  7579. rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
  7580. // Matches dashed string for camelizing
  7581. rmsPrefix = /^-ms-/,
  7582. rdashAlpha = /-([\da-z])/gi,
  7583. // Used by jQuery.camelCase as callback to replace()
  7584. fcamelCase = function( all, letter ) {
  7585. return letter.toUpperCase();
  7586. };
  7587. jQuery.fn = jQuery.prototype = {
  7588. // The current version of jQuery being used
  7589. jquery: version,
  7590. constructor: jQuery,
  7591. // Start with an empty selector
  7592. selector: "",
  7593. // The default length of a jQuery object is 0
  7594. length: 0,
  7595. toArray: function() {
  7596. return slice.call( this );
  7597. },
  7598. // Get the Nth element in the matched element set OR
  7599. // Get the whole matched element set as a clean array
  7600. get: function( num ) {
  7601. return num != null ?
  7602. // Return just the one element from the set
  7603. ( num < 0 ? this[ num + this.length ] : this[ num ] ) :
  7604. // Return all the elements in a clean array
  7605. slice.call( this );
  7606. },
  7607. // Take an array of elements and push it onto the stack
  7608. // (returning the new matched element set)
  7609. pushStack: function( elems ) {
  7610. // Build a new jQuery matched element set
  7611. var ret = jQuery.merge( this.constructor(), elems );
  7612. // Add the old object onto the stack (as a reference)
  7613. ret.prevObject = this;
  7614. ret.context = this.context;
  7615. // Return the newly-formed element set
  7616. return ret;
  7617. },
  7618. // Execute a callback for every element in the matched set.
  7619. // (You can seed the arguments with an array of args, but this is
  7620. // only used internally.)
  7621. each: function( callback, args ) {
  7622. return jQuery.each( this, callback, args );
  7623. },
  7624. map: function( callback ) {
  7625. return this.pushStack( jQuery.map(this, function( elem, i ) {
  7626. return callback.call( elem, i, elem );
  7627. }));
  7628. },
  7629. slice: function() {
  7630. return this.pushStack( slice.apply( this, arguments ) );
  7631. },
  7632. first: function() {
  7633. return this.eq( 0 );
  7634. },
  7635. last: function() {
  7636. return this.eq( -1 );
  7637. },
  7638. eq: function( i ) {
  7639. var len = this.length,
  7640. j = +i + ( i < 0 ? len : 0 );
  7641. return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );
  7642. },
  7643. end: function() {
  7644. return this.prevObject || this.constructor(null);
  7645. },
  7646. // For internal use only.
  7647. // Behaves like an Array's method, not like a jQuery method.
  7648. push: push,
  7649. sort: arr.sort,
  7650. splice: arr.splice
  7651. };
  7652. jQuery.extend = jQuery.fn.extend = function() {
  7653. var options, name, src, copy, copyIsArray, clone,
  7654. target = arguments[0] || {},
  7655. i = 1,
  7656. length = arguments.length,
  7657. deep = false;
  7658. // Handle a deep copy situation
  7659. if ( typeof target === "boolean" ) {
  7660. deep = target;
  7661. // Skip the boolean and the target
  7662. target = arguments[ i ] || {};
  7663. i++;
  7664. }
  7665. // Handle case when target is a string or something (possible in deep copy)
  7666. if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
  7667. target = {};
  7668. }
  7669. // Extend jQuery itself if only one argument is passed
  7670. if ( i === length ) {
  7671. target = this;
  7672. i--;
  7673. }
  7674. for ( ; i < length; i++ ) {
  7675. // Only deal with non-null/undefined values
  7676. if ( (options = arguments[ i ]) != null ) {
  7677. // Extend the base object
  7678. for ( name in options ) {
  7679. src = target[ name ];
  7680. copy = options[ name ];
  7681. // Prevent never-ending loop
  7682. if ( target === copy ) {
  7683. continue;
  7684. }
  7685. // Recurse if we're merging plain objects or arrays
  7686. if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
  7687. if ( copyIsArray ) {
  7688. copyIsArray = false;
  7689. clone = src && jQuery.isArray(src) ? src : [];
  7690. } else {
  7691. clone = src && jQuery.isPlainObject(src) ? src : {};
  7692. }
  7693. // Never move original objects, clone them
  7694. target[ name ] = jQuery.extend( deep, clone, copy );
  7695. // Don't bring in undefined values
  7696. } else if ( copy !== undefined ) {
  7697. target[ name ] = copy;
  7698. }
  7699. }
  7700. }
  7701. }
  7702. // Return the modified object
  7703. return target;
  7704. };
  7705. jQuery.extend({
  7706. // Unique for each copy of jQuery on the page
  7707. expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
  7708. // Assume jQuery is ready without the ready module
  7709. isReady: true,
  7710. error: function( msg ) {
  7711. throw new Error( msg );
  7712. },
  7713. noop: function() {},
  7714. isFunction: function( obj ) {
  7715. return jQuery.type(obj) === "function";
  7716. },
  7717. isArray: Array.isArray,
  7718. isWindow: function( obj ) {
  7719. return obj != null && obj === obj.window;
  7720. },
  7721. isNumeric: function( obj ) {
  7722. // parseFloat NaNs numeric-cast false positives (null|true|false|"")
  7723. // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
  7724. // subtraction forces infinities to NaN
  7725. // adding 1 corrects loss of precision from parseFloat (#15100)
  7726. return !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0;
  7727. },
  7728. isPlainObject: function( obj ) {
  7729. // Not plain objects:
  7730. // - Any object or value whose internal [[Class]] property is not "[object Object]"
  7731. // - DOM nodes
  7732. // - window
  7733. if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
  7734. return false;
  7735. }
  7736. if ( obj.constructor &&
  7737. !hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) {
  7738. return false;
  7739. }
  7740. // If the function hasn't returned already, we're confident that
  7741. // |obj| is a plain object, created by {} or constructed with new Object
  7742. return true;
  7743. },
  7744. isEmptyObject: function( obj ) {
  7745. var name;
  7746. for ( name in obj ) {
  7747. return false;
  7748. }
  7749. return true;
  7750. },
  7751. type: function( obj ) {
  7752. if ( obj == null ) {
  7753. return obj + "";
  7754. }
  7755. // Support: Android<4.0, iOS<6 (functionish RegExp)
  7756. return typeof obj === "object" || typeof obj === "function" ?
  7757. class2type[ toString.call(obj) ] || "object" :
  7758. typeof obj;
  7759. },
  7760. // Evaluates a script in a global context
  7761. globalEval: function( code ) {
  7762. var script,
  7763. indirect = eval;
  7764. code = jQuery.trim( code );
  7765. if ( code ) {
  7766. // If the code includes a valid, prologue position
  7767. // strict mode pragma, execute code by injecting a
  7768. // script tag into the document.
  7769. if ( code.indexOf("use strict") === 1 ) {
  7770. script = document.createElement("script");
  7771. script.text = code;
  7772. document.head.appendChild( script ).parentNode.removeChild( script );
  7773. } else {
  7774. // Otherwise, avoid the DOM node creation, insertion
  7775. // and removal by using an indirect global eval
  7776. indirect( code );
  7777. }
  7778. }
  7779. },
  7780. // Convert dashed to camelCase; used by the css and data modules
  7781. // Support: IE9-11+
  7782. // Microsoft forgot to hump their vendor prefix (#9572)
  7783. camelCase: function( string ) {
  7784. return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
  7785. },
  7786. nodeName: function( elem, name ) {
  7787. return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
  7788. },
  7789. // args is for internal usage only
  7790. each: function( obj, callback, args ) {
  7791. var value,
  7792. i = 0,
  7793. length = obj.length,
  7794. isArray = isArraylike( obj );
  7795. if ( args ) {
  7796. if ( isArray ) {
  7797. for ( ; i < length; i++ ) {
  7798. value = callback.apply( obj[ i ], args );
  7799. if ( value === false ) {
  7800. break;
  7801. }
  7802. }
  7803. } else {
  7804. for ( i in obj ) {
  7805. value = callback.apply( obj[ i ], args );
  7806. if ( value === false ) {
  7807. break;
  7808. }
  7809. }
  7810. }
  7811. // A special, fast, case for the most common use of each
  7812. } else {
  7813. if ( isArray ) {
  7814. for ( ; i < length; i++ ) {
  7815. value = callback.call( obj[ i ], i, obj[ i ] );
  7816. if ( value === false ) {
  7817. break;
  7818. }
  7819. }
  7820. } else {
  7821. for ( i in obj ) {
  7822. value = callback.call( obj[ i ], i, obj[ i ] );
  7823. if ( value === false ) {
  7824. break;
  7825. }
  7826. }
  7827. }
  7828. }
  7829. return obj;
  7830. },
  7831. // Support: Android<4.1
  7832. trim: function( text ) {
  7833. return text == null ?
  7834. "" :
  7835. ( text + "" ).replace( rtrim, "" );
  7836. },
  7837. // results is for internal usage only
  7838. makeArray: function( arr, results ) {
  7839. var ret = results || [];
  7840. if ( arr != null ) {
  7841. if ( isArraylike( Object(arr) ) ) {
  7842. jQuery.merge( ret,
  7843. typeof arr === "string" ?
  7844. [ arr ] : arr
  7845. );
  7846. } else {
  7847. push.call( ret, arr );
  7848. }
  7849. }
  7850. return ret;
  7851. },
  7852. inArray: function( elem, arr, i ) {
  7853. return arr == null ? -1 : indexOf.call( arr, elem, i );
  7854. },
  7855. merge: function( first, second ) {
  7856. var len = +second.length,
  7857. j = 0,
  7858. i = first.length;
  7859. for ( ; j < len; j++ ) {
  7860. first[ i++ ] = second[ j ];
  7861. }
  7862. first.length = i;
  7863. return first;
  7864. },
  7865. grep: function( elems, callback, invert ) {
  7866. var callbackInverse,
  7867. matches = [],
  7868. i = 0,
  7869. length = elems.length,
  7870. callbackExpect = !invert;
  7871. // Go through the array, only saving the items
  7872. // that pass the validator function
  7873. for ( ; i < length; i++ ) {
  7874. callbackInverse = !callback( elems[ i ], i );
  7875. if ( callbackInverse !== callbackExpect ) {
  7876. matches.push( elems[ i ] );
  7877. }
  7878. }
  7879. return matches;
  7880. },
  7881. // arg is for internal usage only
  7882. map: function( elems, callback, arg ) {
  7883. var value,
  7884. i = 0,
  7885. length = elems.length,
  7886. isArray = isArraylike( elems ),
  7887. ret = [];
  7888. // Go through the array, translating each of the items to their new values
  7889. if ( isArray ) {
  7890. for ( ; i < length; i++ ) {
  7891. value = callback( elems[ i ], i, arg );
  7892. if ( value != null ) {
  7893. ret.push( value );
  7894. }
  7895. }
  7896. // Go through every key on the object,
  7897. } else {
  7898. for ( i in elems ) {
  7899. value = callback( elems[ i ], i, arg );
  7900. if ( value != null ) {
  7901. ret.push( value );
  7902. }
  7903. }
  7904. }
  7905. // Flatten any nested arrays
  7906. return concat.apply( [], ret );
  7907. },
  7908. // A global GUID counter for objects
  7909. guid: 1,
  7910. // Bind a function to a context, optionally partially applying any
  7911. // arguments.
  7912. proxy: function( fn, context ) {
  7913. var tmp, args, proxy;
  7914. if ( typeof context === "string" ) {
  7915. tmp = fn[ context ];
  7916. context = fn;
  7917. fn = tmp;
  7918. }
  7919. // Quick check to determine if target is callable, in the spec
  7920. // this throws a TypeError, but we will just return undefined.
  7921. if ( !jQuery.isFunction( fn ) ) {
  7922. return undefined;
  7923. }
  7924. // Simulated bind
  7925. args = slice.call( arguments, 2 );
  7926. proxy = function() {
  7927. return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
  7928. };
  7929. // Set the guid of unique handler to the same of original handler, so it can be removed
  7930. proxy.guid = fn.guid = fn.guid || jQuery.guid++;
  7931. return proxy;
  7932. },
  7933. now: Date.now,
  7934. // jQuery.support is not used in Core but other projects attach their
  7935. // properties to it so it needs to exist.
  7936. support: support
  7937. });
  7938. // Populate the class2type map
  7939. jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {
  7940. class2type[ "[object " + name + "]" ] = name.toLowerCase();
  7941. });
  7942. function isArraylike( obj ) {
  7943. // Support: iOS 8.2 (not reproducible in simulator)
  7944. // `in` check used to prevent JIT error (gh-2145)
  7945. // hasOwn isn't used here due to false negatives
  7946. // regarding Nodelist length in IE
  7947. var length = "length" in obj && obj.length,
  7948. type = jQuery.type( obj );
  7949. if ( type === "function" || jQuery.isWindow( obj ) ) {
  7950. return false;
  7951. }
  7952. if ( obj.nodeType === 1 && length ) {
  7953. return true;
  7954. }
  7955. return type === "array" || length === 0 ||
  7956. typeof length === "number" && length > 0 && ( length - 1 ) in obj;
  7957. }
  7958. var Sizzle =
  7959. /*!
  7960. * Sizzle CSS Selector Engine v2.2.0-pre
  7961. * http://sizzlejs.com/
  7962. *
  7963. * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors
  7964. * Released under the MIT license
  7965. * http://jquery.org/license
  7966. *
  7967. * Date: 2014-12-16
  7968. */
  7969. (function( window ) {
  7970. var i,
  7971. support,
  7972. Expr,
  7973. getText,
  7974. isXML,
  7975. tokenize,
  7976. compile,
  7977. select,
  7978. outermostContext,
  7979. sortInput,
  7980. hasDuplicate,
  7981. // Local document vars
  7982. setDocument,
  7983. document,
  7984. docElem,
  7985. documentIsHTML,
  7986. rbuggyQSA,
  7987. rbuggyMatches,
  7988. matches,
  7989. contains,
  7990. // Instance-specific data
  7991. expando = "sizzle" + 1 * new Date(),
  7992. preferredDoc = window.document,
  7993. dirruns = 0,
  7994. done = 0,
  7995. classCache = createCache(),
  7996. tokenCache = createCache(),
  7997. compilerCache = createCache(),
  7998. sortOrder = function( a, b ) {
  7999. if ( a === b ) {
  8000. hasDuplicate = true;
  8001. }
  8002. return 0;
  8003. },
  8004. // General-purpose constants
  8005. MAX_NEGATIVE = 1 << 31,
  8006. // Instance methods
  8007. hasOwn = ({}).hasOwnProperty,
  8008. arr = [],
  8009. pop = arr.pop,
  8010. push_native = arr.push,
  8011. push = arr.push,
  8012. slice = arr.slice,
  8013. // Use a stripped-down indexOf as it's faster than native
  8014. // http://jsperf.com/thor-indexof-vs-for/5
  8015. indexOf = function( list, elem ) {
  8016. var i = 0,
  8017. len = list.length;
  8018. for ( ; i < len; i++ ) {
  8019. if ( list[i] === elem ) {
  8020. return i;
  8021. }
  8022. }
  8023. return -1;
  8024. },
  8025. booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
  8026. // Regular expressions
  8027. // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace
  8028. whitespace = "[\\x20\\t\\r\\n\\f]",
  8029. // http://www.w3.org/TR/css3-syntax/#characters
  8030. characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
  8031. // Loosely modeled on CSS identifier characters
  8032. // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors
  8033. // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
  8034. identifier = characterEncoding.replace( "w", "w#" ),
  8035. // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
  8036. attributes = "\\[" + whitespace + "*(" + characterEncoding + ")(?:" + whitespace +
  8037. // Operator (capture 2)
  8038. "*([*^$|!~]?=)" + whitespace +
  8039. // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
  8040. "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
  8041. "*\\]",
  8042. pseudos = ":(" + characterEncoding + ")(?:\\((" +
  8043. // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
  8044. // 1. quoted (capture 3; capture 4 or capture 5)
  8045. "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
  8046. // 2. simple (capture 6)
  8047. "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
  8048. // 3. anything else (capture 2)
  8049. ".*" +
  8050. ")\\)|)",
  8051. // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
  8052. rwhitespace = new RegExp( whitespace + "+", "g" ),
  8053. rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
  8054. rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
  8055. rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
  8056. rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
  8057. rpseudo = new RegExp( pseudos ),
  8058. ridentifier = new RegExp( "^" + identifier + "$" ),
  8059. matchExpr = {
  8060. "ID": new RegExp( "^#(" + characterEncoding + ")" ),
  8061. "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ),
  8062. "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ),
  8063. "ATTR": new RegExp( "^" + attributes ),
  8064. "PSEUDO": new RegExp( "^" + pseudos ),
  8065. "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
  8066. "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
  8067. "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
  8068. "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
  8069. // For use in libraries implementing .is()
  8070. // We use this for POS matching in `select`
  8071. "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
  8072. whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
  8073. },
  8074. rinputs = /^(?:input|select|textarea|button)$/i,
  8075. rheader = /^h\d$/i,
  8076. rnative = /^[^{]+\{\s*\[native \w/,
  8077. // Easily-parseable/retrievable ID or TAG or CLASS selectors
  8078. rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
  8079. rsibling = /[+~]/,
  8080. rescape = /'|\\/g,
  8081. // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
  8082. runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
  8083. funescape = function( _, escaped, escapedWhitespace ) {
  8084. var high = "0x" + escaped - 0x10000;
  8085. // NaN means non-codepoint
  8086. // Support: Firefox<24
  8087. // Workaround erroneous numeric interpretation of +"0x"
  8088. return high !== high || escapedWhitespace ?
  8089. escaped :
  8090. high < 0 ?
  8091. // BMP codepoint
  8092. String.fromCharCode( high + 0x10000 ) :
  8093. // Supplemental Plane codepoint (surrogate pair)
  8094. String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
  8095. },
  8096. // Used for iframes
  8097. // See setDocument()
  8098. // Removing the function wrapper causes a "Permission Denied"
  8099. // error in IE
  8100. unloadHandler = function() {
  8101. setDocument();
  8102. };
  8103. // Optimize for push.apply( _, NodeList )
  8104. try {
  8105. push.apply(
  8106. (arr = slice.call( preferredDoc.childNodes )),
  8107. preferredDoc.childNodes
  8108. );
  8109. // Support: Android<4.0
  8110. // Detect silently failing push.apply
  8111. arr[ preferredDoc.childNodes.length ].nodeType;
  8112. } catch ( e ) {
  8113. push = { apply: arr.length ?
  8114. // Leverage slice if possible
  8115. function( target, els ) {
  8116. push_native.apply( target, slice.call(els) );
  8117. } :
  8118. // Support: IE<9
  8119. // Otherwise append directly
  8120. function( target, els ) {
  8121. var j = target.length,
  8122. i = 0;
  8123. // Can't trust NodeList.length
  8124. while ( (target[j++] = els[i++]) ) {}
  8125. target.length = j - 1;
  8126. }
  8127. };
  8128. }
  8129. function Sizzle( selector, context, results, seed ) {
  8130. var match, elem, m, nodeType,
  8131. // QSA vars
  8132. i, groups, old, nid, newContext, newSelector;
  8133. if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
  8134. setDocument( context );
  8135. }
  8136. context = context || document;
  8137. results = results || [];
  8138. nodeType = context.nodeType;
  8139. if ( typeof selector !== "string" || !selector ||
  8140. nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
  8141. return results;
  8142. }
  8143. if ( !seed && documentIsHTML ) {
  8144. // Try to shortcut find operations when possible (e.g., not under DocumentFragment)
  8145. if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
  8146. // Speed-up: Sizzle("#ID")
  8147. if ( (m = match[1]) ) {
  8148. if ( nodeType === 9 ) {
  8149. elem = context.getElementById( m );
  8150. // Check parentNode to catch when Blackberry 4.6 returns
  8151. // nodes that are no longer in the document (jQuery #6963)
  8152. if ( elem && elem.parentNode ) {
  8153. // Handle the case where IE, Opera, and Webkit return items
  8154. // by name instead of ID
  8155. if ( elem.id === m ) {
  8156. results.push( elem );
  8157. return results;
  8158. }
  8159. } else {
  8160. return results;
  8161. }
  8162. } else {
  8163. // Context is not a document
  8164. if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&
  8165. contains( context, elem ) && elem.id === m ) {
  8166. results.push( elem );
  8167. return results;
  8168. }
  8169. }
  8170. // Speed-up: Sizzle("TAG")
  8171. } else if ( match[2] ) {
  8172. push.apply( results, context.getElementsByTagName( selector ) );
  8173. return results;
  8174. // Speed-up: Sizzle(".CLASS")
  8175. } else if ( (m = match[3]) && support.getElementsByClassName ) {
  8176. push.apply( results, context.getElementsByClassName( m ) );
  8177. return results;
  8178. }
  8179. }
  8180. // QSA path
  8181. if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
  8182. nid = old = expando;
  8183. newContext = context;
  8184. newSelector = nodeType !== 1 && selector;
  8185. // qSA works strangely on Element-rooted queries
  8186. // We can work around this by specifying an extra ID on the root
  8187. // and working up from there (Thanks to Andrew Dupont for the technique)
  8188. // IE 8 doesn't work on object elements
  8189. if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
  8190. groups = tokenize( selector );
  8191. if ( (old = context.getAttribute("id")) ) {
  8192. nid = old.replace( rescape, "\\$&" );
  8193. } else {
  8194. context.setAttribute( "id", nid );
  8195. }
  8196. nid = "[id='" + nid + "'] ";
  8197. i = groups.length;
  8198. while ( i-- ) {
  8199. groups[i] = nid + toSelector( groups[i] );
  8200. }
  8201. newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;
  8202. newSelector = groups.join(",");
  8203. }
  8204. if ( newSelector ) {
  8205. try {
  8206. push.apply( results,
  8207. newContext.querySelectorAll( newSelector )
  8208. );
  8209. return results;
  8210. } catch(qsaError) {
  8211. } finally {
  8212. if ( !old ) {
  8213. context.removeAttribute("id");
  8214. }
  8215. }
  8216. }
  8217. }
  8218. }
  8219. // All others
  8220. return select( selector.replace( rtrim, "$1" ), context, results, seed );
  8221. }
  8222. /**
  8223. * Create key-value caches of limited size
  8224. * @returns {Function(string, Object)} Returns the Object data after storing it on itself with
  8225. * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
  8226. * deleting the oldest entry
  8227. */
  8228. function createCache() {
  8229. var keys = [];
  8230. function cache( key, value ) {
  8231. // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
  8232. if ( keys.push( key + " " ) > Expr.cacheLength ) {
  8233. // Only keep the most recent entries
  8234. delete cache[ keys.shift() ];
  8235. }
  8236. return (cache[ key + " " ] = value);
  8237. }
  8238. return cache;
  8239. }
  8240. /**
  8241. * Mark a function for special use by Sizzle
  8242. * @param {Function} fn The function to mark
  8243. */
  8244. function markFunction( fn ) {
  8245. fn[ expando ] = true;
  8246. return fn;
  8247. }
  8248. /**
  8249. * Support testing using an element
  8250. * @param {Function} fn Passed the created div and expects a boolean result
  8251. */
  8252. function assert( fn ) {
  8253. var div = document.createElement("div");
  8254. try {
  8255. return !!fn( div );
  8256. } catch (e) {
  8257. return false;
  8258. } finally {
  8259. // Remove from its parent by default
  8260. if ( div.parentNode ) {
  8261. div.parentNode.removeChild( div );
  8262. }
  8263. // release memory in IE
  8264. div = null;
  8265. }
  8266. }
  8267. /**
  8268. * Adds the same handler for all of the specified attrs
  8269. * @param {String} attrs Pipe-separated list of attributes
  8270. * @param {Function} handler The method that will be applied
  8271. */
  8272. function addHandle( attrs, handler ) {
  8273. var arr = attrs.split("|"),
  8274. i = attrs.length;
  8275. while ( i-- ) {
  8276. Expr.attrHandle[ arr[i] ] = handler;
  8277. }
  8278. }
  8279. /**
  8280. * Checks document order of two siblings
  8281. * @param {Element} a
  8282. * @param {Element} b
  8283. * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
  8284. */
  8285. function siblingCheck( a, b ) {
  8286. var cur = b && a,
  8287. diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
  8288. ( ~b.sourceIndex || MAX_NEGATIVE ) -
  8289. ( ~a.sourceIndex || MAX_NEGATIVE );
  8290. // Use IE sourceIndex if available on both nodes
  8291. if ( diff ) {
  8292. return diff;
  8293. }
  8294. // Check if b follows a
  8295. if ( cur ) {
  8296. while ( (cur = cur.nextSibling) ) {
  8297. if ( cur === b ) {
  8298. return -1;
  8299. }
  8300. }
  8301. }
  8302. return a ? 1 : -1;
  8303. }
  8304. /**
  8305. * Returns a function to use in pseudos for input types
  8306. * @param {String} type
  8307. */
  8308. function createInputPseudo( type ) {
  8309. return function( elem ) {
  8310. var name = elem.nodeName.toLowerCase();
  8311. return name === "input" && elem.type === type;
  8312. };
  8313. }
  8314. /**
  8315. * Returns a function to use in pseudos for buttons
  8316. * @param {String} type
  8317. */
  8318. function createButtonPseudo( type ) {
  8319. return function( elem ) {
  8320. var name = elem.nodeName.toLowerCase();
  8321. return (name === "input" || name === "button") && elem.type === type;
  8322. };
  8323. }
  8324. /**
  8325. * Returns a function to use in pseudos for positionals
  8326. * @param {Function} fn
  8327. */
  8328. function createPositionalPseudo( fn ) {
  8329. return markFunction(function( argument ) {
  8330. argument = +argument;
  8331. return markFunction(function( seed, matches ) {
  8332. var j,
  8333. matchIndexes = fn( [], seed.length, argument ),
  8334. i = matchIndexes.length;
  8335. // Match elements found at the specified indexes
  8336. while ( i-- ) {
  8337. if ( seed[ (j = matchIndexes[i]) ] ) {
  8338. seed[j] = !(matches[j] = seed[j]);
  8339. }
  8340. }
  8341. });
  8342. });
  8343. }
  8344. /**
  8345. * Checks a node for validity as a Sizzle context
  8346. * @param {Element|Object=} context
  8347. * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
  8348. */
  8349. function testContext( context ) {
  8350. return context && typeof context.getElementsByTagName !== "undefined" && context;
  8351. }
  8352. // Expose support vars for convenience
  8353. support = Sizzle.support = {};
  8354. /**
  8355. * Detects XML nodes
  8356. * @param {Element|Object} elem An element or a document
  8357. * @returns {Boolean} True iff elem is a non-HTML XML node
  8358. */
  8359. isXML = Sizzle.isXML = function( elem ) {
  8360. // documentElement is verified for cases where it doesn't yet exist
  8361. // (such as loading iframes in IE - #4833)
  8362. var documentElement = elem && (elem.ownerDocument || elem).documentElement;
  8363. return documentElement ? documentElement.nodeName !== "HTML" : false;
  8364. };
  8365. /**
  8366. * Sets document-related variables once based on the current document
  8367. * @param {Element|Object} [doc] An element or document object to use to set the document
  8368. * @returns {Object} Returns the current document
  8369. */
  8370. setDocument = Sizzle.setDocument = function( node ) {
  8371. var hasCompare, parent,
  8372. doc = node ? node.ownerDocument || node : preferredDoc;
  8373. // If no document and documentElement is available, return
  8374. if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
  8375. return document;
  8376. }
  8377. // Set our document
  8378. document = doc;
  8379. docElem = doc.documentElement;
  8380. parent = doc.defaultView;
  8381. // Support: IE>8
  8382. // If iframe document is assigned to "document" variable and if iframe has been reloaded,
  8383. // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936
  8384. // IE6-8 do not support the defaultView property so parent will be undefined
  8385. if ( parent && parent !== parent.top ) {
  8386. // IE11 does not have attachEvent, so all must suffer
  8387. if ( parent.addEventListener ) {
  8388. parent.addEventListener( "unload", unloadHandler, false );
  8389. } else if ( parent.attachEvent ) {
  8390. parent.attachEvent( "onunload", unloadHandler );
  8391. }
  8392. }
  8393. /* Support tests
  8394. ---------------------------------------------------------------------- */
  8395. documentIsHTML = !isXML( doc );
  8396. /* Attributes
  8397. ---------------------------------------------------------------------- */
  8398. // Support: IE<8
  8399. // Verify that getAttribute really returns attributes and not properties
  8400. // (excepting IE8 booleans)
  8401. support.attributes = assert(function( div ) {
  8402. div.className = "i";
  8403. return !div.getAttribute("className");
  8404. });
  8405. /* getElement(s)By*
  8406. ---------------------------------------------------------------------- */
  8407. // Check if getElementsByTagName("*") returns only elements
  8408. support.getElementsByTagName = assert(function( div ) {
  8409. div.appendChild( doc.createComment("") );
  8410. return !div.getElementsByTagName("*").length;
  8411. });
  8412. // Support: IE<9
  8413. support.getElementsByClassName = rnative.test( doc.getElementsByClassName );
  8414. // Support: IE<10
  8415. // Check if getElementById returns elements by name
  8416. // The broken getElementById methods don't pick up programatically-set names,
  8417. // so use a roundabout getElementsByName test
  8418. support.getById = assert(function( div ) {
  8419. docElem.appendChild( div ).id = expando;
  8420. return !doc.getElementsByName || !doc.getElementsByName( expando ).length;
  8421. });
  8422. // ID find and filter
  8423. if ( support.getById ) {
  8424. Expr.find["ID"] = function( id, context ) {
  8425. if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
  8426. var m = context.getElementById( id );
  8427. // Check parentNode to catch when Blackberry 4.6 returns
  8428. // nodes that are no longer in the document #6963
  8429. return m && m.parentNode ? [ m ] : [];
  8430. }
  8431. };
  8432. Expr.filter["ID"] = function( id ) {
  8433. var attrId = id.replace( runescape, funescape );
  8434. return function( elem ) {
  8435. return elem.getAttribute("id") === attrId;
  8436. };
  8437. };
  8438. } else {
  8439. // Support: IE6/7
  8440. // getElementById is not reliable as a find shortcut
  8441. delete Expr.find["ID"];
  8442. Expr.filter["ID"] = function( id ) {
  8443. var attrId = id.replace( runescape, funescape );
  8444. return function( elem ) {
  8445. var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
  8446. return node && node.value === attrId;
  8447. };
  8448. };
  8449. }
  8450. // Tag
  8451. Expr.find["TAG"] = support.getElementsByTagName ?
  8452. function( tag, context ) {
  8453. if ( typeof context.getElementsByTagName !== "undefined" ) {
  8454. return context.getElementsByTagName( tag );
  8455. // DocumentFragment nodes don't have gEBTN
  8456. } else if ( support.qsa ) {
  8457. return context.querySelectorAll( tag );
  8458. }
  8459. } :
  8460. function( tag, context ) {
  8461. var elem,
  8462. tmp = [],
  8463. i = 0,
  8464. // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
  8465. results = context.getElementsByTagName( tag );
  8466. // Filter out possible comments
  8467. if ( tag === "*" ) {
  8468. while ( (elem = results[i++]) ) {
  8469. if ( elem.nodeType === 1 ) {
  8470. tmp.push( elem );
  8471. }
  8472. }
  8473. return tmp;
  8474. }
  8475. return results;
  8476. };
  8477. // Class
  8478. Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
  8479. if ( documentIsHTML ) {
  8480. return context.getElementsByClassName( className );
  8481. }
  8482. };
  8483. /* QSA/matchesSelector
  8484. ---------------------------------------------------------------------- */
  8485. // QSA and matchesSelector support
  8486. // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
  8487. rbuggyMatches = [];
  8488. // qSa(:focus) reports false when true (Chrome 21)
  8489. // We allow this because of a bug in IE8/9 that throws an error
  8490. // whenever `document.activeElement` is accessed on an iframe
  8491. // So, we allow :focus to pass through QSA all the time to avoid the IE error
  8492. // See http://bugs.jquery.com/ticket/13378
  8493. rbuggyQSA = [];
  8494. if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {
  8495. // Build QSA regex
  8496. // Regex strategy adopted from Diego Perini
  8497. assert(function( div ) {
  8498. // Select is set to empty string on purpose
  8499. // This is to test IE's treatment of not explicitly
  8500. // setting a boolean content attribute,
  8501. // since its presence should be enough
  8502. // http://bugs.jquery.com/ticket/12359
  8503. docElem.appendChild( div ).innerHTML = "<a id='" + expando + "'></a>" +
  8504. "<select id='" + expando + "-\f]' msallowcapture=''>" +
  8505. "<option selected=''></option></select>";
  8506. // Support: IE8, Opera 11-12.16
  8507. // Nothing should be selected when empty strings follow ^= or $= or *=
  8508. // The test attribute must be unknown in Opera but "safe" for WinRT
  8509. // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
  8510. if ( div.querySelectorAll("[msallowcapture^='']").length ) {
  8511. rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
  8512. }
  8513. // Support: IE8
  8514. // Boolean attributes and "value" are not treated correctly
  8515. if ( !div.querySelectorAll("[selected]").length ) {
  8516. rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
  8517. }
  8518. // Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+
  8519. if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
  8520. rbuggyQSA.push("~=");
  8521. }
  8522. // Webkit/Opera - :checked should return selected option elements
  8523. // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
  8524. // IE8 throws error here and will not see later tests
  8525. if ( !div.querySelectorAll(":checked").length ) {
  8526. rbuggyQSA.push(":checked");
  8527. }
  8528. // Support: Safari 8+, iOS 8+
  8529. // https://bugs.webkit.org/show_bug.cgi?id=136851
  8530. // In-page `selector#id sibing-combinator selector` fails
  8531. if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) {
  8532. rbuggyQSA.push(".#.+[+~]");
  8533. }
  8534. });
  8535. assert(function( div ) {
  8536. // Support: Windows 8 Native Apps
  8537. // The type and name attributes are restricted during .innerHTML assignment
  8538. var input = doc.createElement("input");
  8539. input.setAttribute( "type", "hidden" );
  8540. div.appendChild( input ).setAttribute( "name", "D" );
  8541. // Support: IE8
  8542. // Enforce case-sensitivity of name attribute
  8543. if ( div.querySelectorAll("[name=d]").length ) {
  8544. rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
  8545. }
  8546. // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
  8547. // IE8 throws error here and will not see later tests
  8548. if ( !div.querySelectorAll(":enabled").length ) {
  8549. rbuggyQSA.push( ":enabled", ":disabled" );
  8550. }
  8551. // Opera 10-11 does not throw on post-comma invalid pseudos
  8552. div.querySelectorAll("*,:x");
  8553. rbuggyQSA.push(",.*:");
  8554. });
  8555. }
  8556. if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
  8557. docElem.webkitMatchesSelector ||
  8558. docElem.mozMatchesSelector ||
  8559. docElem.oMatchesSelector ||
  8560. docElem.msMatchesSelector) )) ) {
  8561. assert(function( div ) {
  8562. // Check to see if it's possible to do matchesSelector
  8563. // on a disconnected node (IE 9)
  8564. support.disconnectedMatch = matches.call( div, "div" );
  8565. // This should fail with an exception
  8566. // Gecko does not error, returns false instead
  8567. matches.call( div, "[s!='']:x" );
  8568. rbuggyMatches.push( "!=", pseudos );
  8569. });
  8570. }
  8571. rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
  8572. rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
  8573. /* Contains
  8574. ---------------------------------------------------------------------- */
  8575. hasCompare = rnative.test( docElem.compareDocumentPosition );
  8576. // Element contains another
  8577. // Purposefully does not implement inclusive descendent
  8578. // As in, an element does not contain itself
  8579. contains = hasCompare || rnative.test( docElem.contains ) ?
  8580. function( a, b ) {
  8581. var adown = a.nodeType === 9 ? a.documentElement : a,
  8582. bup = b && b.parentNode;
  8583. return a === bup || !!( bup && bup.nodeType === 1 && (
  8584. adown.contains ?
  8585. adown.contains( bup ) :
  8586. a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
  8587. ));
  8588. } :
  8589. function( a, b ) {
  8590. if ( b ) {
  8591. while ( (b = b.parentNode) ) {
  8592. if ( b === a ) {
  8593. return true;
  8594. }
  8595. }
  8596. }
  8597. return false;
  8598. };
  8599. /* Sorting
  8600. ---------------------------------------------------------------------- */
  8601. // Document order sorting
  8602. sortOrder = hasCompare ?
  8603. function( a, b ) {
  8604. // Flag for duplicate removal
  8605. if ( a === b ) {
  8606. hasDuplicate = true;
  8607. return 0;
  8608. }
  8609. // Sort on method existence if only one input has compareDocumentPosition
  8610. var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
  8611. if ( compare ) {
  8612. return compare;
  8613. }
  8614. // Calculate position if both inputs belong to the same document
  8615. compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
  8616. a.compareDocumentPosition( b ) :
  8617. // Otherwise we know they are disconnected
  8618. 1;
  8619. // Disconnected nodes
  8620. if ( compare & 1 ||
  8621. (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
  8622. // Choose the first element that is related to our preferred document
  8623. if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
  8624. return -1;
  8625. }
  8626. if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
  8627. return 1;
  8628. }
  8629. // Maintain original order
  8630. return sortInput ?
  8631. ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
  8632. 0;
  8633. }
  8634. return compare & 4 ? -1 : 1;
  8635. } :
  8636. function( a, b ) {
  8637. // Exit early if the nodes are identical
  8638. if ( a === b ) {
  8639. hasDuplicate = true;
  8640. return 0;
  8641. }
  8642. var cur,
  8643. i = 0,
  8644. aup = a.parentNode,
  8645. bup = b.parentNode,
  8646. ap = [ a ],
  8647. bp = [ b ];
  8648. // Parentless nodes are either documents or disconnected
  8649. if ( !aup || !bup ) {
  8650. return a === doc ? -1 :
  8651. b === doc ? 1 :
  8652. aup ? -1 :
  8653. bup ? 1 :
  8654. sortInput ?
  8655. ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
  8656. 0;
  8657. // If the nodes are siblings, we can do a quick check
  8658. } else if ( aup === bup ) {
  8659. return siblingCheck( a, b );
  8660. }
  8661. // Otherwise we need full lists of their ancestors for comparison
  8662. cur = a;
  8663. while ( (cur = cur.parentNode) ) {
  8664. ap.unshift( cur );
  8665. }
  8666. cur = b;
  8667. while ( (cur = cur.parentNode) ) {
  8668. bp.unshift( cur );
  8669. }
  8670. // Walk down the tree looking for a discrepancy
  8671. while ( ap[i] === bp[i] ) {
  8672. i++;
  8673. }
  8674. return i ?
  8675. // Do a sibling check if the nodes have a common ancestor
  8676. siblingCheck( ap[i], bp[i] ) :
  8677. // Otherwise nodes in our document sort first
  8678. ap[i] === preferredDoc ? -1 :
  8679. bp[i] === preferredDoc ? 1 :
  8680. 0;
  8681. };
  8682. return doc;
  8683. };
  8684. Sizzle.matches = function( expr, elements ) {
  8685. return Sizzle( expr, null, null, elements );
  8686. };
  8687. Sizzle.matchesSelector = function( elem, expr ) {
  8688. // Set document vars if needed
  8689. if ( ( elem.ownerDocument || elem ) !== document ) {
  8690. setDocument( elem );
  8691. }
  8692. // Make sure that attribute selectors are quoted
  8693. expr = expr.replace( rattributeQuotes, "='$1']" );
  8694. if ( support.matchesSelector && documentIsHTML &&
  8695. ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
  8696. ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
  8697. try {
  8698. var ret = matches.call( elem, expr );
  8699. // IE 9's matchesSelector returns false on disconnected nodes
  8700. if ( ret || support.disconnectedMatch ||
  8701. // As well, disconnected nodes are said to be in a document
  8702. // fragment in IE 9
  8703. elem.document && elem.document.nodeType !== 11 ) {
  8704. return ret;
  8705. }
  8706. } catch (e) {}
  8707. }
  8708. return Sizzle( expr, document, null, [ elem ] ).length > 0;
  8709. };
  8710. Sizzle.contains = function( context, elem ) {
  8711. // Set document vars if needed
  8712. if ( ( context.ownerDocument || context ) !== document ) {
  8713. setDocument( context );
  8714. }
  8715. return contains( context, elem );
  8716. };
  8717. Sizzle.attr = function( elem, name ) {
  8718. // Set document vars if needed
  8719. if ( ( elem.ownerDocument || elem ) !== document ) {
  8720. setDocument( elem );
  8721. }
  8722. var fn = Expr.attrHandle[ name.toLowerCase() ],
  8723. // Don't get fooled by Object.prototype properties (jQuery #13807)
  8724. val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
  8725. fn( elem, name, !documentIsHTML ) :
  8726. undefined;
  8727. return val !== undefined ?
  8728. val :
  8729. support.attributes || !documentIsHTML ?
  8730. elem.getAttribute( name ) :
  8731. (val = elem.getAttributeNode(name)) && val.specified ?
  8732. val.value :
  8733. null;
  8734. };
  8735. Sizzle.error = function( msg ) {
  8736. throw new Error( "Syntax error, unrecognized expression: " + msg );
  8737. };
  8738. /**
  8739. * Document sorting and removing duplicates
  8740. * @param {ArrayLike} results
  8741. */
  8742. Sizzle.uniqueSort = function( results ) {
  8743. var elem,
  8744. duplicates = [],
  8745. j = 0,
  8746. i = 0;
  8747. // Unless we *know* we can detect duplicates, assume their presence
  8748. hasDuplicate = !support.detectDuplicates;
  8749. sortInput = !support.sortStable && results.slice( 0 );
  8750. results.sort( sortOrder );
  8751. if ( hasDuplicate ) {
  8752. while ( (elem = results[i++]) ) {
  8753. if ( elem === results[ i ] ) {
  8754. j = duplicates.push( i );
  8755. }
  8756. }
  8757. while ( j-- ) {
  8758. results.splice( duplicates[ j ], 1 );
  8759. }
  8760. }
  8761. // Clear input after sorting to release objects
  8762. // See https://github.com/jquery/sizzle/pull/225
  8763. sortInput = null;
  8764. return results;
  8765. };
  8766. /**
  8767. * Utility function for retrieving the text value of an array of DOM nodes
  8768. * @param {Array|Element} elem
  8769. */
  8770. getText = Sizzle.getText = function( elem ) {
  8771. var node,
  8772. ret = "",
  8773. i = 0,
  8774. nodeType = elem.nodeType;
  8775. if ( !nodeType ) {
  8776. // If no nodeType, this is expected to be an array
  8777. while ( (node = elem[i++]) ) {
  8778. // Do not traverse comment nodes
  8779. ret += getText( node );
  8780. }
  8781. } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
  8782. // Use textContent for elements
  8783. // innerText usage removed for consistency of new lines (jQuery #11153)
  8784. if ( typeof elem.textContent === "string" ) {
  8785. return elem.textContent;
  8786. } else {
  8787. // Traverse its children
  8788. for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
  8789. ret += getText( elem );
  8790. }
  8791. }
  8792. } else if ( nodeType === 3 || nodeType === 4 ) {
  8793. return elem.nodeValue;
  8794. }
  8795. // Do not include comment or processing instruction nodes
  8796. return ret;
  8797. };
  8798. Expr = Sizzle.selectors = {
  8799. // Can be adjusted by the user
  8800. cacheLength: 50,
  8801. createPseudo: markFunction,
  8802. match: matchExpr,
  8803. attrHandle: {},
  8804. find: {},
  8805. relative: {
  8806. ">": { dir: "parentNode", first: true },
  8807. " ": { dir: "parentNode" },
  8808. "+": { dir: "previousSibling", first: true },
  8809. "~": { dir: "previousSibling" }
  8810. },
  8811. preFilter: {
  8812. "ATTR": function( match ) {
  8813. match[1] = match[1].replace( runescape, funescape );
  8814. // Move the given value to match[3] whether quoted or unquoted
  8815. match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
  8816. if ( match[2] === "~=" ) {
  8817. match[3] = " " + match[3] + " ";
  8818. }
  8819. return match.slice( 0, 4 );
  8820. },
  8821. "CHILD": function( match ) {
  8822. /* matches from matchExpr["CHILD"]
  8823. 1 type (only|nth|...)
  8824. 2 what (child|of-type)
  8825. 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
  8826. 4 xn-component of xn+y argument ([+-]?\d*n|)
  8827. 5 sign of xn-component
  8828. 6 x of xn-component
  8829. 7 sign of y-component
  8830. 8 y of y-component
  8831. */
  8832. match[1] = match[1].toLowerCase();
  8833. if ( match[1].slice( 0, 3 ) === "nth" ) {
  8834. // nth-* requires argument
  8835. if ( !match[3] ) {
  8836. Sizzle.error( match[0] );
  8837. }
  8838. // numeric x and y parameters for Expr.filter.CHILD
  8839. // remember that false/true cast respectively to 0/1
  8840. match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
  8841. match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
  8842. // other types prohibit arguments
  8843. } else if ( match[3] ) {
  8844. Sizzle.error( match[0] );
  8845. }
  8846. return match;
  8847. },
  8848. "PSEUDO": function( match ) {
  8849. var excess,
  8850. unquoted = !match[6] && match[2];
  8851. if ( matchExpr["CHILD"].test( match[0] ) ) {
  8852. return null;
  8853. }
  8854. // Accept quoted arguments as-is
  8855. if ( match[3] ) {
  8856. match[2] = match[4] || match[5] || "";
  8857. // Strip excess characters from unquoted arguments
  8858. } else if ( unquoted && rpseudo.test( unquoted ) &&
  8859. // Get excess from tokenize (recursively)
  8860. (excess = tokenize( unquoted, true )) &&
  8861. // advance to the next closing parenthesis
  8862. (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
  8863. // excess is a negative index
  8864. match[0] = match[0].slice( 0, excess );
  8865. match[2] = unquoted.slice( 0, excess );
  8866. }
  8867. // Return only captures needed by the pseudo filter method (type and argument)
  8868. return match.slice( 0, 3 );
  8869. }
  8870. },
  8871. filter: {
  8872. "TAG": function( nodeNameSelector ) {
  8873. var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
  8874. return nodeNameSelector === "*" ?
  8875. function() { return true; } :
  8876. function( elem ) {
  8877. return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
  8878. };
  8879. },
  8880. "CLASS": function( className ) {
  8881. var pattern = classCache[ className + " " ];
  8882. return pattern ||
  8883. (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
  8884. classCache( className, function( elem ) {
  8885. return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
  8886. });
  8887. },
  8888. "ATTR": function( name, operator, check ) {
  8889. return function( elem ) {
  8890. var result = Sizzle.attr( elem, name );
  8891. if ( result == null ) {
  8892. return operator === "!=";
  8893. }
  8894. if ( !operator ) {
  8895. return true;
  8896. }
  8897. result += "";
  8898. return operator === "=" ? result === check :
  8899. operator === "!=" ? result !== check :
  8900. operator === "^=" ? check && result.indexOf( check ) === 0 :
  8901. operator === "*=" ? check && result.indexOf( check ) > -1 :
  8902. operator === "$=" ? check && result.slice( -check.length ) === check :
  8903. operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
  8904. operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
  8905. false;
  8906. };
  8907. },
  8908. "CHILD": function( type, what, argument, first, last ) {
  8909. var simple = type.slice( 0, 3 ) !== "nth",
  8910. forward = type.slice( -4 ) !== "last",
  8911. ofType = what === "of-type";
  8912. return first === 1 && last === 0 ?
  8913. // Shortcut for :nth-*(n)
  8914. function( elem ) {
  8915. return !!elem.parentNode;
  8916. } :
  8917. function( elem, context, xml ) {
  8918. var cache, outerCache, node, diff, nodeIndex, start,
  8919. dir = simple !== forward ? "nextSibling" : "previousSibling",
  8920. parent = elem.parentNode,
  8921. name = ofType && elem.nodeName.toLowerCase(),
  8922. useCache = !xml && !ofType;
  8923. if ( parent ) {
  8924. // :(first|last|only)-(child|of-type)
  8925. if ( simple ) {
  8926. while ( dir ) {
  8927. node = elem;
  8928. while ( (node = node[ dir ]) ) {
  8929. if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {
  8930. return false;
  8931. }
  8932. }
  8933. // Reverse direction for :only-* (if we haven't yet done so)
  8934. start = dir = type === "only" && !start && "nextSibling";
  8935. }
  8936. return true;
  8937. }
  8938. start = [ forward ? parent.firstChild : parent.lastChild ];
  8939. // non-xml :nth-child(...) stores cache data on `parent`
  8940. if ( forward && useCache ) {
  8941. // Seek `elem` from a previously-cached index
  8942. outerCache = parent[ expando ] || (parent[ expando ] = {});
  8943. cache = outerCache[ type ] || [];
  8944. nodeIndex = cache[0] === dirruns && cache[1];
  8945. diff = cache[0] === dirruns && cache[2];
  8946. node = nodeIndex && parent.childNodes[ nodeIndex ];
  8947. while ( (node = ++nodeIndex && node && node[ dir ] ||
  8948. // Fallback to seeking `elem` from the start
  8949. (diff = nodeIndex = 0) || start.pop()) ) {
  8950. // When found, cache indexes on `parent` and break
  8951. if ( node.nodeType === 1 && ++diff && node === elem ) {
  8952. outerCache[ type ] = [ dirruns, nodeIndex, diff ];
  8953. break;
  8954. }
  8955. }
  8956. // Use previously-cached element index if available
  8957. } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {
  8958. diff = cache[1];
  8959. // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)
  8960. } else {
  8961. // Use the same loop as above to seek `elem` from the start
  8962. while ( (node = ++nodeIndex && node && node[ dir ] ||
  8963. (diff = nodeIndex = 0) || start.pop()) ) {
  8964. if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {
  8965. // Cache the index of each encountered element
  8966. if ( useCache ) {
  8967. (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];
  8968. }
  8969. if ( node === elem ) {
  8970. break;
  8971. }
  8972. }
  8973. }
  8974. }
  8975. // Incorporate the offset, then check against cycle size
  8976. diff -= last;
  8977. return diff === first || ( diff % first === 0 && diff / first >= 0 );
  8978. }
  8979. };
  8980. },
  8981. "PSEUDO": function( pseudo, argument ) {
  8982. // pseudo-class names are case-insensitive
  8983. // http://www.w3.org/TR/selectors/#pseudo-classes
  8984. // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
  8985. // Remember that setFilters inherits from pseudos
  8986. var args,
  8987. fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
  8988. Sizzle.error( "unsupported pseudo: " + pseudo );
  8989. // The user may use createPseudo to indicate that
  8990. // arguments are needed to create the filter function
  8991. // just as Sizzle does
  8992. if ( fn[ expando ] ) {
  8993. return fn( argument );
  8994. }
  8995. // But maintain support for old signatures
  8996. if ( fn.length > 1 ) {
  8997. args = [ pseudo, pseudo, "", argument ];
  8998. return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
  8999. markFunction(function( seed, matches ) {
  9000. var idx,
  9001. matched = fn( seed, argument ),
  9002. i = matched.length;
  9003. while ( i-- ) {
  9004. idx = indexOf( seed, matched[i] );
  9005. seed[ idx ] = !( matches[ idx ] = matched[i] );
  9006. }
  9007. }) :
  9008. function( elem ) {
  9009. return fn( elem, 0, args );
  9010. };
  9011. }
  9012. return fn;
  9013. }
  9014. },
  9015. pseudos: {
  9016. // Potentially complex pseudos
  9017. "not": markFunction(function( selector ) {
  9018. // Trim the selector passed to compile
  9019. // to avoid treating leading and trailing
  9020. // spaces as combinators
  9021. var input = [],
  9022. results = [],
  9023. matcher = compile( selector.replace( rtrim, "$1" ) );
  9024. return matcher[ expando ] ?
  9025. markFunction(function( seed, matches, context, xml ) {
  9026. var elem,
  9027. unmatched = matcher( seed, null, xml, [] ),
  9028. i = seed.length;
  9029. // Match elements unmatched by `matcher`
  9030. while ( i-- ) {
  9031. if ( (elem = unmatched[i]) ) {
  9032. seed[i] = !(matches[i] = elem);
  9033. }
  9034. }
  9035. }) :
  9036. function( elem, context, xml ) {
  9037. input[0] = elem;
  9038. matcher( input, null, xml, results );
  9039. // Don't keep the element (issue #299)
  9040. input[0] = null;
  9041. return !results.pop();
  9042. };
  9043. }),
  9044. "has": markFunction(function( selector ) {
  9045. return function( elem ) {
  9046. return Sizzle( selector, elem ).length > 0;
  9047. };
  9048. }),
  9049. "contains": markFunction(function( text ) {
  9050. text = text.replace( runescape, funescape );
  9051. return function( elem ) {
  9052. return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
  9053. };
  9054. }),
  9055. // "Whether an element is represented by a :lang() selector
  9056. // is based solely on the element's language value
  9057. // being equal to the identifier C,
  9058. // or beginning with the identifier C immediately followed by "-".
  9059. // The matching of C against the element's language value is performed case-insensitively.
  9060. // The identifier C does not have to be a valid language name."
  9061. // http://www.w3.org/TR/selectors/#lang-pseudo
  9062. "lang": markFunction( function( lang ) {
  9063. // lang value must be a valid identifier
  9064. if ( !ridentifier.test(lang || "") ) {
  9065. Sizzle.error( "unsupported lang: " + lang );
  9066. }
  9067. lang = lang.replace( runescape, funescape ).toLowerCase();
  9068. return function( elem ) {
  9069. var elemLang;
  9070. do {
  9071. if ( (elemLang = documentIsHTML ?
  9072. elem.lang :
  9073. elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
  9074. elemLang = elemLang.toLowerCase();
  9075. return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
  9076. }
  9077. } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
  9078. return false;
  9079. };
  9080. }),
  9081. // Miscellaneous
  9082. "target": function( elem ) {
  9083. var hash = window.location && window.location.hash;
  9084. return hash && hash.slice( 1 ) === elem.id;
  9085. },
  9086. "root": function( elem ) {
  9087. return elem === docElem;
  9088. },
  9089. "focus": function( elem ) {
  9090. return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
  9091. },
  9092. // Boolean properties
  9093. "enabled": function( elem ) {
  9094. return elem.disabled === false;
  9095. },
  9096. "disabled": function( elem ) {
  9097. return elem.disabled === true;
  9098. },
  9099. "checked": function( elem ) {
  9100. // In CSS3, :checked should return both checked and selected elements
  9101. // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
  9102. var nodeName = elem.nodeName.toLowerCase();
  9103. return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
  9104. },
  9105. "selected": function( elem ) {
  9106. // Accessing this property makes selected-by-default
  9107. // options in Safari work properly
  9108. if ( elem.parentNode ) {
  9109. elem.parentNode.selectedIndex;
  9110. }
  9111. return elem.selected === true;
  9112. },
  9113. // Contents
  9114. "empty": function( elem ) {
  9115. // http://www.w3.org/TR/selectors/#empty-pseudo
  9116. // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
  9117. // but not by others (comment: 8; processing instruction: 7; etc.)
  9118. // nodeType < 6 works because attributes (2) do not appear as children
  9119. for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
  9120. if ( elem.nodeType < 6 ) {
  9121. return false;
  9122. }
  9123. }
  9124. return true;
  9125. },
  9126. "parent": function( elem ) {
  9127. return !Expr.pseudos["empty"]( elem );
  9128. },
  9129. // Element/input types
  9130. "header": function( elem ) {
  9131. return rheader.test( elem.nodeName );
  9132. },
  9133. "input": function( elem ) {
  9134. return rinputs.test( elem.nodeName );
  9135. },
  9136. "button": function( elem ) {
  9137. var name = elem.nodeName.toLowerCase();
  9138. return name === "input" && elem.type === "button" || name === "button";
  9139. },
  9140. "text": function( elem ) {
  9141. var attr;
  9142. return elem.nodeName.toLowerCase() === "input" &&
  9143. elem.type === "text" &&
  9144. // Support: IE<8
  9145. // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
  9146. ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
  9147. },
  9148. // Position-in-collection
  9149. "first": createPositionalPseudo(function() {
  9150. return [ 0 ];
  9151. }),
  9152. "last": createPositionalPseudo(function( matchIndexes, length ) {
  9153. return [ length - 1 ];
  9154. }),
  9155. "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
  9156. return [ argument < 0 ? argument + length : argument ];
  9157. }),
  9158. "even": createPositionalPseudo(function( matchIndexes, length ) {
  9159. var i = 0;
  9160. for ( ; i < length; i += 2 ) {
  9161. matchIndexes.push( i );
  9162. }
  9163. return matchIndexes;
  9164. }),
  9165. "odd": createPositionalPseudo(function( matchIndexes, length ) {
  9166. var i = 1;
  9167. for ( ; i < length; i += 2 ) {
  9168. matchIndexes.push( i );
  9169. }
  9170. return matchIndexes;
  9171. }),
  9172. "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
  9173. var i = argument < 0 ? argument + length : argument;
  9174. for ( ; --i >= 0; ) {
  9175. matchIndexes.push( i );
  9176. }
  9177. return matchIndexes;
  9178. }),
  9179. "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
  9180. var i = argument < 0 ? argument + length : argument;
  9181. for ( ; ++i < length; ) {
  9182. matchIndexes.push( i );
  9183. }
  9184. return matchIndexes;
  9185. })
  9186. }
  9187. };
  9188. Expr.pseudos["nth"] = Expr.pseudos["eq"];
  9189. // Add button/input type pseudos
  9190. for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
  9191. Expr.pseudos[ i ] = createInputPseudo( i );
  9192. }
  9193. for ( i in { submit: true, reset: true } ) {
  9194. Expr.pseudos[ i ] = createButtonPseudo( i );
  9195. }
  9196. // Easy API for creating new setFilters
  9197. function setFilters() {}
  9198. setFilters.prototype = Expr.filters = Expr.pseudos;
  9199. Expr.setFilters = new setFilters();
  9200. tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
  9201. var matched, match, tokens, type,
  9202. soFar, groups, preFilters,
  9203. cached = tokenCache[ selector + " " ];
  9204. if ( cached ) {
  9205. return parseOnly ? 0 : cached.slice( 0 );
  9206. }
  9207. soFar = selector;
  9208. groups = [];
  9209. preFilters = Expr.preFilter;
  9210. while ( soFar ) {
  9211. // Comma and first run
  9212. if ( !matched || (match = rcomma.exec( soFar )) ) {
  9213. if ( match ) {
  9214. // Don't consume trailing commas as valid
  9215. soFar = soFar.slice( match[0].length ) || soFar;
  9216. }
  9217. groups.push( (tokens = []) );
  9218. }
  9219. matched = false;
  9220. // Combinators
  9221. if ( (match = rcombinators.exec( soFar )) ) {
  9222. matched = match.shift();
  9223. tokens.push({
  9224. value: matched,
  9225. // Cast descendant combinators to space
  9226. type: match[0].replace( rtrim, " " )
  9227. });
  9228. soFar = soFar.slice( matched.length );
  9229. }
  9230. // Filters
  9231. for ( type in Expr.filter ) {
  9232. if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
  9233. (match = preFilters[ type ]( match ))) ) {
  9234. matched = match.shift();
  9235. tokens.push({
  9236. value: matched,
  9237. type: type,
  9238. matches: match
  9239. });
  9240. soFar = soFar.slice( matched.length );
  9241. }
  9242. }
  9243. if ( !matched ) {
  9244. break;
  9245. }
  9246. }
  9247. // Return the length of the invalid excess
  9248. // if we're just parsing
  9249. // Otherwise, throw an error or return tokens
  9250. return parseOnly ?
  9251. soFar.length :
  9252. soFar ?
  9253. Sizzle.error( selector ) :
  9254. // Cache the tokens
  9255. tokenCache( selector, groups ).slice( 0 );
  9256. };
  9257. function toSelector( tokens ) {
  9258. var i = 0,
  9259. len = tokens.length,
  9260. selector = "";
  9261. for ( ; i < len; i++ ) {
  9262. selector += tokens[i].value;
  9263. }
  9264. return selector;
  9265. }
  9266. function addCombinator( matcher, combinator, base ) {
  9267. var dir = combinator.dir,
  9268. checkNonElements = base && dir === "parentNode",
  9269. doneName = done++;
  9270. return combinator.first ?
  9271. // Check against closest ancestor/preceding element
  9272. function( elem, context, xml ) {
  9273. while ( (elem = elem[ dir ]) ) {
  9274. if ( elem.nodeType === 1 || checkNonElements ) {
  9275. return matcher( elem, context, xml );
  9276. }
  9277. }
  9278. } :
  9279. // Check against all ancestor/preceding elements
  9280. function( elem, context, xml ) {
  9281. var oldCache, outerCache,
  9282. newCache = [ dirruns, doneName ];
  9283. // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching
  9284. if ( xml ) {
  9285. while ( (elem = elem[ dir ]) ) {
  9286. if ( elem.nodeType === 1 || checkNonElements ) {
  9287. if ( matcher( elem, context, xml ) ) {
  9288. return true;
  9289. }
  9290. }
  9291. }
  9292. } else {
  9293. while ( (elem = elem[ dir ]) ) {
  9294. if ( elem.nodeType === 1 || checkNonElements ) {
  9295. outerCache = elem[ expando ] || (elem[ expando ] = {});
  9296. if ( (oldCache = outerCache[ dir ]) &&
  9297. oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
  9298. // Assign to newCache so results back-propagate to previous elements
  9299. return (newCache[ 2 ] = oldCache[ 2 ]);
  9300. } else {
  9301. // Reuse newcache so results back-propagate to previous elements
  9302. outerCache[ dir ] = newCache;
  9303. // A match means we're done; a fail means we have to keep checking
  9304. if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
  9305. return true;
  9306. }
  9307. }
  9308. }
  9309. }
  9310. }
  9311. };
  9312. }
  9313. function elementMatcher( matchers ) {
  9314. return matchers.length > 1 ?
  9315. function( elem, context, xml ) {
  9316. var i = matchers.length;
  9317. while ( i-- ) {
  9318. if ( !matchers[i]( elem, context, xml ) ) {
  9319. return false;
  9320. }
  9321. }
  9322. return true;
  9323. } :
  9324. matchers[0];
  9325. }
  9326. function multipleContexts( selector, contexts, results ) {
  9327. var i = 0,
  9328. len = contexts.length;
  9329. for ( ; i < len; i++ ) {
  9330. Sizzle( selector, contexts[i], results );
  9331. }
  9332. return results;
  9333. }
  9334. function condense( unmatched, map, filter, context, xml ) {
  9335. var elem,
  9336. newUnmatched = [],
  9337. i = 0,
  9338. len = unmatched.length,
  9339. mapped = map != null;
  9340. for ( ; i < len; i++ ) {
  9341. if ( (elem = unmatched[i]) ) {
  9342. if ( !filter || filter( elem, context, xml ) ) {
  9343. newUnmatched.push( elem );
  9344. if ( mapped ) {
  9345. map.push( i );
  9346. }
  9347. }
  9348. }
  9349. }
  9350. return newUnmatched;
  9351. }
  9352. function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
  9353. if ( postFilter && !postFilter[ expando ] ) {
  9354. postFilter = setMatcher( postFilter );
  9355. }
  9356. if ( postFinder && !postFinder[ expando ] ) {
  9357. postFinder = setMatcher( postFinder, postSelector );
  9358. }
  9359. return markFunction(function( seed, results, context, xml ) {
  9360. var temp, i, elem,
  9361. preMap = [],
  9362. postMap = [],
  9363. preexisting = results.length,
  9364. // Get initial elements from seed or context
  9365. elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
  9366. // Prefilter to get matcher input, preserving a map for seed-results synchronization
  9367. matcherIn = preFilter && ( seed || !selector ) ?
  9368. condense( elems, preMap, preFilter, context, xml ) :
  9369. elems,
  9370. matcherOut = matcher ?
  9371. // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
  9372. postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
  9373. // ...intermediate processing is necessary
  9374. [] :
  9375. // ...otherwise use results directly
  9376. results :
  9377. matcherIn;
  9378. // Find primary matches
  9379. if ( matcher ) {
  9380. matcher( matcherIn, matcherOut, context, xml );
  9381. }
  9382. // Apply postFilter
  9383. if ( postFilter ) {
  9384. temp = condense( matcherOut, postMap );
  9385. postFilter( temp, [], context, xml );
  9386. // Un-match failing elements by moving them back to matcherIn
  9387. i = temp.length;
  9388. while ( i-- ) {
  9389. if ( (elem = temp[i]) ) {
  9390. matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
  9391. }
  9392. }
  9393. }
  9394. if ( seed ) {
  9395. if ( postFinder || preFilter ) {
  9396. if ( postFinder ) {
  9397. // Get the final matcherOut by condensing this intermediate into postFinder contexts
  9398. temp = [];
  9399. i = matcherOut.length;
  9400. while ( i-- ) {
  9401. if ( (elem = matcherOut[i]) ) {
  9402. // Restore matcherIn since elem is not yet a final match
  9403. temp.push( (matcherIn[i] = elem) );
  9404. }
  9405. }
  9406. postFinder( null, (matcherOut = []), temp, xml );
  9407. }
  9408. // Move matched elements from seed to results to keep them synchronized
  9409. i = matcherOut.length;
  9410. while ( i-- ) {
  9411. if ( (elem = matcherOut[i]) &&
  9412. (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
  9413. seed[temp] = !(results[temp] = elem);
  9414. }
  9415. }
  9416. }
  9417. // Add elements to results, through postFinder if defined
  9418. } else {
  9419. matcherOut = condense(
  9420. matcherOut === results ?
  9421. matcherOut.splice( preexisting, matcherOut.length ) :
  9422. matcherOut
  9423. );
  9424. if ( postFinder ) {
  9425. postFinder( null, results, matcherOut, xml );
  9426. } else {
  9427. push.apply( results, matcherOut );
  9428. }
  9429. }
  9430. });
  9431. }
  9432. function matcherFromTokens( tokens ) {
  9433. var checkContext, matcher, j,
  9434. len = tokens.length,
  9435. leadingRelative = Expr.relative[ tokens[0].type ],
  9436. implicitRelative = leadingRelative || Expr.relative[" "],
  9437. i = leadingRelative ? 1 : 0,
  9438. // The foundational matcher ensures that elements are reachable from top-level context(s)
  9439. matchContext = addCombinator( function( elem ) {
  9440. return elem === checkContext;
  9441. }, implicitRelative, true ),
  9442. matchAnyContext = addCombinator( function( elem ) {
  9443. return indexOf( checkContext, elem ) > -1;
  9444. }, implicitRelative, true ),
  9445. matchers = [ function( elem, context, xml ) {
  9446. var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
  9447. (checkContext = context).nodeType ?
  9448. matchContext( elem, context, xml ) :
  9449. matchAnyContext( elem, context, xml ) );
  9450. // Avoid hanging onto element (issue #299)
  9451. checkContext = null;
  9452. return ret;
  9453. } ];
  9454. for ( ; i < len; i++ ) {
  9455. if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
  9456. matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
  9457. } else {
  9458. matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
  9459. // Return special upon seeing a positional matcher
  9460. if ( matcher[ expando ] ) {
  9461. // Find the next relative operator (if any) for proper handling
  9462. j = ++i;
  9463. for ( ; j < len; j++ ) {
  9464. if ( Expr.relative[ tokens[j].type ] ) {
  9465. break;
  9466. }
  9467. }
  9468. return setMatcher(
  9469. i > 1 && elementMatcher( matchers ),
  9470. i > 1 && toSelector(
  9471. // If the preceding token was a descendant combinator, insert an implicit any-element `*`
  9472. tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
  9473. ).replace( rtrim, "$1" ),
  9474. matcher,
  9475. i < j && matcherFromTokens( tokens.slice( i, j ) ),
  9476. j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
  9477. j < len && toSelector( tokens )
  9478. );
  9479. }
  9480. matchers.push( matcher );
  9481. }
  9482. }
  9483. return elementMatcher( matchers );
  9484. }
  9485. function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
  9486. var bySet = setMatchers.length > 0,
  9487. byElement = elementMatchers.length > 0,
  9488. superMatcher = function( seed, context, xml, results, outermost ) {
  9489. var elem, j, matcher,
  9490. matchedCount = 0,
  9491. i = "0",
  9492. unmatched = seed && [],
  9493. setMatched = [],
  9494. contextBackup = outermostContext,
  9495. // We must always have either seed elements or outermost context
  9496. elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
  9497. // Use integer dirruns iff this is the outermost matcher
  9498. dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
  9499. len = elems.length;
  9500. if ( outermost ) {
  9501. outermostContext = context !== document && context;
  9502. }
  9503. // Add elements passing elementMatchers directly to results
  9504. // Keep `i` a string if there are no elements so `matchedCount` will be "00" below
  9505. // Support: IE<9, Safari
  9506. // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
  9507. for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
  9508. if ( byElement && elem ) {
  9509. j = 0;
  9510. while ( (matcher = elementMatchers[j++]) ) {
  9511. if ( matcher( elem, context, xml ) ) {
  9512. results.push( elem );
  9513. break;
  9514. }
  9515. }
  9516. if ( outermost ) {
  9517. dirruns = dirrunsUnique;
  9518. }
  9519. }
  9520. // Track unmatched elements for set filters
  9521. if ( bySet ) {
  9522. // They will have gone through all possible matchers
  9523. if ( (elem = !matcher && elem) ) {
  9524. matchedCount--;
  9525. }
  9526. // Lengthen the array for every element, matched or not
  9527. if ( seed ) {
  9528. unmatched.push( elem );
  9529. }
  9530. }
  9531. }
  9532. // Apply set filters to unmatched elements
  9533. matchedCount += i;
  9534. if ( bySet && i !== matchedCount ) {
  9535. j = 0;
  9536. while ( (matcher = setMatchers[j++]) ) {
  9537. matcher( unmatched, setMatched, context, xml );
  9538. }
  9539. if ( seed ) {
  9540. // Reintegrate element matches to eliminate the need for sorting
  9541. if ( matchedCount > 0 ) {
  9542. while ( i-- ) {
  9543. if ( !(unmatched[i] || setMatched[i]) ) {
  9544. setMatched[i] = pop.call( results );
  9545. }
  9546. }
  9547. }
  9548. // Discard index placeholder values to get only actual matches
  9549. setMatched = condense( setMatched );
  9550. }
  9551. // Add matches to results
  9552. push.apply( results, setMatched );
  9553. // Seedless set matches succeeding multiple successful matchers stipulate sorting
  9554. if ( outermost && !seed && setMatched.length > 0 &&
  9555. ( matchedCount + setMatchers.length ) > 1 ) {
  9556. Sizzle.uniqueSort( results );
  9557. }
  9558. }
  9559. // Override manipulation of globals by nested matchers
  9560. if ( outermost ) {
  9561. dirruns = dirrunsUnique;
  9562. outermostContext = contextBackup;
  9563. }
  9564. return unmatched;
  9565. };
  9566. return bySet ?
  9567. markFunction( superMatcher ) :
  9568. superMatcher;
  9569. }
  9570. compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
  9571. var i,
  9572. setMatchers = [],
  9573. elementMatchers = [],
  9574. cached = compilerCache[ selector + " " ];
  9575. if ( !cached ) {
  9576. // Generate a function of recursive functions that can be used to check each element
  9577. if ( !match ) {
  9578. match = tokenize( selector );
  9579. }
  9580. i = match.length;
  9581. while ( i-- ) {
  9582. cached = matcherFromTokens( match[i] );
  9583. if ( cached[ expando ] ) {
  9584. setMatchers.push( cached );
  9585. } else {
  9586. elementMatchers.push( cached );
  9587. }
  9588. }
  9589. // Cache the compiled function
  9590. cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
  9591. // Save selector and tokenization
  9592. cached.selector = selector;
  9593. }
  9594. return cached;
  9595. };
  9596. /**
  9597. * A low-level selection function that works with Sizzle's compiled
  9598. * selector functions
  9599. * @param {String|Function} selector A selector or a pre-compiled
  9600. * selector function built with Sizzle.compile
  9601. * @param {Element} context
  9602. * @param {Array} [results]
  9603. * @param {Array} [seed] A set of elements to match against
  9604. */
  9605. select = Sizzle.select = function( selector, context, results, seed ) {
  9606. var i, tokens, token, type, find,
  9607. compiled = typeof selector === "function" && selector,
  9608. match = !seed && tokenize( (selector = compiled.selector || selector) );
  9609. results = results || [];
  9610. // Try to minimize operations if there is no seed and only one group
  9611. if ( match.length === 1 ) {
  9612. // Take a shortcut and set the context if the root selector is an ID
  9613. tokens = match[0] = match[0].slice( 0 );
  9614. if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
  9615. support.getById && context.nodeType === 9 && documentIsHTML &&
  9616. Expr.relative[ tokens[1].type ] ) {
  9617. context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
  9618. if ( !context ) {
  9619. return results;
  9620. // Precompiled matchers will still verify ancestry, so step up a level
  9621. } else if ( compiled ) {
  9622. context = context.parentNode;
  9623. }
  9624. selector = selector.slice( tokens.shift().value.length );
  9625. }
  9626. // Fetch a seed set for right-to-left matching
  9627. i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
  9628. while ( i-- ) {
  9629. token = tokens[i];
  9630. // Abort if we hit a combinator
  9631. if ( Expr.relative[ (type = token.type) ] ) {
  9632. break;
  9633. }
  9634. if ( (find = Expr.find[ type ]) ) {
  9635. // Search, expanding context for leading sibling combinators
  9636. if ( (seed = find(
  9637. token.matches[0].replace( runescape, funescape ),
  9638. rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
  9639. )) ) {
  9640. // If seed is empty or no tokens remain, we can return early
  9641. tokens.splice( i, 1 );
  9642. selector = seed.length && toSelector( tokens );
  9643. if ( !selector ) {
  9644. push.apply( results, seed );
  9645. return results;
  9646. }
  9647. break;
  9648. }
  9649. }
  9650. }
  9651. }
  9652. // Compile and execute a filtering function if one is not provided
  9653. // Provide `match` to avoid retokenization if we modified the selector above
  9654. ( compiled || compile( selector, match ) )(
  9655. seed,
  9656. context,
  9657. !documentIsHTML,
  9658. results,
  9659. rsibling.test( selector ) && testContext( context.parentNode ) || context
  9660. );
  9661. return results;
  9662. };
  9663. // One-time assignments
  9664. // Sort stability
  9665. support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
  9666. // Support: Chrome 14-35+
  9667. // Always assume duplicates if they aren't passed to the comparison function
  9668. support.detectDuplicates = !!hasDuplicate;
  9669. // Initialize against the default document
  9670. setDocument();
  9671. // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
  9672. // Detached nodes confoundingly follow *each other*
  9673. support.sortDetached = assert(function( div1 ) {
  9674. // Should return 1, but returns 4 (following)
  9675. return div1.compareDocumentPosition( document.createElement("div") ) & 1;
  9676. });
  9677. // Support: IE<8
  9678. // Prevent attribute/property "interpolation"
  9679. // http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
  9680. if ( !assert(function( div ) {
  9681. div.innerHTML = "<a href='http://arongranberg.com/astar/docs'></a>";
  9682. return div.firstChild.getAttribute("href") === "#" ;
  9683. }) ) {
  9684. addHandle( "type|href|height|width", function( elem, name, isXML ) {
  9685. if ( !isXML ) {
  9686. return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
  9687. }
  9688. });
  9689. }
  9690. // Support: IE<9
  9691. // Use defaultValue in place of getAttribute("value")
  9692. if ( !support.attributes || !assert(function( div ) {
  9693. div.innerHTML = "<input/>";
  9694. div.firstChild.setAttribute( "value", "" );
  9695. return div.firstChild.getAttribute( "value" ) === "";
  9696. }) ) {
  9697. addHandle( "value", function( elem, name, isXML ) {
  9698. if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
  9699. return elem.defaultValue;
  9700. }
  9701. });
  9702. }
  9703. // Support: IE<9
  9704. // Use getAttributeNode to fetch booleans when getAttribute lies
  9705. if ( !assert(function( div ) {
  9706. return div.getAttribute("disabled") == null;
  9707. }) ) {
  9708. addHandle( booleans, function( elem, name, isXML ) {
  9709. var val;
  9710. if ( !isXML ) {
  9711. return elem[ name ] === true ? name.toLowerCase() :
  9712. (val = elem.getAttributeNode( name )) && val.specified ?
  9713. val.value :
  9714. null;
  9715. }
  9716. });
  9717. }
  9718. return Sizzle;
  9719. })( window );
  9720. jQuery.find = Sizzle;
  9721. jQuery.expr = Sizzle.selectors;
  9722. jQuery.expr[":"] = jQuery.expr.pseudos;
  9723. jQuery.unique = Sizzle.uniqueSort;
  9724. jQuery.text = Sizzle.getText;
  9725. jQuery.isXMLDoc = Sizzle.isXML;
  9726. jQuery.contains = Sizzle.contains;
  9727. var rneedsContext = jQuery.expr.match.needsContext;
  9728. var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/);
  9729. var risSimple = /^.[^:#\[\.,]*$/;
  9730. // Implement the identical functionality for filter and not
  9731. function winnow( elements, qualifier, not ) {
  9732. if ( jQuery.isFunction( qualifier ) ) {
  9733. return jQuery.grep( elements, function( elem, i ) {
  9734. /* jshint -W018 */
  9735. return !!qualifier.call( elem, i, elem ) !== not;
  9736. });
  9737. }
  9738. if ( qualifier.nodeType ) {
  9739. return jQuery.grep( elements, function( elem ) {
  9740. return ( elem === qualifier ) !== not;
  9741. });
  9742. }
  9743. if ( typeof qualifier === "string" ) {
  9744. if ( risSimple.test( qualifier ) ) {
  9745. return jQuery.filter( qualifier, elements, not );
  9746. }
  9747. qualifier = jQuery.filter( qualifier, elements );
  9748. }
  9749. return jQuery.grep( elements, function( elem ) {
  9750. return ( indexOf.call( qualifier, elem ) >= 0 ) !== not;
  9751. });
  9752. }
  9753. jQuery.filter = function( expr, elems, not ) {
  9754. var elem = elems[ 0 ];
  9755. if ( not ) {
  9756. expr = ":not(" + expr + ")";
  9757. }
  9758. return elems.length === 1 && elem.nodeType === 1 ?
  9759. jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
  9760. jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
  9761. return elem.nodeType === 1;
  9762. }));
  9763. };
  9764. jQuery.fn.extend({
  9765. find: function( selector ) {
  9766. var i,
  9767. len = this.length,
  9768. ret = [],
  9769. self = this;
  9770. if ( typeof selector !== "string" ) {
  9771. return this.pushStack( jQuery( selector ).filter(function() {
  9772. for ( i = 0; i < len; i++ ) {
  9773. if ( jQuery.contains( self[ i ], this ) ) {
  9774. return true;
  9775. }
  9776. }
  9777. }) );
  9778. }
  9779. for ( i = 0; i < len; i++ ) {
  9780. jQuery.find( selector, self[ i ], ret );
  9781. }
  9782. // Needed because $( selector, context ) becomes $( context ).find( selector )
  9783. ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
  9784. ret.selector = this.selector ? this.selector + " " + selector : selector;
  9785. return ret;
  9786. },
  9787. filter: function( selector ) {
  9788. return this.pushStack( winnow(this, selector || [], false) );
  9789. },
  9790. not: function( selector ) {
  9791. return this.pushStack( winnow(this, selector || [], true) );
  9792. },
  9793. is: function( selector ) {
  9794. return !!winnow(
  9795. this,
  9796. // If this is a positional/relative selector, check membership in the returned set
  9797. // so $("p:first").is("p:last") won't return true for a doc with two "p".
  9798. typeof selector === "string" && rneedsContext.test( selector ) ?
  9799. jQuery( selector ) :
  9800. selector || [],
  9801. false
  9802. ).length;
  9803. }
  9804. });
  9805. // Initialize a jQuery object
  9806. // A central reference to the root jQuery(document)
  9807. var rootjQuery,
  9808. // A simple way to check for HTML strings
  9809. // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
  9810. // Strict HTML recognition (#11290: must start with <)
  9811. rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
  9812. init = jQuery.fn.init = function( selector, context ) {
  9813. var match, elem;
  9814. // HANDLE: $(""), $(null), $(undefined), $(false)
  9815. if ( !selector ) {
  9816. return this;
  9817. }
  9818. // Handle HTML strings
  9819. if ( typeof selector === "string" ) {
  9820. if ( selector[0] === "<" && selector[ selector.length - 1 ] === ">" && selector.length >= 3 ) {
  9821. // Assume that strings that start and end with <> are HTML and skip the regex check
  9822. match = [ null, selector, null ];
  9823. } else {
  9824. match = rquickExpr.exec( selector );
  9825. }
  9826. // Match html or make sure no context is specified for #id
  9827. if ( match && (match[1] || !context) ) {
  9828. // HANDLE: $(html) -> $(array)
  9829. if ( match[1] ) {
  9830. context = context instanceof jQuery ? context[0] : context;
  9831. // Option to run scripts is true for back-compat
  9832. // Intentionally let the error be thrown if parseHTML is not present
  9833. jQuery.merge( this, jQuery.parseHTML(
  9834. match[1],
  9835. context && context.nodeType ? context.ownerDocument || context : document,
  9836. true
  9837. ) );
  9838. // HANDLE: $(html, props)
  9839. if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {
  9840. for ( match in context ) {
  9841. // Properties of context are called as methods if possible
  9842. if ( jQuery.isFunction( this[ match ] ) ) {
  9843. this[ match ]( context[ match ] );
  9844. // ...and otherwise set as attributes
  9845. } else {
  9846. this.attr( match, context[ match ] );
  9847. }
  9848. }
  9849. }
  9850. return this;
  9851. // HANDLE: $(#id)
  9852. } else {
  9853. elem = document.getElementById( match[2] );
  9854. // Support: Blackberry 4.6
  9855. // gEBID returns nodes no longer in the document (#6963)
  9856. if ( elem && elem.parentNode ) {
  9857. // Inject the element directly into the jQuery object
  9858. this.length = 1;
  9859. this[0] = elem;
  9860. }
  9861. this.context = document;
  9862. this.selector = selector;
  9863. return this;
  9864. }
  9865. // HANDLE: $(expr, $(...))
  9866. } else if ( !context || context.jquery ) {
  9867. return ( context || rootjQuery ).find( selector );
  9868. // HANDLE: $(expr, context)
  9869. // (which is just equivalent to: $(context).find(expr)
  9870. } else {
  9871. return this.constructor( context ).find( selector );
  9872. }
  9873. // HANDLE: $(DOMElement)
  9874. } else if ( selector.nodeType ) {
  9875. this.context = this[0] = selector;
  9876. this.length = 1;
  9877. return this;
  9878. // HANDLE: $(function)
  9879. // Shortcut for document ready
  9880. } else if ( jQuery.isFunction( selector ) ) {
  9881. return typeof rootjQuery.ready !== "undefined" ?
  9882. rootjQuery.ready( selector ) :
  9883. // Execute immediately if ready is not present
  9884. selector( jQuery );
  9885. }
  9886. if ( selector.selector !== undefined ) {
  9887. this.selector = selector.selector;
  9888. this.context = selector.context;
  9889. }
  9890. return jQuery.makeArray( selector, this );
  9891. };
  9892. // Give the init function the jQuery prototype for later instantiation
  9893. init.prototype = jQuery.fn;
  9894. // Initialize central reference
  9895. rootjQuery = jQuery( document );
  9896. var rparentsprev = /^(?:parents|prev(?:Until|All))/,
  9897. // Methods guaranteed to produce a unique set when starting from a unique set
  9898. guaranteedUnique = {
  9899. children: true,
  9900. contents: true,
  9901. next: true,
  9902. prev: true
  9903. };
  9904. jQuery.extend({
  9905. dir: function( elem, dir, until ) {
  9906. var matched = [],
  9907. truncate = until !== undefined;
  9908. while ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) {
  9909. if ( elem.nodeType === 1 ) {
  9910. if ( truncate && jQuery( elem ).is( until ) ) {
  9911. break;
  9912. }
  9913. matched.push( elem );
  9914. }
  9915. }
  9916. return matched;
  9917. },
  9918. sibling: function( n, elem ) {
  9919. var matched = [];
  9920. for ( ; n; n = n.nextSibling ) {
  9921. if ( n.nodeType === 1 && n !== elem ) {
  9922. matched.push( n );
  9923. }
  9924. }
  9925. return matched;
  9926. }
  9927. });
  9928. jQuery.fn.extend({
  9929. has: function( target ) {
  9930. var targets = jQuery( target, this ),
  9931. l = targets.length;
  9932. return this.filter(function() {
  9933. var i = 0;
  9934. for ( ; i < l; i++ ) {
  9935. if ( jQuery.contains( this, targets[i] ) ) {
  9936. return true;
  9937. }
  9938. }
  9939. });
  9940. },
  9941. closest: function( selectors, context ) {
  9942. var cur,
  9943. i = 0,
  9944. l = this.length,
  9945. matched = [],
  9946. pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
  9947. jQuery( selectors, context || this.context ) :
  9948. 0;
  9949. for ( ; i < l; i++ ) {
  9950. for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {
  9951. // Always skip document fragments
  9952. if ( cur.nodeType < 11 && (pos ?
  9953. pos.index(cur) > -1 :
  9954. // Don't pass non-elements to Sizzle
  9955. cur.nodeType === 1 &&
  9956. jQuery.find.matchesSelector(cur, selectors)) ) {
  9957. matched.push( cur );
  9958. break;
  9959. }
  9960. }
  9961. }
  9962. return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched );
  9963. },
  9964. // Determine the position of an element within the set
  9965. index: function( elem ) {
  9966. // No argument, return index in parent
  9967. if ( !elem ) {
  9968. return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
  9969. }
  9970. // Index in selector
  9971. if ( typeof elem === "string" ) {
  9972. return indexOf.call( jQuery( elem ), this[ 0 ] );
  9973. }
  9974. // Locate the position of the desired element
  9975. return indexOf.call( this,
  9976. // If it receives a jQuery object, the first element is used
  9977. elem.jquery ? elem[ 0 ] : elem
  9978. );
  9979. },
  9980. add: function( selector, context ) {
  9981. return this.pushStack(
  9982. jQuery.unique(
  9983. jQuery.merge( this.get(), jQuery( selector, context ) )
  9984. )
  9985. );
  9986. },
  9987. addBack: function( selector ) {
  9988. return this.add( selector == null ?
  9989. this.prevObject : this.prevObject.filter(selector)
  9990. );
  9991. }
  9992. });
  9993. function sibling( cur, dir ) {
  9994. while ( (cur = cur[dir]) && cur.nodeType !== 1 ) {}
  9995. return cur;
  9996. }
  9997. jQuery.each({
  9998. parent: function( elem ) {
  9999. var parent = elem.parentNode;
  10000. return parent && parent.nodeType !== 11 ? parent : null;
  10001. },
  10002. parents: function( elem ) {
  10003. return jQuery.dir( elem, "parentNode" );
  10004. },
  10005. parentsUntil: function( elem, i, until ) {
  10006. return jQuery.dir( elem, "parentNode", until );
  10007. },
  10008. next: function( elem ) {
  10009. return sibling( elem, "nextSibling" );
  10010. },
  10011. prev: function( elem ) {
  10012. return sibling( elem, "previousSibling" );
  10013. },
  10014. nextAll: function( elem ) {
  10015. return jQuery.dir( elem, "nextSibling" );
  10016. },
  10017. prevAll: function( elem ) {
  10018. return jQuery.dir( elem, "previousSibling" );
  10019. },
  10020. nextUntil: function( elem, i, until ) {
  10021. return jQuery.dir( elem, "nextSibling", until );
  10022. },
  10023. prevUntil: function( elem, i, until ) {
  10024. return jQuery.dir( elem, "previousSibling", until );
  10025. },
  10026. siblings: function( elem ) {
  10027. return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );
  10028. },
  10029. children: function( elem ) {
  10030. return jQuery.sibling( elem.firstChild );
  10031. },
  10032. contents: function( elem ) {
  10033. return elem.contentDocument || jQuery.merge( [], elem.childNodes );
  10034. }
  10035. }, function( name, fn ) {
  10036. jQuery.fn[ name ] = function( until, selector ) {
  10037. var matched = jQuery.map( this, fn, until );
  10038. if ( name.slice( -5 ) !== "Until" ) {
  10039. selector = until;
  10040. }
  10041. if ( selector && typeof selector === "string" ) {
  10042. matched = jQuery.filter( selector, matched );
  10043. }
  10044. if ( this.length > 1 ) {
  10045. // Remove duplicates
  10046. if ( !guaranteedUnique[ name ] ) {
  10047. jQuery.unique( matched );
  10048. }
  10049. // Reverse order for parents* and prev-derivatives
  10050. if ( rparentsprev.test( name ) ) {
  10051. matched.reverse();
  10052. }
  10053. }
  10054. return this.pushStack( matched );
  10055. };
  10056. });
  10057. var rnotwhite = (/\S+/g);
  10058. // String to Object options format cache
  10059. var optionsCache = {};
  10060. // Convert String-formatted options into Object-formatted ones and store in cache
  10061. function createOptions( options ) {
  10062. var object = optionsCache[ options ] = {};
  10063. jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {
  10064. object[ flag ] = true;
  10065. });
  10066. return object;
  10067. }
  10068. /*
  10069. * Create a callback list using the following parameters:
  10070. *
  10071. * options: an optional list of space-separated options that will change how
  10072. * the callback list behaves or a more traditional option object
  10073. *
  10074. * By default a callback list will act like an event callback list and can be
  10075. * "fired" multiple times.
  10076. *
  10077. * Possible options:
  10078. *
  10079. * once: will ensure the callback list can only be fired once (like a Deferred)
  10080. *
  10081. * memory: will keep track of previous values and will call any callback added
  10082. * after the list has been fired right away with the latest "memorized"
  10083. * values (like a Deferred)
  10084. *
  10085. * unique: will ensure a callback can only be added once (no duplicate in the list)
  10086. *
  10087. * stopOnFalse: interrupt callings when a callback returns false
  10088. *
  10089. */
  10090. jQuery.Callbacks = function( options ) {
  10091. // Convert options from String-formatted to Object-formatted if needed
  10092. // (we check in cache first)
  10093. options = typeof options === "string" ?
  10094. ( optionsCache[ options ] || createOptions( options ) ) :
  10095. jQuery.extend( {}, options );
  10096. var // Last fire value (for non-forgettable lists)
  10097. memory,
  10098. // Flag to know if list was already fired
  10099. fired,
  10100. // Flag to know if list is currently firing
  10101. firing,
  10102. // First callback to fire (used internally by add and fireWith)
  10103. firingStart,
  10104. // End of the loop when firing
  10105. firingLength,
  10106. // Index of currently firing callback (modified by remove if needed)
  10107. firingIndex,
  10108. // Actual callback list
  10109. list = [],
  10110. // Stack of fire calls for repeatable lists
  10111. stack = !options.once && [],
  10112. // Fire callbacks
  10113. fire = function( data ) {
  10114. memory = options.memory && data;
  10115. fired = true;
  10116. firingIndex = firingStart || 0;
  10117. firingStart = 0;
  10118. firingLength = list.length;
  10119. firing = true;
  10120. for ( ; list && firingIndex < firingLength; firingIndex++ ) {
  10121. if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {
  10122. memory = false; // To prevent further calls using add
  10123. break;
  10124. }
  10125. }
  10126. firing = false;
  10127. if ( list ) {
  10128. if ( stack ) {
  10129. if ( stack.length ) {
  10130. fire( stack.shift() );
  10131. }
  10132. } else if ( memory ) {
  10133. list = [];
  10134. } else {
  10135. self.disable();
  10136. }
  10137. }
  10138. },
  10139. // Actual Callbacks object
  10140. self = {
  10141. // Add a callback or a collection of callbacks to the list
  10142. add: function() {
  10143. if ( list ) {
  10144. // First, we save the current length
  10145. var start = list.length;
  10146. (function add( args ) {
  10147. jQuery.each( args, function( _, arg ) {
  10148. var type = jQuery.type( arg );
  10149. if ( type === "function" ) {
  10150. if ( !options.unique || !self.has( arg ) ) {
  10151. list.push( arg );
  10152. }
  10153. } else if ( arg && arg.length && type !== "string" ) {
  10154. // Inspect recursively
  10155. add( arg );
  10156. }
  10157. });
  10158. })( arguments );
  10159. // Do we need to add the callbacks to the
  10160. // current firing batch?
  10161. if ( firing ) {
  10162. firingLength = list.length;
  10163. // With memory, if we're not firing then
  10164. // we should call right away
  10165. } else if ( memory ) {
  10166. firingStart = start;
  10167. fire( memory );
  10168. }
  10169. }
  10170. return this;
  10171. },
  10172. // Remove a callback from the list
  10173. remove: function() {
  10174. if ( list ) {
  10175. jQuery.each( arguments, function( _, arg ) {
  10176. var index;
  10177. while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
  10178. list.splice( index, 1 );
  10179. // Handle firing indexes
  10180. if ( firing ) {
  10181. if ( index <= firingLength ) {
  10182. firingLength--;
  10183. }
  10184. if ( index <= firingIndex ) {
  10185. firingIndex--;
  10186. }
  10187. }
  10188. }
  10189. });
  10190. }
  10191. return this;
  10192. },
  10193. // Check if a given callback is in the list.
  10194. // If no argument is given, return whether or not list has callbacks attached.
  10195. has: function( fn ) {
  10196. return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );
  10197. },
  10198. // Remove all callbacks from the list
  10199. empty: function() {
  10200. list = [];
  10201. firingLength = 0;
  10202. return this;
  10203. },
  10204. // Have the list do nothing anymore
  10205. disable: function() {
  10206. list = stack = memory = undefined;
  10207. return this;
  10208. },
  10209. // Is it disabled?
  10210. disabled: function() {
  10211. return !list;
  10212. },
  10213. // Lock the list in its current state
  10214. lock: function() {
  10215. stack = undefined;
  10216. if ( !memory ) {
  10217. self.disable();
  10218. }
  10219. return this;
  10220. },
  10221. // Is it locked?
  10222. locked: function() {
  10223. return !stack;
  10224. },
  10225. // Call all callbacks with the given context and arguments
  10226. fireWith: function( context, args ) {
  10227. if ( list && ( !fired || stack ) ) {
  10228. args = args || [];
  10229. args = [ context, args.slice ? args.slice() : args ];
  10230. if ( firing ) {
  10231. stack.push( args );
  10232. } else {
  10233. fire( args );
  10234. }
  10235. }
  10236. return this;
  10237. },
  10238. // Call all the callbacks with the given arguments
  10239. fire: function() {
  10240. self.fireWith( this, arguments );
  10241. return this;
  10242. },
  10243. // To know if the callbacks have already been called at least once
  10244. fired: function() {
  10245. return !!fired;
  10246. }
  10247. };
  10248. return self;
  10249. };
  10250. jQuery.extend({
  10251. Deferred: function( func ) {
  10252. var tuples = [
  10253. // action, add listener, listener list, final state
  10254. [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ],
  10255. [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ],
  10256. [ "notify", "progress", jQuery.Callbacks("memory") ]
  10257. ],
  10258. state = "pending",
  10259. promise = {
  10260. state: function() {
  10261. return state;
  10262. },
  10263. always: function() {
  10264. deferred.done( arguments ).fail( arguments );
  10265. return this;
  10266. },
  10267. then: function( /* fnDone, fnFail, fnProgress */ ) {
  10268. var fns = arguments;
  10269. return jQuery.Deferred(function( newDefer ) {
  10270. jQuery.each( tuples, function( i, tuple ) {
  10271. var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
  10272. // deferred[ done | fail | progress ] for forwarding actions to newDefer
  10273. deferred[ tuple[1] ](function() {
  10274. var returned = fn && fn.apply( this, arguments );
  10275. if ( returned && jQuery.isFunction( returned.promise ) ) {
  10276. returned.promise()
  10277. .done( newDefer.resolve )
  10278. .fail( newDefer.reject )
  10279. .progress( newDefer.notify );
  10280. } else {
  10281. newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );
  10282. }
  10283. });
  10284. });
  10285. fns = null;
  10286. }).promise();
  10287. },
  10288. // Get a promise for this deferred
  10289. // If obj is provided, the promise aspect is added to the object
  10290. promise: function( obj ) {
  10291. return obj != null ? jQuery.extend( obj, promise ) : promise;
  10292. }
  10293. },
  10294. deferred = {};
  10295. // Keep pipe for back-compat
  10296. promise.pipe = promise.then;
  10297. // Add list-specific methods
  10298. jQuery.each( tuples, function( i, tuple ) {
  10299. var list = tuple[ 2 ],
  10300. stateString = tuple[ 3 ];
  10301. // promise[ done | fail | progress ] = list.add
  10302. promise[ tuple[1] ] = list.add;
  10303. // Handle state
  10304. if ( stateString ) {
  10305. list.add(function() {
  10306. // state = [ resolved | rejected ]
  10307. state = stateString;
  10308. // [ reject_list | resolve_list ].disable; progress_list.lock
  10309. }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
  10310. }
  10311. // deferred[ resolve | reject | notify ]
  10312. deferred[ tuple[0] ] = function() {
  10313. deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments );
  10314. return this;
  10315. };
  10316. deferred[ tuple[0] + "With" ] = list.fireWith;
  10317. });
  10318. // Make the deferred a promise
  10319. promise.promise( deferred );
  10320. // Call given func if any
  10321. if ( func ) {
  10322. func.call( deferred, deferred );
  10323. }
  10324. // All done!
  10325. return deferred;
  10326. },
  10327. // Deferred helper
  10328. when: function( subordinate /* , ..., subordinateN */ ) {
  10329. var i = 0,
  10330. resolveValues = slice.call( arguments ),
  10331. length = resolveValues.length,
  10332. // the count of uncompleted subordinates
  10333. remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
  10334. // the master Deferred. If resolveValues consist of only a single Deferred, just use that.
  10335. deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
  10336. // Update function for both resolve and progress values
  10337. updateFunc = function( i, contexts, values ) {
  10338. return function( value ) {
  10339. contexts[ i ] = this;
  10340. values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
  10341. if ( values === progressValues ) {
  10342. deferred.notifyWith( contexts, values );
  10343. } else if ( !( --remaining ) ) {
  10344. deferred.resolveWith( contexts, values );
  10345. }
  10346. };
  10347. },
  10348. progressValues, progressContexts, resolveContexts;
  10349. // Add listeners to Deferred subordinates; treat others as resolved
  10350. if ( length > 1 ) {
  10351. progressValues = new Array( length );
  10352. progressContexts = new Array( length );
  10353. resolveContexts = new Array( length );
  10354. for ( ; i < length; i++ ) {
  10355. if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
  10356. resolveValues[ i ].promise()
  10357. .done( updateFunc( i, resolveContexts, resolveValues ) )
  10358. .fail( deferred.reject )
  10359. .progress( updateFunc( i, progressContexts, progressValues ) );
  10360. } else {
  10361. --remaining;
  10362. }
  10363. }
  10364. }
  10365. // If we're not waiting on anything, resolve the master
  10366. if ( !remaining ) {
  10367. deferred.resolveWith( resolveContexts, resolveValues );
  10368. }
  10369. return deferred.promise();
  10370. }
  10371. });
  10372. // The deferred used on DOM ready
  10373. var readyList;
  10374. jQuery.fn.ready = function( fn ) {
  10375. // Add the callback
  10376. jQuery.ready.promise().done( fn );
  10377. return this;
  10378. };
  10379. jQuery.extend({
  10380. // Is the DOM ready to be used? Set to true once it occurs.
  10381. isReady: false,
  10382. // A counter to track how many items to wait for before
  10383. // the ready event fires. See #6781
  10384. readyWait: 1,
  10385. // Hold (or release) the ready event
  10386. holdReady: function( hold ) {
  10387. if ( hold ) {
  10388. jQuery.readyWait++;
  10389. } else {
  10390. jQuery.ready( true );
  10391. }
  10392. },
  10393. // Handle when the DOM is ready
  10394. ready: function( wait ) {
  10395. // Abort if there are pending holds or we're already ready
  10396. if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
  10397. return;
  10398. }
  10399. // Remember that the DOM is ready
  10400. jQuery.isReady = true;
  10401. // If a normal DOM Ready event fired, decrement, and wait if need be
  10402. if ( wait !== true && --jQuery.readyWait > 0 ) {
  10403. return;
  10404. }
  10405. // If there are functions bound, to execute
  10406. readyList.resolveWith( document, [ jQuery ] );
  10407. // Trigger any bound ready events
  10408. if ( jQuery.fn.triggerHandler ) {
  10409. jQuery( document ).triggerHandler( "ready" );
  10410. jQuery( document ).off( "ready" );
  10411. }
  10412. }
  10413. });
  10414. /**
  10415. * The ready event handler and self cleanup method
  10416. */
  10417. function completed() {
  10418. document.removeEventListener( "DOMContentLoaded", completed, false );
  10419. window.removeEventListener( "load", completed, false );
  10420. jQuery.ready();
  10421. }
  10422. jQuery.ready.promise = function( obj ) {
  10423. if ( !readyList ) {
  10424. readyList = jQuery.Deferred();
  10425. // Catch cases where $(document).ready() is called after the browser event has already occurred.
  10426. // We once tried to use readyState "interactive" here, but it caused issues like the one
  10427. // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15
  10428. if ( document.readyState === "complete" ) {
  10429. // Handle it asynchronously to allow scripts the opportunity to delay ready
  10430. setTimeout( jQuery.ready );
  10431. } else {
  10432. // Use the handy event callback
  10433. document.addEventListener( "DOMContentLoaded", completed, false );
  10434. // A fallback to window.onload, that will always work
  10435. window.addEventListener( "load", completed, false );
  10436. }
  10437. }
  10438. return readyList.promise( obj );
  10439. };
  10440. // Kick off the DOM ready check even if the user does not
  10441. jQuery.ready.promise();
  10442. // Multifunctional method to get and set values of a collection
  10443. // The value/s can optionally be executed if it's a function
  10444. var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
  10445. var i = 0,
  10446. len = elems.length,
  10447. bulk = key == null;
  10448. // Sets many values
  10449. if ( jQuery.type( key ) === "object" ) {
  10450. chainable = true;
  10451. for ( i in key ) {
  10452. jQuery.access( elems, fn, i, key[i], true, emptyGet, raw );
  10453. }
  10454. // Sets one value
  10455. } else if ( value !== undefined ) {
  10456. chainable = true;
  10457. if ( !jQuery.isFunction( value ) ) {
  10458. raw = true;
  10459. }
  10460. if ( bulk ) {
  10461. // Bulk operations run against the entire set
  10462. if ( raw ) {
  10463. fn.call( elems, value );
  10464. fn = null;
  10465. // ...except when executing function values
  10466. } else {
  10467. bulk = fn;
  10468. fn = function( elem, key, value ) {
  10469. return bulk.call( jQuery( elem ), value );
  10470. };
  10471. }
  10472. }
  10473. if ( fn ) {
  10474. for ( ; i < len; i++ ) {
  10475. fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );
  10476. }
  10477. }
  10478. }
  10479. return chainable ?
  10480. elems :
  10481. // Gets
  10482. bulk ?
  10483. fn.call( elems ) :
  10484. len ? fn( elems[0], key ) : emptyGet;
  10485. };
  10486. /**
  10487. * Determines whether an object can have data
  10488. */
  10489. jQuery.acceptData = function( owner ) {
  10490. // Accepts only:
  10491. // - Node
  10492. // - Node.ELEMENT_NODE
  10493. // - Node.DOCUMENT_NODE
  10494. // - Object
  10495. // - Any
  10496. /* jshint -W018 */
  10497. return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
  10498. };
  10499. function Data() {
  10500. // Support: Android<4,
  10501. // Old WebKit does not have Object.preventExtensions/freeze method,
  10502. // return new empty object instead with no [[set]] accessor
  10503. Object.defineProperty( this.cache = {}, 0, {
  10504. get: function() {
  10505. return {};
  10506. }
  10507. });
  10508. this.expando = jQuery.expando + Data.uid++;
  10509. }
  10510. Data.uid = 1;
  10511. Data.accepts = jQuery.acceptData;
  10512. Data.prototype = {
  10513. key: function( owner ) {
  10514. // We can accept data for non-element nodes in modern browsers,
  10515. // but we should not, see #8335.
  10516. // Always return the key for a frozen object.
  10517. if ( !Data.accepts( owner ) ) {
  10518. return 0;
  10519. }
  10520. var descriptor = {},
  10521. // Check if the owner object already has a cache key
  10522. unlock = owner[ this.expando ];
  10523. // If not, create one
  10524. if ( !unlock ) {
  10525. unlock = Data.uid++;
  10526. // Secure it in a non-enumerable, non-writable property
  10527. try {
  10528. descriptor[ this.expando ] = { value: unlock };
  10529. Object.defineProperties( owner, descriptor );
  10530. // Support: Android<4
  10531. // Fallback to a less secure definition
  10532. } catch ( e ) {
  10533. descriptor[ this.expando ] = unlock;
  10534. jQuery.extend( owner, descriptor );
  10535. }
  10536. }
  10537. // Ensure the cache object
  10538. if ( !this.cache[ unlock ] ) {
  10539. this.cache[ unlock ] = {};
  10540. }
  10541. return unlock;
  10542. },
  10543. set: function( owner, data, value ) {
  10544. var prop,
  10545. // There may be an unlock assigned to this node,
  10546. // if there is no entry for this "owner", create one inline
  10547. // and set the unlock as though an owner entry had always existed
  10548. unlock = this.key( owner ),
  10549. cache = this.cache[ unlock ];
  10550. // Handle: [ owner, key, value ] args
  10551. if ( typeof data === "string" ) {
  10552. cache[ data ] = value;
  10553. // Handle: [ owner, { properties } ] args
  10554. } else {
  10555. // Fresh assignments by object are shallow copied
  10556. if ( jQuery.isEmptyObject( cache ) ) {
  10557. jQuery.extend( this.cache[ unlock ], data );
  10558. // Otherwise, copy the properties one-by-one to the cache object
  10559. } else {
  10560. for ( prop in data ) {
  10561. cache[ prop ] = data[ prop ];
  10562. }
  10563. }
  10564. }
  10565. return cache;
  10566. },
  10567. get: function( owner, key ) {
  10568. // Either a valid cache is found, or will be created.
  10569. // New caches will be created and the unlock returned,
  10570. // allowing direct access to the newly created
  10571. // empty data object. A valid owner object must be provided.
  10572. var cache = this.cache[ this.key( owner ) ];
  10573. return key === undefined ?
  10574. cache : cache[ key ];
  10575. },
  10576. access: function( owner, key, value ) {
  10577. var stored;
  10578. // In cases where either:
  10579. //
  10580. // 1. No key was specified
  10581. // 2. A string key was specified, but no value provided
  10582. //
  10583. // Take the "read" path and allow the get method to determine
  10584. // which value to return, respectively either:
  10585. //
  10586. // 1. The entire cache object
  10587. // 2. The data stored at the key
  10588. //
  10589. if ( key === undefined ||
  10590. ((key && typeof key === "string") && value === undefined) ) {
  10591. stored = this.get( owner, key );
  10592. return stored !== undefined ?
  10593. stored : this.get( owner, jQuery.camelCase(key) );
  10594. }
  10595. // [*]When the key is not a string, or both a key and value
  10596. // are specified, set or extend (existing objects) with either:
  10597. //
  10598. // 1. An object of properties
  10599. // 2. A key and value
  10600. //
  10601. this.set( owner, key, value );
  10602. // Since the "set" path can have two possible entry points
  10603. // return the expected data based on which path was taken[*]
  10604. return value !== undefined ? value : key;
  10605. },
  10606. remove: function( owner, key ) {
  10607. var i, name, camel,
  10608. unlock = this.key( owner ),
  10609. cache = this.cache[ unlock ];
  10610. if ( key === undefined ) {
  10611. this.cache[ unlock ] = {};
  10612. } else {
  10613. // Support array or space separated string of keys
  10614. if ( jQuery.isArray( key ) ) {
  10615. // If "name" is an array of keys...
  10616. // When data is initially created, via ("key", "val") signature,
  10617. // keys will be converted to camelCase.
  10618. // Since there is no way to tell _how_ a key was added, remove
  10619. // both plain key and camelCase key. #12786
  10620. // This will only penalize the array argument path.
  10621. name = key.concat( key.map( jQuery.camelCase ) );
  10622. } else {
  10623. camel = jQuery.camelCase( key );
  10624. // Try the string as a key before any manipulation
  10625. if ( key in cache ) {
  10626. name = [ key, camel ];
  10627. } else {
  10628. // If a key with the spaces exists, use it.
  10629. // Otherwise, create an array by matching non-whitespace
  10630. name = camel;
  10631. name = name in cache ?
  10632. [ name ] : ( name.match( rnotwhite ) || [] );
  10633. }
  10634. }
  10635. i = name.length;
  10636. while ( i-- ) {
  10637. delete cache[ name[ i ] ];
  10638. }
  10639. }
  10640. },
  10641. hasData: function( owner ) {
  10642. return !jQuery.isEmptyObject(
  10643. this.cache[ owner[ this.expando ] ] || {}
  10644. );
  10645. },
  10646. discard: function( owner ) {
  10647. if ( owner[ this.expando ] ) {
  10648. delete this.cache[ owner[ this.expando ] ];
  10649. }
  10650. }
  10651. };
  10652. var data_priv = new Data();
  10653. var data_user = new Data();
  10654. // Implementation Summary
  10655. //
  10656. // 1. Enforce API surface and semantic compatibility with 1.9.x branch
  10657. // 2. Improve the module's maintainability by reducing the storage
  10658. // paths to a single mechanism.
  10659. // 3. Use the same single mechanism to support "private" and "user" data.
  10660. // 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
  10661. // 5. Avoid exposing implementation details on user objects (eg. expando properties)
  10662. // 6. Provide a clear path for implementation upgrade to WeakMap in 2014
  10663. var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
  10664. rmultiDash = /([A-Z])/g;
  10665. function dataAttr( elem, key, data ) {
  10666. var name;
  10667. // If nothing was found internally, try to fetch any
  10668. // data from the HTML5 data-* attribute
  10669. if ( data === undefined && elem.nodeType === 1 ) {
  10670. name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
  10671. data = elem.getAttribute( name );
  10672. if ( typeof data === "string" ) {
  10673. try {
  10674. data = data === "true" ? true :
  10675. data === "false" ? false :
  10676. data === "null" ? null :
  10677. // Only convert to a number if it doesn't change the string
  10678. +data + "" === data ? +data :
  10679. rbrace.test( data ) ? jQuery.parseJSON( data ) :
  10680. data;
  10681. } catch( e ) {}
  10682. // Make sure we set the data so it isn't changed later
  10683. data_user.set( elem, key, data );
  10684. } else {
  10685. data = undefined;
  10686. }
  10687. }
  10688. return data;
  10689. }
  10690. jQuery.extend({
  10691. hasData: function( elem ) {
  10692. return data_user.hasData( elem ) || data_priv.hasData( elem );
  10693. },
  10694. data: function( elem, name, data ) {
  10695. return data_user.access( elem, name, data );
  10696. },
  10697. removeData: function( elem, name ) {
  10698. data_user.remove( elem, name );
  10699. },
  10700. // TODO: Now that all calls to _data and _removeData have been replaced
  10701. // with direct calls to data_priv methods, these can be deprecated.
  10702. _data: function( elem, name, data ) {
  10703. return data_priv.access( elem, name, data );
  10704. },
  10705. _removeData: function( elem, name ) {
  10706. data_priv.remove( elem, name );
  10707. }
  10708. });
  10709. jQuery.fn.extend({
  10710. data: function( key, value ) {
  10711. var i, name, data,
  10712. elem = this[ 0 ],
  10713. attrs = elem && elem.attributes;
  10714. // Gets all values
  10715. if ( key === undefined ) {
  10716. if ( this.length ) {
  10717. data = data_user.get( elem );
  10718. if ( elem.nodeType === 1 && !data_priv.get( elem, "hasDataAttrs" ) ) {
  10719. i = attrs.length;
  10720. while ( i-- ) {
  10721. // Support: IE11+
  10722. // The attrs elements can be null (#14894)
  10723. if ( attrs[ i ] ) {
  10724. name = attrs[ i ].name;
  10725. if ( name.indexOf( "data-" ) === 0 ) {
  10726. name = jQuery.camelCase( name.slice(5) );
  10727. dataAttr( elem, name, data[ name ] );
  10728. }
  10729. }
  10730. }
  10731. data_priv.set( elem, "hasDataAttrs", true );
  10732. }
  10733. }
  10734. return data;
  10735. }
  10736. // Sets multiple values
  10737. if ( typeof key === "object" ) {
  10738. return this.each(function() {
  10739. data_user.set( this, key );
  10740. });
  10741. }
  10742. return access( this, function( value ) {
  10743. var data,
  10744. camelKey = jQuery.camelCase( key );
  10745. // The calling jQuery object (element matches) is not empty
  10746. // (and therefore has an element appears at this[ 0 ]) and the
  10747. // `value` parameter was not undefined. An empty jQuery object
  10748. // will result in `undefined` for elem = this[ 0 ] which will
  10749. // throw an exception if an attempt to read a data cache is made.
  10750. if ( elem && value === undefined ) {
  10751. // Attempt to get data from the cache
  10752. // with the key as-is
  10753. data = data_user.get( elem, key );
  10754. if ( data !== undefined ) {
  10755. return data;
  10756. }
  10757. // Attempt to get data from the cache
  10758. // with the key camelized
  10759. data = data_user.get( elem, camelKey );
  10760. if ( data !== undefined ) {
  10761. return data;
  10762. }
  10763. // Attempt to "discover" the data in
  10764. // HTML5 custom data-* attrs
  10765. data = dataAttr( elem, camelKey, undefined );
  10766. if ( data !== undefined ) {
  10767. return data;
  10768. }
  10769. // We tried really hard, but the data doesn't exist.
  10770. return;
  10771. }
  10772. // Set the data...
  10773. this.each(function() {
  10774. // First, attempt to store a copy or reference of any
  10775. // data that might've been store with a camelCased key.
  10776. var data = data_user.get( this, camelKey );
  10777. // For HTML5 data-* attribute interop, we have to
  10778. // store property names with dashes in a camelCase form.
  10779. // This might not apply to all properties...*
  10780. data_user.set( this, camelKey, value );
  10781. // *... In the case of properties that might _actually_
  10782. // have dashes, we need to also store a copy of that
  10783. // unchanged property.
  10784. if ( key.indexOf("-") !== -1 && data !== undefined ) {
  10785. data_user.set( this, key, value );
  10786. }
  10787. });
  10788. }, null, value, arguments.length > 1, null, true );
  10789. },
  10790. removeData: function( key ) {
  10791. return this.each(function() {
  10792. data_user.remove( this, key );
  10793. });
  10794. }
  10795. });
  10796. jQuery.extend({
  10797. queue: function( elem, type, data ) {
  10798. var queue;
  10799. if ( elem ) {
  10800. type = ( type || "fx" ) + "queue";
  10801. queue = data_priv.get( elem, type );
  10802. // Speed up dequeue by getting out quickly if this is just a lookup
  10803. if ( data ) {
  10804. if ( !queue || jQuery.isArray( data ) ) {
  10805. queue = data_priv.access( elem, type, jQuery.makeArray(data) );
  10806. } else {
  10807. queue.push( data );
  10808. }
  10809. }
  10810. return queue || [];
  10811. }
  10812. },
  10813. dequeue: function( elem, type ) {
  10814. type = type || "fx";
  10815. var queue = jQuery.queue( elem, type ),
  10816. startLength = queue.length,
  10817. fn = queue.shift(),
  10818. hooks = jQuery._queueHooks( elem, type ),
  10819. next = function() {
  10820. jQuery.dequeue( elem, type );
  10821. };
  10822. // If the fx queue is dequeued, always remove the progress sentinel
  10823. if ( fn === "inprogress" ) {
  10824. fn = queue.shift();
  10825. startLength--;
  10826. }
  10827. if ( fn ) {
  10828. // Add a progress sentinel to prevent the fx queue from being
  10829. // automatically dequeued
  10830. if ( type === "fx" ) {
  10831. queue.unshift( "inprogress" );
  10832. }
  10833. // Clear up the last queue stop function
  10834. delete hooks.stop;
  10835. fn.call( elem, next, hooks );
  10836. }
  10837. if ( !startLength && hooks ) {
  10838. hooks.empty.fire();
  10839. }
  10840. },
  10841. // Not public - generate a queueHooks object, or return the current one
  10842. _queueHooks: function( elem, type ) {
  10843. var key = type + "queueHooks";
  10844. return data_priv.get( elem, key ) || data_priv.access( elem, key, {
  10845. empty: jQuery.Callbacks("once memory").add(function() {
  10846. data_priv.remove( elem, [ type + "queue", key ] );
  10847. })
  10848. });
  10849. }
  10850. });
  10851. jQuery.fn.extend({
  10852. queue: function( type, data ) {
  10853. var setter = 2;
  10854. if ( typeof type !== "string" ) {
  10855. data = type;
  10856. type = "fx";
  10857. setter--;
  10858. }
  10859. if ( arguments.length < setter ) {
  10860. return jQuery.queue( this[0], type );
  10861. }
  10862. return data === undefined ?
  10863. this :
  10864. this.each(function() {
  10865. var queue = jQuery.queue( this, type, data );
  10866. // Ensure a hooks for this queue
  10867. jQuery._queueHooks( this, type );
  10868. if ( type === "fx" && queue[0] !== "inprogress" ) {
  10869. jQuery.dequeue( this, type );
  10870. }
  10871. });
  10872. },
  10873. dequeue: function( type ) {
  10874. return this.each(function() {
  10875. jQuery.dequeue( this, type );
  10876. });
  10877. },
  10878. clearQueue: function( type ) {
  10879. return this.queue( type || "fx", [] );
  10880. },
  10881. // Get a promise resolved when queues of a certain type
  10882. // are emptied (fx is the type by default)
  10883. promise: function( type, obj ) {
  10884. var tmp,
  10885. count = 1,
  10886. defer = jQuery.Deferred(),
  10887. elements = this,
  10888. i = this.length,
  10889. resolve = function() {
  10890. if ( !( --count ) ) {
  10891. defer.resolveWith( elements, [ elements ] );
  10892. }
  10893. };
  10894. if ( typeof type !== "string" ) {
  10895. obj = type;
  10896. type = undefined;
  10897. }
  10898. type = type || "fx";
  10899. while ( i-- ) {
  10900. tmp = data_priv.get( elements[ i ], type + "queueHooks" );
  10901. if ( tmp && tmp.empty ) {
  10902. count++;
  10903. tmp.empty.add( resolve );
  10904. }
  10905. }
  10906. resolve();
  10907. return defer.promise( obj );
  10908. }
  10909. });
  10910. var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source;
  10911. var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
  10912. var isHidden = function( elem, el ) {
  10913. // isHidden might be called from jQuery#filter function;
  10914. // in that case, element will be second argument
  10915. elem = el || elem;
  10916. return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem );
  10917. };
  10918. var rcheckableType = (/^(?:checkbox|radio)$/i);
  10919. (function() {
  10920. var fragment = document.createDocumentFragment(),
  10921. div = fragment.appendChild( document.createElement( "div" ) ),
  10922. input = document.createElement( "input" );
  10923. // Support: Safari<=5.1
  10924. // Check state lost if the name is set (#11217)
  10925. // Support: Windows Web Apps (WWA)
  10926. // `name` and `type` must use .setAttribute for WWA (#14901)
  10927. input.setAttribute( "type", "radio" );
  10928. input.setAttribute( "checked", "checked" );
  10929. input.setAttribute( "name", "t" );
  10930. div.appendChild( input );
  10931. // Support: Safari<=5.1, Android<4.2
  10932. // Older WebKit doesn't clone checked state correctly in fragments
  10933. support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
  10934. // Support: IE<=11+
  10935. // Make sure textarea (and checkbox) defaultValue is properly cloned
  10936. div.innerHTML = "<textarea>x</textarea>";
  10937. support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
  10938. })();
  10939. var strundefined = typeof undefined;
  10940. support.focusinBubbles = "onfocusin" in window;
  10941. var
  10942. rkeyEvent = /^key/,
  10943. rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,
  10944. rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
  10945. rtypenamespace = /^([^.]*)(?:\.(.+)|)$/;
  10946. function returnTrue() {
  10947. return true;
  10948. }
  10949. function returnFalse() {
  10950. return false;
  10951. }
  10952. function safeActiveElement() {
  10953. try {
  10954. return document.activeElement;
  10955. } catch ( err ) { }
  10956. }
  10957. /*
  10958. * Helper functions for managing events -- not part of the public interface.
  10959. * Props to Dean Edwards' addEvent library for many of the ideas.
  10960. */
  10961. jQuery.event = {
  10962. global: {},
  10963. add: function( elem, types, handler, data, selector ) {
  10964. var handleObjIn, eventHandle, tmp,
  10965. events, t, handleObj,
  10966. special, handlers, type, namespaces, origType,
  10967. elemData = data_priv.get( elem );
  10968. // Don't attach events to noData or text/comment nodes (but allow plain objects)
  10969. if ( !elemData ) {
  10970. return;
  10971. }
  10972. // Caller can pass in an object of custom data in lieu of the handler
  10973. if ( handler.handler ) {
  10974. handleObjIn = handler;
  10975. handler = handleObjIn.handler;
  10976. selector = handleObjIn.selector;
  10977. }
  10978. // Make sure that the handler has a unique ID, used to find/remove it later
  10979. if ( !handler.guid ) {
  10980. handler.guid = jQuery.guid++;
  10981. }
  10982. // Init the element's event structure and main handler, if this is the first
  10983. if ( !(events = elemData.events) ) {
  10984. events = elemData.events = {};
  10985. }
  10986. if ( !(eventHandle = elemData.handle) ) {
  10987. eventHandle = elemData.handle = function( e ) {
  10988. // Discard the second event of a jQuery.event.trigger() and
  10989. // when an event is called after a page has unloaded
  10990. return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ?
  10991. jQuery.event.dispatch.apply( elem, arguments ) : undefined;
  10992. };
  10993. }
  10994. // Handle multiple events separated by a space
  10995. types = ( types || "" ).match( rnotwhite ) || [ "" ];
  10996. t = types.length;
  10997. while ( t-- ) {
  10998. tmp = rtypenamespace.exec( types[t] ) || [];
  10999. type = origType = tmp[1];
  11000. namespaces = ( tmp[2] || "" ).split( "." ).sort();
  11001. // There *must* be a type, no attaching namespace-only handlers
  11002. if ( !type ) {
  11003. continue;
  11004. }
  11005. // If event changes its type, use the special event handlers for the changed type
  11006. special = jQuery.event.special[ type ] || {};
  11007. // If selector defined, determine special event api type, otherwise given type
  11008. type = ( selector ? special.delegateType : special.bindType ) || type;
  11009. // Update special based on newly reset type
  11010. special = jQuery.event.special[ type ] || {};
  11011. // handleObj is passed to all event handlers
  11012. handleObj = jQuery.extend({
  11013. type: type,
  11014. origType: origType,
  11015. data: data,
  11016. handler: handler,
  11017. guid: handler.guid,
  11018. selector: selector,
  11019. needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
  11020. namespace: namespaces.join(".")
  11021. }, handleObjIn );
  11022. // Init the event handler queue if we're the first
  11023. if ( !(handlers = events[ type ]) ) {
  11024. handlers = events[ type ] = [];
  11025. handlers.delegateCount = 0;
  11026. // Only use addEventListener if the special events handler returns false
  11027. if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
  11028. if ( elem.addEventListener ) {
  11029. elem.addEventListener( type, eventHandle, false );
  11030. }
  11031. }
  11032. }
  11033. if ( special.add ) {
  11034. special.add.call( elem, handleObj );
  11035. if ( !handleObj.handler.guid ) {
  11036. handleObj.handler.guid = handler.guid;
  11037. }
  11038. }
  11039. // Add to the element's handler list, delegates in front
  11040. if ( selector ) {
  11041. handlers.splice( handlers.delegateCount++, 0, handleObj );
  11042. } else {
  11043. handlers.push( handleObj );
  11044. }
  11045. // Keep track of which events have ever been used, for event optimization
  11046. jQuery.event.global[ type ] = true;
  11047. }
  11048. },
  11049. // Detach an event or set of events from an element
  11050. remove: function( elem, types, handler, selector, mappedTypes ) {
  11051. var j, origCount, tmp,
  11052. events, t, handleObj,
  11053. special, handlers, type, namespaces, origType,
  11054. elemData = data_priv.hasData( elem ) && data_priv.get( elem );
  11055. if ( !elemData || !(events = elemData.events) ) {
  11056. return;
  11057. }
  11058. // Once for each type.namespace in types; type may be omitted
  11059. types = ( types || "" ).match( rnotwhite ) || [ "" ];
  11060. t = types.length;
  11061. while ( t-- ) {
  11062. tmp = rtypenamespace.exec( types[t] ) || [];
  11063. type = origType = tmp[1];
  11064. namespaces = ( tmp[2] || "" ).split( "." ).sort();
  11065. // Unbind all events (on this namespace, if provided) for the element
  11066. if ( !type ) {
  11067. for ( type in events ) {
  11068. jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
  11069. }
  11070. continue;
  11071. }
  11072. special = jQuery.event.special[ type ] || {};
  11073. type = ( selector ? special.delegateType : special.bindType ) || type;
  11074. handlers = events[ type ] || [];
  11075. tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" );
  11076. // Remove matching events
  11077. origCount = j = handlers.length;
  11078. while ( j-- ) {
  11079. handleObj = handlers[ j ];
  11080. if ( ( mappedTypes || origType === handleObj.origType ) &&
  11081. ( !handler || handler.guid === handleObj.guid ) &&
  11082. ( !tmp || tmp.test( handleObj.namespace ) ) &&
  11083. ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) {
  11084. handlers.splice( j, 1 );
  11085. if ( handleObj.selector ) {
  11086. handlers.delegateCount--;
  11087. }
  11088. if ( special.remove ) {
  11089. special.remove.call( elem, handleObj );
  11090. }
  11091. }
  11092. }
  11093. // Remove generic event handler if we removed something and no more handlers exist
  11094. // (avoids potential for endless recursion during removal of special event handlers)
  11095. if ( origCount && !handlers.length ) {
  11096. if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
  11097. jQuery.removeEvent( elem, type, elemData.handle );
  11098. }
  11099. delete events[ type ];
  11100. }
  11101. }
  11102. // Remove the expando if it's no longer used
  11103. if ( jQuery.isEmptyObject( events ) ) {
  11104. delete elemData.handle;
  11105. data_priv.remove( elem, "events" );
  11106. }
  11107. },
  11108. trigger: function( event, data, elem, onlyHandlers ) {
  11109. var i, cur, tmp, bubbleType, ontype, handle, special,
  11110. eventPath = [ elem || document ],
  11111. type = hasOwn.call( event, "type" ) ? event.type : event,
  11112. namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : [];
  11113. cur = tmp = elem = elem || document;
  11114. // Don't do events on text and comment nodes
  11115. if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
  11116. return;
  11117. }
  11118. // focus/blur morphs to focusin/out; ensure we're not firing them right now
  11119. if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
  11120. return;
  11121. }
  11122. if ( type.indexOf(".") >= 0 ) {
  11123. // Namespaced trigger; create a regexp to match event type in handle()
  11124. namespaces = type.split(".");
  11125. type = namespaces.shift();
  11126. namespaces.sort();
  11127. }
  11128. ontype = type.indexOf(":") < 0 && "on" + type;
  11129. // Caller can pass in a jQuery.Event object, Object, or just an event type string
  11130. event = event[ jQuery.expando ] ?
  11131. event :
  11132. new jQuery.Event( type, typeof event === "object" && event );
  11133. // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
  11134. event.isTrigger = onlyHandlers ? 2 : 3;
  11135. event.namespace = namespaces.join(".");
  11136. event.namespace_re = event.namespace ?
  11137. new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) :
  11138. null;
  11139. // Clean up the event in case it is being reused
  11140. event.result = undefined;
  11141. if ( !event.target ) {
  11142. event.target = elem;
  11143. }
  11144. // Clone any incoming data and prepend the event, creating the handler arg list
  11145. data = data == null ?
  11146. [ event ] :
  11147. jQuery.makeArray( data, [ event ] );
  11148. // Allow special events to draw outside the lines
  11149. special = jQuery.event.special[ type ] || {};
  11150. if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
  11151. return;
  11152. }
  11153. // Determine event propagation path in advance, per W3C events spec (#9951)
  11154. // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
  11155. if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
  11156. bubbleType = special.delegateType || type;
  11157. if ( !rfocusMorph.test( bubbleType + type ) ) {
  11158. cur = cur.parentNode;
  11159. }
  11160. for ( ; cur; cur = cur.parentNode ) {
  11161. eventPath.push( cur );
  11162. tmp = cur;
  11163. }
  11164. // Only add window if we got to document (e.g., not plain obj or detached DOM)
  11165. if ( tmp === (elem.ownerDocument || document) ) {
  11166. eventPath.push( tmp.defaultView || tmp.parentWindow || window );
  11167. }
  11168. }
  11169. // Fire handlers on the event path
  11170. i = 0;
  11171. while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {
  11172. event.type = i > 1 ?
  11173. bubbleType :
  11174. special.bindType || type;
  11175. // jQuery handler
  11176. handle = ( data_priv.get( cur, "events" ) || {} )[ event.type ] && data_priv.get( cur, "handle" );
  11177. if ( handle ) {
  11178. handle.apply( cur, data );
  11179. }
  11180. // Native handler
  11181. handle = ontype && cur[ ontype ];
  11182. if ( handle && handle.apply && jQuery.acceptData( cur ) ) {
  11183. event.result = handle.apply( cur, data );
  11184. if ( event.result === false ) {
  11185. event.preventDefault();
  11186. }
  11187. }
  11188. }
  11189. event.type = type;
  11190. // If nobody prevented the default action, do it now
  11191. if ( !onlyHandlers && !event.isDefaultPrevented() ) {
  11192. if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&
  11193. jQuery.acceptData( elem ) ) {
  11194. // Call a native DOM method on the target with the same name name as the event.
  11195. // Don't do default actions on window, that's where global variables be (#6170)
  11196. if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
  11197. // Don't re-trigger an onFOO event when we call its FOO() method
  11198. tmp = elem[ ontype ];
  11199. if ( tmp ) {
  11200. elem[ ontype ] = null;
  11201. }
  11202. // Prevent re-triggering of the same event, since we already bubbled it above
  11203. jQuery.event.triggered = type;
  11204. elem[ type ]();
  11205. jQuery.event.triggered = undefined;
  11206. if ( tmp ) {
  11207. elem[ ontype ] = tmp;
  11208. }
  11209. }
  11210. }
  11211. }
  11212. return event.result;
  11213. },
  11214. dispatch: function( event ) {
  11215. // Make a writable jQuery.Event from the native event object
  11216. event = jQuery.event.fix( event );
  11217. var i, j, ret, matched, handleObj,
  11218. handlerQueue = [],
  11219. args = slice.call( arguments ),
  11220. handlers = ( data_priv.get( this, "events" ) || {} )[ event.type ] || [],
  11221. special = jQuery.event.special[ event.type ] || {};
  11222. // Use the fix-ed jQuery.Event rather than the (read-only) native event
  11223. args[0] = event;
  11224. event.delegateTarget = this;
  11225. // Call the preDispatch hook for the mapped type, and let it bail if desired
  11226. if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
  11227. return;
  11228. }
  11229. // Determine handlers
  11230. handlerQueue = jQuery.event.handlers.call( this, event, handlers );
  11231. // Run delegates first; they may want to stop propagation beneath us
  11232. i = 0;
  11233. while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {
  11234. event.currentTarget = matched.elem;
  11235. j = 0;
  11236. while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {
  11237. // Triggered event must either 1) have no namespace, or 2) have namespace(s)
  11238. // a subset or equal to those in the bound event (both can have no namespace).
  11239. if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {
  11240. event.handleObj = handleObj;
  11241. event.data = handleObj.data;
  11242. ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
  11243. .apply( matched.elem, args );
  11244. if ( ret !== undefined ) {
  11245. if ( (event.result = ret) === false ) {
  11246. event.preventDefault();
  11247. event.stopPropagation();
  11248. }
  11249. }
  11250. }
  11251. }
  11252. }
  11253. // Call the postDispatch hook for the mapped type
  11254. if ( special.postDispatch ) {
  11255. special.postDispatch.call( this, event );
  11256. }
  11257. return event.result;
  11258. },
  11259. handlers: function( event, handlers ) {
  11260. var i, matches, sel, handleObj,
  11261. handlerQueue = [],
  11262. delegateCount = handlers.delegateCount,
  11263. cur = event.target;
  11264. // Find delegate handlers
  11265. // Black-hole SVG <use> instance trees (#13180)
  11266. // Avoid non-left-click bubbling in Firefox (#3861)
  11267. if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) {
  11268. for ( ; cur !== this; cur = cur.parentNode || this ) {
  11269. // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
  11270. if ( cur.disabled !== true || event.type !== "click" ) {
  11271. matches = [];
  11272. for ( i = 0; i < delegateCount; i++ ) {
  11273. handleObj = handlers[ i ];
  11274. // Don't conflict with Object.prototype properties (#13203)
  11275. sel = handleObj.selector + " ";
  11276. if ( matches[ sel ] === undefined ) {
  11277. matches[ sel ] = handleObj.needsContext ?
  11278. jQuery( sel, this ).index( cur ) >= 0 :
  11279. jQuery.find( sel, this, null, [ cur ] ).length;
  11280. }
  11281. if ( matches[ sel ] ) {
  11282. matches.push( handleObj );
  11283. }
  11284. }
  11285. if ( matches.length ) {
  11286. handlerQueue.push({ elem: cur, handlers: matches });
  11287. }
  11288. }
  11289. }
  11290. }
  11291. // Add the remaining (directly-bound) handlers
  11292. if ( delegateCount < handlers.length ) {
  11293. handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });
  11294. }
  11295. return handlerQueue;
  11296. },
  11297. // Includes some event props shared by KeyEvent and MouseEvent
  11298. props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
  11299. fixHooks: {},
  11300. keyHooks: {
  11301. props: "char charCode key keyCode".split(" "),
  11302. filter: function( event, original ) {
  11303. // Add which for key events
  11304. if ( event.which == null ) {
  11305. event.which = original.charCode != null ? original.charCode : original.keyCode;
  11306. }
  11307. return event;
  11308. }
  11309. },
  11310. mouseHooks: {
  11311. props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
  11312. filter: function( event, original ) {
  11313. var eventDoc, doc, body,
  11314. button = original.button;
  11315. // Calculate pageX/Y if missing and clientX/Y available
  11316. if ( event.pageX == null && original.clientX != null ) {
  11317. eventDoc = event.target.ownerDocument || document;
  11318. doc = eventDoc.documentElement;
  11319. body = eventDoc.body;
  11320. event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );
  11321. event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );
  11322. }
  11323. // Add which for click: 1 === left; 2 === middle; 3 === right
  11324. // Note: button is not normalized, so don't use it
  11325. if ( !event.which && button !== undefined ) {
  11326. event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
  11327. }
  11328. return event;
  11329. }
  11330. },
  11331. fix: function( event ) {
  11332. if ( event[ jQuery.expando ] ) {
  11333. return event;
  11334. }
  11335. // Create a writable copy of the event object and normalize some properties
  11336. var i, prop, copy,
  11337. type = event.type,
  11338. originalEvent = event,
  11339. fixHook = this.fixHooks[ type ];
  11340. if ( !fixHook ) {
  11341. this.fixHooks[ type ] = fixHook =
  11342. rmouseEvent.test( type ) ? this.mouseHooks :
  11343. rkeyEvent.test( type ) ? this.keyHooks :
  11344. {};
  11345. }
  11346. copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
  11347. event = new jQuery.Event( originalEvent );
  11348. i = copy.length;
  11349. while ( i-- ) {
  11350. prop = copy[ i ];
  11351. event[ prop ] = originalEvent[ prop ];
  11352. }
  11353. // Support: Cordova 2.5 (WebKit) (#13255)
  11354. // All events should have a target; Cordova deviceready doesn't
  11355. if ( !event.target ) {
  11356. event.target = document;
  11357. }
  11358. // Support: Safari 6.0+, Chrome<28
  11359. // Target should not be a text node (#504, #13143)
  11360. if ( event.target.nodeType === 3 ) {
  11361. event.target = event.target.parentNode;
  11362. }
  11363. return fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
  11364. },
  11365. special: {
  11366. load: {
  11367. // Prevent triggered image.load events from bubbling to window.load
  11368. noBubble: true
  11369. },
  11370. focus: {
  11371. // Fire native event if possible so blur/focus sequence is correct
  11372. trigger: function() {
  11373. if ( this !== safeActiveElement() && this.focus ) {
  11374. this.focus();
  11375. return false;
  11376. }
  11377. },
  11378. delegateType: "focusin"
  11379. },
  11380. blur: {
  11381. trigger: function() {
  11382. if ( this === safeActiveElement() && this.blur ) {
  11383. this.blur();
  11384. return false;
  11385. }
  11386. },
  11387. delegateType: "focusout"
  11388. },
  11389. click: {
  11390. // For checkbox, fire native event so checked state will be right
  11391. trigger: function() {
  11392. if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) {
  11393. this.click();
  11394. return false;
  11395. }
  11396. },
  11397. // For cross-browser consistency, don't fire native .click() on links
  11398. _default: function( event ) {
  11399. return jQuery.nodeName( event.target, "a" );
  11400. }
  11401. },
  11402. beforeunload: {
  11403. postDispatch: function( event ) {
  11404. // Support: Firefox 20+
  11405. // Firefox doesn't alert if the returnValue field is not set.
  11406. if ( event.result !== undefined && event.originalEvent ) {
  11407. event.originalEvent.returnValue = event.result;
  11408. }
  11409. }
  11410. }
  11411. },
  11412. simulate: function( type, elem, event, bubble ) {
  11413. // Piggyback on a donor event to simulate a different one.
  11414. // Fake originalEvent to avoid donor's stopPropagation, but if the
  11415. // simulated event prevents default then we do the same on the donor.
  11416. var e = jQuery.extend(
  11417. new jQuery.Event(),
  11418. event,
  11419. {
  11420. type: type,
  11421. isSimulated: true,
  11422. originalEvent: {}
  11423. }
  11424. );
  11425. if ( bubble ) {
  11426. jQuery.event.trigger( e, null, elem );
  11427. } else {
  11428. jQuery.event.dispatch.call( elem, e );
  11429. }
  11430. if ( e.isDefaultPrevented() ) {
  11431. event.preventDefault();
  11432. }
  11433. }
  11434. };
  11435. jQuery.removeEvent = function( elem, type, handle ) {
  11436. if ( elem.removeEventListener ) {
  11437. elem.removeEventListener( type, handle, false );
  11438. }
  11439. };
  11440. jQuery.Event = function( src, props ) {
  11441. // Allow instantiation without the 'new' keyword
  11442. if ( !(this instanceof jQuery.Event) ) {
  11443. return new jQuery.Event( src, props );
  11444. }
  11445. // Event object
  11446. if ( src && src.type ) {
  11447. this.originalEvent = src;
  11448. this.type = src.type;
  11449. // Events bubbling up the document may have been marked as prevented
  11450. // by a handler lower down the tree; reflect the correct value.
  11451. this.isDefaultPrevented = src.defaultPrevented ||
  11452. src.defaultPrevented === undefined &&
  11453. // Support: Android<4.0
  11454. src.returnValue === false ?
  11455. returnTrue :
  11456. returnFalse;
  11457. // Event type
  11458. } else {
  11459. this.type = src;
  11460. }
  11461. // Put explicitly provided properties onto the event object
  11462. if ( props ) {
  11463. jQuery.extend( this, props );
  11464. }
  11465. // Create a timestamp if incoming event doesn't have one
  11466. this.timeStamp = src && src.timeStamp || jQuery.now();
  11467. // Mark it as fixed
  11468. this[ jQuery.expando ] = true;
  11469. };
  11470. // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
  11471. // http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
  11472. jQuery.Event.prototype = {
  11473. isDefaultPrevented: returnFalse,
  11474. isPropagationStopped: returnFalse,
  11475. isImmediatePropagationStopped: returnFalse,
  11476. preventDefault: function() {
  11477. var e = this.originalEvent;
  11478. this.isDefaultPrevented = returnTrue;
  11479. if ( e && e.preventDefault ) {
  11480. e.preventDefault();
  11481. }
  11482. },
  11483. stopPropagation: function() {
  11484. var e = this.originalEvent;
  11485. this.isPropagationStopped = returnTrue;
  11486. if ( e && e.stopPropagation ) {
  11487. e.stopPropagation();
  11488. }
  11489. },
  11490. stopImmediatePropagation: function() {
  11491. var e = this.originalEvent;
  11492. this.isImmediatePropagationStopped = returnTrue;
  11493. if ( e && e.stopImmediatePropagation ) {
  11494. e.stopImmediatePropagation();
  11495. }
  11496. this.stopPropagation();
  11497. }
  11498. };
  11499. // Create mouseenter/leave events using mouseover/out and event-time checks
  11500. // Support: Chrome 15+
  11501. jQuery.each({
  11502. mouseenter: "mouseover",
  11503. mouseleave: "mouseout",
  11504. pointerenter: "pointerover",
  11505. pointerleave: "pointerout"
  11506. }, function( orig, fix ) {
  11507. jQuery.event.special[ orig ] = {
  11508. delegateType: fix,
  11509. bindType: fix,
  11510. handle: function( event ) {
  11511. var ret,
  11512. target = this,
  11513. related = event.relatedTarget,
  11514. handleObj = event.handleObj;
  11515. // For mousenter/leave call the handler if related is outside the target.
  11516. // NB: No relatedTarget if the mouse left/entered the browser window
  11517. if ( !related || (related !== target && !jQuery.contains( target, related )) ) {
  11518. event.type = handleObj.origType;
  11519. ret = handleObj.handler.apply( this, arguments );
  11520. event.type = fix;
  11521. }
  11522. return ret;
  11523. }
  11524. };
  11525. });
  11526. // Support: Firefox, Chrome, Safari
  11527. // Create "bubbling" focus and blur events
  11528. if ( !support.focusinBubbles ) {
  11529. jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
  11530. // Attach a single capturing handler on the document while someone wants focusin/focusout
  11531. var handler = function( event ) {
  11532. jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );
  11533. };
  11534. jQuery.event.special[ fix ] = {
  11535. setup: function() {
  11536. var doc = this.ownerDocument || this,
  11537. attaches = data_priv.access( doc, fix );
  11538. if ( !attaches ) {
  11539. doc.addEventListener( orig, handler, true );
  11540. }
  11541. data_priv.access( doc, fix, ( attaches || 0 ) + 1 );
  11542. },
  11543. teardown: function() {
  11544. var doc = this.ownerDocument || this,
  11545. attaches = data_priv.access( doc, fix ) - 1;
  11546. if ( !attaches ) {
  11547. doc.removeEventListener( orig, handler, true );
  11548. data_priv.remove( doc, fix );
  11549. } else {
  11550. data_priv.access( doc, fix, attaches );
  11551. }
  11552. }
  11553. };
  11554. });
  11555. }
  11556. jQuery.fn.extend({
  11557. on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
  11558. var origFn, type;
  11559. // Types can be a map of types/handlers
  11560. if ( typeof types === "object" ) {
  11561. // ( types-Object, selector, data )
  11562. if ( typeof selector !== "string" ) {
  11563. // ( types-Object, data )
  11564. data = data || selector;
  11565. selector = undefined;
  11566. }
  11567. for ( type in types ) {
  11568. this.on( type, selector, data, types[ type ], one );
  11569. }
  11570. return this;
  11571. }
  11572. if ( data == null && fn == null ) {
  11573. // ( types, fn )
  11574. fn = selector;
  11575. data = selector = undefined;
  11576. } else if ( fn == null ) {
  11577. if ( typeof selector === "string" ) {
  11578. // ( types, selector, fn )
  11579. fn = data;
  11580. data = undefined;
  11581. } else {
  11582. // ( types, data, fn )
  11583. fn = data;
  11584. data = selector;
  11585. selector = undefined;
  11586. }
  11587. }
  11588. if ( fn === false ) {
  11589. fn = returnFalse;
  11590. } else if ( !fn ) {
  11591. return this;
  11592. }
  11593. if ( one === 1 ) {
  11594. origFn = fn;
  11595. fn = function( event ) {
  11596. // Can use an empty set, since event contains the info
  11597. jQuery().off( event );
  11598. return origFn.apply( this, arguments );
  11599. };
  11600. // Use same guid so caller can remove using origFn
  11601. fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
  11602. }
  11603. return this.each( function() {
  11604. jQuery.event.add( this, types, fn, data, selector );
  11605. });
  11606. },
  11607. one: function( types, selector, data, fn ) {
  11608. return this.on( types, selector, data, fn, 1 );
  11609. },
  11610. off: function( types, selector, fn ) {
  11611. var handleObj, type;
  11612. if ( types && types.preventDefault && types.handleObj ) {
  11613. // ( event ) dispatched jQuery.Event
  11614. handleObj = types.handleObj;
  11615. jQuery( types.delegateTarget ).off(
  11616. handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType,
  11617. handleObj.selector,
  11618. handleObj.handler
  11619. );
  11620. return this;
  11621. }
  11622. if ( typeof types === "object" ) {
  11623. // ( types-object [, selector] )
  11624. for ( type in types ) {
  11625. this.off( type, selector, types[ type ] );
  11626. }
  11627. return this;
  11628. }
  11629. if ( selector === false || typeof selector === "function" ) {
  11630. // ( types [, fn] )
  11631. fn = selector;
  11632. selector = undefined;
  11633. }
  11634. if ( fn === false ) {
  11635. fn = returnFalse;
  11636. }
  11637. return this.each(function() {
  11638. jQuery.event.remove( this, types, fn, selector );
  11639. });
  11640. },
  11641. trigger: function( type, data ) {
  11642. return this.each(function() {
  11643. jQuery.event.trigger( type, data, this );
  11644. });
  11645. },
  11646. triggerHandler: function( type, data ) {
  11647. var elem = this[0];
  11648. if ( elem ) {
  11649. return jQuery.event.trigger( type, data, elem, true );
  11650. }
  11651. }
  11652. });
  11653. var
  11654. rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
  11655. rtagName = /<([\w:]+)/,
  11656. rhtml = /<|&#?\w+;/,
  11657. rnoInnerhtml = /<(?:script|style|link)/i,
  11658. // checked="checked" or checked
  11659. rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
  11660. rscriptType = /^$|\/(?:java|ecma)script/i,
  11661. rscriptTypeMasked = /^true\/(.*)/,
  11662. rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
  11663. // We have to close these tags to support XHTML (#13200)
  11664. wrapMap = {
  11665. // Support: IE9
  11666. option: [ 1, "<select multiple='multiple'>", "</select>" ],
  11667. thead: [ 1, "<table>", "</table>" ],
  11668. col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
  11669. tr: [ 2, "<table><tbody>", "</tbody></table>" ],
  11670. td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
  11671. _default: [ 0, "", "" ]
  11672. };
  11673. // Support: IE9
  11674. wrapMap.optgroup = wrapMap.option;
  11675. wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
  11676. wrapMap.th = wrapMap.td;
  11677. // Support: 1.x compatibility
  11678. // Manipulating tables requires a tbody
  11679. function manipulationTarget( elem, content ) {
  11680. return jQuery.nodeName( elem, "table" ) &&
  11681. jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ?
  11682. elem.getElementsByTagName("tbody")[0] ||
  11683. elem.appendChild( elem.ownerDocument.createElement("tbody") ) :
  11684. elem;
  11685. }
  11686. // Replace/restore the type attribute of script elements for safe DOM manipulation
  11687. function disableScript( elem ) {
  11688. elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type;
  11689. return elem;
  11690. }
  11691. function restoreScript( elem ) {
  11692. var match = rscriptTypeMasked.exec( elem.type );
  11693. if ( match ) {
  11694. elem.type = match[ 1 ];
  11695. } else {
  11696. elem.removeAttribute("type");
  11697. }
  11698. return elem;
  11699. }
  11700. // Mark scripts as having already been evaluated
  11701. function setGlobalEval( elems, refElements ) {
  11702. var i = 0,
  11703. l = elems.length;
  11704. for ( ; i < l; i++ ) {
  11705. data_priv.set(
  11706. elems[ i ], "globalEval", !refElements || data_priv.get( refElements[ i ], "globalEval" )
  11707. );
  11708. }
  11709. }
  11710. function cloneCopyEvent( src, dest ) {
  11711. var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
  11712. if ( dest.nodeType !== 1 ) {
  11713. return;
  11714. }
  11715. // 1. Copy private data: events, handlers, etc.
  11716. if ( data_priv.hasData( src ) ) {
  11717. pdataOld = data_priv.access( src );
  11718. pdataCur = data_priv.set( dest, pdataOld );
  11719. events = pdataOld.events;
  11720. if ( events ) {
  11721. delete pdataCur.handle;
  11722. pdataCur.events = {};
  11723. for ( type in events ) {
  11724. for ( i = 0, l = events[ type ].length; i < l; i++ ) {
  11725. jQuery.event.add( dest, type, events[ type ][ i ] );
  11726. }
  11727. }
  11728. }
  11729. }
  11730. // 2. Copy user data
  11731. if ( data_user.hasData( src ) ) {
  11732. udataOld = data_user.access( src );
  11733. udataCur = jQuery.extend( {}, udataOld );
  11734. data_user.set( dest, udataCur );
  11735. }
  11736. }
  11737. function getAll( context, tag ) {
  11738. var ret = context.getElementsByTagName ? context.getElementsByTagName( tag || "*" ) :
  11739. context.querySelectorAll ? context.querySelectorAll( tag || "*" ) :
  11740. [];
  11741. return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
  11742. jQuery.merge( [ context ], ret ) :
  11743. ret;
  11744. }
  11745. // Fix IE bugs, see support tests
  11746. function fixInput( src, dest ) {
  11747. var nodeName = dest.nodeName.toLowerCase();
  11748. // Fails to persist the checked state of a cloned checkbox or radio button.
  11749. if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
  11750. dest.checked = src.checked;
  11751. // Fails to return the selected option to the default selected state when cloning options
  11752. } else if ( nodeName === "input" || nodeName === "textarea" ) {
  11753. dest.defaultValue = src.defaultValue;
  11754. }
  11755. }
  11756. jQuery.extend({
  11757. clone: function( elem, dataAndEvents, deepDataAndEvents ) {
  11758. var i, l, srcElements, destElements,
  11759. clone = elem.cloneNode( true ),
  11760. inPage = jQuery.contains( elem.ownerDocument, elem );
  11761. // Fix IE cloning issues
  11762. if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
  11763. !jQuery.isXMLDoc( elem ) ) {
  11764. // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2
  11765. destElements = getAll( clone );
  11766. srcElements = getAll( elem );
  11767. for ( i = 0, l = srcElements.length; i < l; i++ ) {
  11768. fixInput( srcElements[ i ], destElements[ i ] );
  11769. }
  11770. }
  11771. // Copy the events from the original to the clone
  11772. if ( dataAndEvents ) {
  11773. if ( deepDataAndEvents ) {
  11774. srcElements = srcElements || getAll( elem );
  11775. destElements = destElements || getAll( clone );
  11776. for ( i = 0, l = srcElements.length; i < l; i++ ) {
  11777. cloneCopyEvent( srcElements[ i ], destElements[ i ] );
  11778. }
  11779. } else {
  11780. cloneCopyEvent( elem, clone );
  11781. }
  11782. }
  11783. // Preserve script evaluation history
  11784. destElements = getAll( clone, "script" );
  11785. if ( destElements.length > 0 ) {
  11786. setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
  11787. }
  11788. // Return the cloned set
  11789. return clone;
  11790. },
  11791. buildFragment: function( elems, context, scripts, selection ) {
  11792. var elem, tmp, tag, wrap, contains, j,
  11793. fragment = context.createDocumentFragment(),
  11794. nodes = [],
  11795. i = 0,
  11796. l = elems.length;
  11797. for ( ; i < l; i++ ) {
  11798. elem = elems[ i ];
  11799. if ( elem || elem === 0 ) {
  11800. // Add nodes directly
  11801. if ( jQuery.type( elem ) === "object" ) {
  11802. // Support: QtWebKit, PhantomJS
  11803. // push.apply(_, arraylike) throws on ancient WebKit
  11804. jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
  11805. // Convert non-html into a text node
  11806. } else if ( !rhtml.test( elem ) ) {
  11807. nodes.push( context.createTextNode( elem ) );
  11808. // Convert html into DOM nodes
  11809. } else {
  11810. tmp = tmp || fragment.appendChild( context.createElement("div") );
  11811. // Deserialize a standard representation
  11812. tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
  11813. wrap = wrapMap[ tag ] || wrapMap._default;
  11814. tmp.innerHTML = wrap[ 1 ] + elem.replace( rxhtmlTag, "<$1></$2>" ) + wrap[ 2 ];
  11815. // Descend through wrappers to the right content
  11816. j = wrap[ 0 ];
  11817. while ( j-- ) {
  11818. tmp = tmp.lastChild;
  11819. }
  11820. // Support: QtWebKit, PhantomJS
  11821. // push.apply(_, arraylike) throws on ancient WebKit
  11822. jQuery.merge( nodes, tmp.childNodes );
  11823. // Remember the top-level container
  11824. tmp = fragment.firstChild;
  11825. // Ensure the created nodes are orphaned (#12392)
  11826. tmp.textContent = "";
  11827. }
  11828. }
  11829. }
  11830. // Remove wrapper from fragment
  11831. fragment.textContent = "";
  11832. i = 0;
  11833. while ( (elem = nodes[ i++ ]) ) {
  11834. // #4087 - If origin and destination elements are the same, and this is
  11835. // that element, do not do anything
  11836. if ( selection && jQuery.inArray( elem, selection ) !== -1 ) {
  11837. continue;
  11838. }
  11839. contains = jQuery.contains( elem.ownerDocument, elem );
  11840. // Append to fragment
  11841. tmp = getAll( fragment.appendChild( elem ), "script" );
  11842. // Preserve script evaluation history
  11843. if ( contains ) {
  11844. setGlobalEval( tmp );
  11845. }
  11846. // Capture executables
  11847. if ( scripts ) {
  11848. j = 0;
  11849. while ( (elem = tmp[ j++ ]) ) {
  11850. if ( rscriptType.test( elem.type || "" ) ) {
  11851. scripts.push( elem );
  11852. }
  11853. }
  11854. }
  11855. }
  11856. return fragment;
  11857. },
  11858. cleanData: function( elems ) {
  11859. var data, elem, type, key,
  11860. special = jQuery.event.special,
  11861. i = 0;
  11862. for ( ; (elem = elems[ i ]) !== undefined; i++ ) {
  11863. if ( jQuery.acceptData( elem ) ) {
  11864. key = elem[ data_priv.expando ];
  11865. if ( key && (data = data_priv.cache[ key ]) ) {
  11866. if ( data.events ) {
  11867. for ( type in data.events ) {
  11868. if ( special[ type ] ) {
  11869. jQuery.event.remove( elem, type );
  11870. // This is a shortcut to avoid jQuery.event.remove's overhead
  11871. } else {
  11872. jQuery.removeEvent( elem, type, data.handle );
  11873. }
  11874. }
  11875. }
  11876. if ( data_priv.cache[ key ] ) {
  11877. // Discard any remaining `private` data
  11878. delete data_priv.cache[ key ];
  11879. }
  11880. }
  11881. }
  11882. // Discard any remaining `user` data
  11883. delete data_user.cache[ elem[ data_user.expando ] ];
  11884. }
  11885. }
  11886. });
  11887. jQuery.fn.extend({
  11888. text: function( value ) {
  11889. return access( this, function( value ) {
  11890. return value === undefined ?
  11891. jQuery.text( this ) :
  11892. this.empty().each(function() {
  11893. if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
  11894. this.textContent = value;
  11895. }
  11896. });
  11897. }, null, value, arguments.length );
  11898. },
  11899. append: function() {
  11900. return this.domManip( arguments, function( elem ) {
  11901. if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
  11902. var target = manipulationTarget( this, elem );
  11903. target.appendChild( elem );
  11904. }
  11905. });
  11906. },
  11907. prepend: function() {
  11908. return this.domManip( arguments, function( elem ) {
  11909. if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
  11910. var target = manipulationTarget( this, elem );
  11911. target.insertBefore( elem, target.firstChild );
  11912. }
  11913. });
  11914. },
  11915. before: function() {
  11916. return this.domManip( arguments, function( elem ) {
  11917. if ( this.parentNode ) {
  11918. this.parentNode.insertBefore( elem, this );
  11919. }
  11920. });
  11921. },
  11922. after: function() {
  11923. return this.domManip( arguments, function( elem ) {
  11924. if ( this.parentNode ) {
  11925. this.parentNode.insertBefore( elem, this.nextSibling );
  11926. }
  11927. });
  11928. },
  11929. remove: function( selector, keepData /* Internal Use Only */ ) {
  11930. var elem,
  11931. elems = selector ? jQuery.filter( selector, this ) : this,
  11932. i = 0;
  11933. for ( ; (elem = elems[i]) != null; i++ ) {
  11934. if ( !keepData && elem.nodeType === 1 ) {
  11935. jQuery.cleanData( getAll( elem ) );
  11936. }
  11937. if ( elem.parentNode ) {
  11938. if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {
  11939. setGlobalEval( getAll( elem, "script" ) );
  11940. }
  11941. elem.parentNode.removeChild( elem );
  11942. }
  11943. }
  11944. return this;
  11945. },
  11946. empty: function() {
  11947. var elem,
  11948. i = 0;
  11949. for ( ; (elem = this[i]) != null; i++ ) {
  11950. if ( elem.nodeType === 1 ) {
  11951. // Prevent memory leaks
  11952. jQuery.cleanData( getAll( elem, false ) );
  11953. // Remove any remaining nodes
  11954. elem.textContent = "";
  11955. }
  11956. }
  11957. return this;
  11958. },
  11959. clone: function( dataAndEvents, deepDataAndEvents ) {
  11960. dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
  11961. deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
  11962. return this.map(function() {
  11963. return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
  11964. });
  11965. },
  11966. html: function( value ) {
  11967. return access( this, function( value ) {
  11968. var elem = this[ 0 ] || {},
  11969. i = 0,
  11970. l = this.length;
  11971. if ( value === undefined && elem.nodeType === 1 ) {
  11972. return elem.innerHTML;
  11973. }
  11974. // See if we can take a shortcut and just use innerHTML
  11975. if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
  11976. !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
  11977. value = value.replace( rxhtmlTag, "<$1></$2>" );
  11978. try {
  11979. for ( ; i < l; i++ ) {
  11980. elem = this[ i ] || {};
  11981. // Remove element nodes and prevent memory leaks
  11982. if ( elem.nodeType === 1 ) {
  11983. jQuery.cleanData( getAll( elem, false ) );
  11984. elem.innerHTML = value;
  11985. }
  11986. }
  11987. elem = 0;
  11988. // If using innerHTML throws an exception, use the fallback method
  11989. } catch( e ) {}
  11990. }
  11991. if ( elem ) {
  11992. this.empty().append( value );
  11993. }
  11994. }, null, value, arguments.length );
  11995. },
  11996. replaceWith: function() {
  11997. var arg = arguments[ 0 ];
  11998. // Make the changes, replacing each context element with the new content
  11999. this.domManip( arguments, function( elem ) {
  12000. arg = this.parentNode;
  12001. jQuery.cleanData( getAll( this ) );
  12002. if ( arg ) {
  12003. arg.replaceChild( elem, this );
  12004. }
  12005. });
  12006. // Force removal if there was no new content (e.g., from empty arguments)
  12007. return arg && (arg.length || arg.nodeType) ? this : this.remove();
  12008. },
  12009. detach: function( selector ) {
  12010. return this.remove( selector, true );
  12011. },
  12012. domManip: function( args, callback ) {
  12013. // Flatten any nested arrays
  12014. args = concat.apply( [], args );
  12015. var fragment, first, scripts, hasScripts, node, doc,
  12016. i = 0,
  12017. l = this.length,
  12018. set = this,
  12019. iNoClone = l - 1,
  12020. value = args[ 0 ],
  12021. isFunction = jQuery.isFunction( value );
  12022. // We can't cloneNode fragments that contain checked, in WebKit
  12023. if ( isFunction ||
  12024. ( l > 1 && typeof value === "string" &&
  12025. !support.checkClone && rchecked.test( value ) ) ) {
  12026. return this.each(function( index ) {
  12027. var self = set.eq( index );
  12028. if ( isFunction ) {
  12029. args[ 0 ] = value.call( this, index, self.html() );
  12030. }
  12031. self.domManip( args, callback );
  12032. });
  12033. }
  12034. if ( l ) {
  12035. fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this );
  12036. first = fragment.firstChild;
  12037. if ( fragment.childNodes.length === 1 ) {
  12038. fragment = first;
  12039. }
  12040. if ( first ) {
  12041. scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
  12042. hasScripts = scripts.length;
  12043. // Use the original fragment for the last item instead of the first because it can end up
  12044. // being emptied incorrectly in certain situations (#8070).
  12045. for ( ; i < l; i++ ) {
  12046. node = fragment;
  12047. if ( i !== iNoClone ) {
  12048. node = jQuery.clone( node, true, true );
  12049. // Keep references to cloned scripts for later restoration
  12050. if ( hasScripts ) {
  12051. // Support: QtWebKit
  12052. // jQuery.merge because push.apply(_, arraylike) throws
  12053. jQuery.merge( scripts, getAll( node, "script" ) );
  12054. }
  12055. }
  12056. callback.call( this[ i ], node, i );
  12057. }
  12058. if ( hasScripts ) {
  12059. doc = scripts[ scripts.length - 1 ].ownerDocument;
  12060. // Reenable scripts
  12061. jQuery.map( scripts, restoreScript );
  12062. // Evaluate executable scripts on first document insertion
  12063. for ( i = 0; i < hasScripts; i++ ) {
  12064. node = scripts[ i ];
  12065. if ( rscriptType.test( node.type || "" ) &&
  12066. !data_priv.access( node, "globalEval" ) && jQuery.contains( doc, node ) ) {
  12067. if ( node.src ) {
  12068. // Optional AJAX dependency, but won't run scripts if not present
  12069. if ( jQuery._evalUrl ) {
  12070. jQuery._evalUrl( node.src );
  12071. }
  12072. } else {
  12073. jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) );
  12074. }
  12075. }
  12076. }
  12077. }
  12078. }
  12079. }
  12080. return this;
  12081. }
  12082. });
  12083. jQuery.each({
  12084. appendTo: "append",
  12085. prependTo: "prepend",
  12086. insertBefore: "before",
  12087. insertAfter: "after",
  12088. replaceAll: "replaceWith"
  12089. }, function( name, original ) {
  12090. jQuery.fn[ name ] = function( selector ) {
  12091. var elems,
  12092. ret = [],
  12093. insert = jQuery( selector ),
  12094. last = insert.length - 1,
  12095. i = 0;
  12096. for ( ; i <= last; i++ ) {
  12097. elems = i === last ? this : this.clone( true );
  12098. jQuery( insert[ i ] )[ original ]( elems );
  12099. // Support: QtWebKit
  12100. // .get() because push.apply(_, arraylike) throws
  12101. push.apply( ret, elems.get() );
  12102. }
  12103. return this.pushStack( ret );
  12104. };
  12105. });
  12106. var iframe,
  12107. elemdisplay = {};
  12108. /**
  12109. * Retrieve the actual display of a element
  12110. * @param {String} name nodeName of the element
  12111. * @param {Object} doc Document object
  12112. */
  12113. // Called only from within defaultDisplay
  12114. function actualDisplay( name, doc ) {
  12115. var style,
  12116. elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
  12117. // getDefaultComputedStyle might be reliably used only on attached element
  12118. display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ?
  12119. // Use of this method is a temporary fix (more like optimization) until something better comes along,
  12120. // since it was removed from specification and supported only in FF
  12121. style.display : jQuery.css( elem[ 0 ], "display" );
  12122. // We don't have any data stored on the element,
  12123. // so use "detach" method as fast way to get rid of the element
  12124. elem.detach();
  12125. return display;
  12126. }
  12127. /**
  12128. * Try to determine the default display value of an element
  12129. * @param {String} nodeName
  12130. */
  12131. function defaultDisplay( nodeName ) {
  12132. var doc = document,
  12133. display = elemdisplay[ nodeName ];
  12134. if ( !display ) {
  12135. display = actualDisplay( nodeName, doc );
  12136. // If the simple way fails, read from inside an iframe
  12137. if ( display === "none" || !display ) {
  12138. // Use the already-created iframe if possible
  12139. iframe = (iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" )).appendTo( doc.documentElement );
  12140. // Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
  12141. doc = iframe[ 0 ].contentDocument;
  12142. // Support: IE
  12143. doc.write();
  12144. doc.close();
  12145. display = actualDisplay( nodeName, doc );
  12146. iframe.detach();
  12147. }
  12148. // Store the correct default display
  12149. elemdisplay[ nodeName ] = display;
  12150. }
  12151. return display;
  12152. }
  12153. var rmargin = (/^margin/);
  12154. var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
  12155. var getStyles = function( elem ) {
  12156. // Support: IE<=11+, Firefox<=30+ (#15098, #14150)
  12157. // IE throws on elements created in popups
  12158. // FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
  12159. if ( elem.ownerDocument.defaultView.opener ) {
  12160. return elem.ownerDocument.defaultView.getComputedStyle( elem, null );
  12161. }
  12162. return window.getComputedStyle( elem, null );
  12163. };
  12164. function curCSS( elem, name, computed ) {
  12165. var width, minWidth, maxWidth, ret,
  12166. style = elem.style;
  12167. computed = computed || getStyles( elem );
  12168. // Support: IE9
  12169. // getPropertyValue is only needed for .css('filter') (#12537)
  12170. if ( computed ) {
  12171. ret = computed.getPropertyValue( name ) || computed[ name ];
  12172. }
  12173. if ( computed ) {
  12174. if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
  12175. ret = jQuery.style( elem, name );
  12176. }
  12177. // Support: iOS < 6
  12178. // A tribute to the "awesome hack by Dean Edwards"
  12179. // iOS < 6 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels
  12180. // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
  12181. if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {
  12182. // Remember the original values
  12183. width = style.width;
  12184. minWidth = style.minWidth;
  12185. maxWidth = style.maxWidth;
  12186. // Put in the new values to get a computed value out
  12187. style.minWidth = style.maxWidth = style.width = ret;
  12188. ret = computed.width;
  12189. // Revert the changed values
  12190. style.width = width;
  12191. style.minWidth = minWidth;
  12192. style.maxWidth = maxWidth;
  12193. }
  12194. }
  12195. return ret !== undefined ?
  12196. // Support: IE
  12197. // IE returns zIndex value as an integer.
  12198. ret + "" :
  12199. ret;
  12200. }
  12201. function addGetHookIf( conditionFn, hookFn ) {
  12202. // Define the hook, we'll check on the first run if it's really needed.
  12203. return {
  12204. get: function() {
  12205. if ( conditionFn() ) {
  12206. // Hook not needed (or it's not possible to use it due
  12207. // to missing dependency), remove it.
  12208. delete this.get;
  12209. return;
  12210. }
  12211. // Hook needed; redefine it so that the support test is not executed again.
  12212. return (this.get = hookFn).apply( this, arguments );
  12213. }
  12214. };
  12215. }
  12216. (function() {
  12217. var pixelPositionVal, boxSizingReliableVal,
  12218. docElem = document.documentElement,
  12219. container = document.createElement( "div" ),
  12220. div = document.createElement( "div" );
  12221. if ( !div.style ) {
  12222. return;
  12223. }
  12224. // Support: IE9-11+
  12225. // Style of cloned element affects source element cloned (#8908)
  12226. div.style.backgroundClip = "content-box";
  12227. div.cloneNode( true ).style.backgroundClip = "";
  12228. support.clearCloneStyle = div.style.backgroundClip === "content-box";
  12229. container.style.cssText = "border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;" +
  12230. "position:absolute";
  12231. container.appendChild( div );
  12232. // Executing both pixelPosition & boxSizingReliable tests require only one layout
  12233. // so they're executed at the same time to save the second computation.
  12234. function computePixelPositionAndBoxSizingReliable() {
  12235. div.style.cssText =
  12236. // Support: Firefox<29, Android 2.3
  12237. // Vendor-prefix box-sizing
  12238. "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;" +
  12239. "box-sizing:border-box;display:block;margin-top:1%;top:1%;" +
  12240. "border:1px;padding:1px;width:4px;position:absolute";
  12241. div.innerHTML = "";
  12242. docElem.appendChild( container );
  12243. var divStyle = window.getComputedStyle( div, null );
  12244. pixelPositionVal = divStyle.top !== "1%";
  12245. boxSizingReliableVal = divStyle.width === "4px";
  12246. docElem.removeChild( container );
  12247. }
  12248. // Support: node.js jsdom
  12249. // Don't assume that getComputedStyle is a property of the global object
  12250. if ( window.getComputedStyle ) {
  12251. jQuery.extend( support, {
  12252. pixelPosition: function() {
  12253. // This test is executed only once but we still do memoizing
  12254. // since we can use the boxSizingReliable pre-computing.
  12255. // No need to check if the test was already performed, though.
  12256. computePixelPositionAndBoxSizingReliable();
  12257. return pixelPositionVal;
  12258. },
  12259. boxSizingReliable: function() {
  12260. if ( boxSizingReliableVal == null ) {
  12261. computePixelPositionAndBoxSizingReliable();
  12262. }
  12263. return boxSizingReliableVal;
  12264. },
  12265. reliableMarginRight: function() {
  12266. // Support: Android 2.3
  12267. // Check if div with explicit width and no margin-right incorrectly
  12268. // gets computed margin-right based on width of container. (#3333)
  12269. // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
  12270. // This support function is only executed once so no memoizing is needed.
  12271. var ret,
  12272. marginDiv = div.appendChild( document.createElement( "div" ) );
  12273. // Reset CSS: box-sizing; display; margin; border; padding
  12274. marginDiv.style.cssText = div.style.cssText =
  12275. // Support: Firefox<29, Android 2.3
  12276. // Vendor-prefix box-sizing
  12277. "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" +
  12278. "box-sizing:content-box;display:block;margin:0;border:0;padding:0";
  12279. marginDiv.style.marginRight = marginDiv.style.width = "0";
  12280. div.style.width = "1px";
  12281. docElem.appendChild( container );
  12282. ret = !parseFloat( window.getComputedStyle( marginDiv, null ).marginRight );
  12283. docElem.removeChild( container );
  12284. div.removeChild( marginDiv );
  12285. return ret;
  12286. }
  12287. });
  12288. }
  12289. })();
  12290. // A method for quickly swapping in/out CSS properties to get correct calculations.
  12291. jQuery.swap = function( elem, options, callback, args ) {
  12292. var ret, name,
  12293. old = {};
  12294. // Remember the old values, and insert the new ones
  12295. for ( name in options ) {
  12296. old[ name ] = elem.style[ name ];
  12297. elem.style[ name ] = options[ name ];
  12298. }
  12299. ret = callback.apply( elem, args || [] );
  12300. // Revert the old values
  12301. for ( name in options ) {
  12302. elem.style[ name ] = old[ name ];
  12303. }
  12304. return ret;
  12305. };
  12306. var
  12307. // Swappable if display is none or starts with table except "table", "table-cell", or "table-caption"
  12308. // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
  12309. rdisplayswap = /^(none|table(?!-c[ea]).+)/,
  12310. rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ),
  12311. rrelNum = new RegExp( "^([+-])=(" + pnum + ")", "i" ),
  12312. cssShow = { position: "absolute", visibility: "hidden", display: "block" },
  12313. cssNormalTransform = {
  12314. letterSpacing: "0",
  12315. fontWeight: "400"
  12316. },
  12317. cssPrefixes = [ "Webkit", "O", "Moz", "ms" ];
  12318. // Return a css property mapped to a potentially vendor prefixed property
  12319. function vendorPropName( style, name ) {
  12320. // Shortcut for names that are not vendor prefixed
  12321. if ( name in style ) {
  12322. return name;
  12323. }
  12324. // Check for vendor prefixed names
  12325. var capName = name[0].toUpperCase() + name.slice(1),
  12326. origName = name,
  12327. i = cssPrefixes.length;
  12328. while ( i-- ) {
  12329. name = cssPrefixes[ i ] + capName;
  12330. if ( name in style ) {
  12331. return name;
  12332. }
  12333. }
  12334. return origName;
  12335. }
  12336. function setPositiveNumber( elem, value, subtract ) {
  12337. var matches = rnumsplit.exec( value );
  12338. return matches ?
  12339. // Guard against undefined "subtract", e.g., when used as in cssHooks
  12340. Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) :
  12341. value;
  12342. }
  12343. function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
  12344. var i = extra === ( isBorderBox ? "border" : "content" ) ?
  12345. // If we already have the right measurement, avoid augmentation
  12346. 4 :
  12347. // Otherwise initialize for horizontal or vertical properties
  12348. name === "width" ? 1 : 0,
  12349. val = 0;
  12350. for ( ; i < 4; i += 2 ) {
  12351. // Both box models exclude margin, so add it if we want it
  12352. if ( extra === "margin" ) {
  12353. val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
  12354. }
  12355. if ( isBorderBox ) {
  12356. // border-box includes padding, so remove it if we want content
  12357. if ( extra === "content" ) {
  12358. val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
  12359. }
  12360. // At this point, extra isn't border nor margin, so remove border
  12361. if ( extra !== "margin" ) {
  12362. val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
  12363. }
  12364. } else {
  12365. // At this point, extra isn't content, so add padding
  12366. val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
  12367. // At this point, extra isn't content nor padding, so add border
  12368. if ( extra !== "padding" ) {
  12369. val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
  12370. }
  12371. }
  12372. }
  12373. return val;
  12374. }
  12375. function getWidthOrHeight( elem, name, extra ) {
  12376. // Start with offset property, which is equivalent to the border-box value
  12377. var valueIsBorderBox = true,
  12378. val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
  12379. styles = getStyles( elem ),
  12380. isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
  12381. // Some non-html elements return undefined for offsetWidth, so check for null/undefined
  12382. // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
  12383. // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
  12384. if ( val <= 0 || val == null ) {
  12385. // Fall back to computed then uncomputed css if necessary
  12386. val = curCSS( elem, name, styles );
  12387. if ( val < 0 || val == null ) {
  12388. val = elem.style[ name ];
  12389. }
  12390. // Computed unit is not pixels. Stop here and return.
  12391. if ( rnumnonpx.test(val) ) {
  12392. return val;
  12393. }
  12394. // Check for style in case a browser which returns unreliable values
  12395. // for getComputedStyle silently falls back to the reliable elem.style
  12396. valueIsBorderBox = isBorderBox &&
  12397. ( support.boxSizingReliable() || val === elem.style[ name ] );
  12398. // Normalize "", auto, and prepare for extra
  12399. val = parseFloat( val ) || 0;
  12400. }
  12401. // Use the active box-sizing model to add/subtract irrelevant styles
  12402. return ( val +
  12403. augmentWidthOrHeight(
  12404. elem,
  12405. name,
  12406. extra || ( isBorderBox ? "border" : "content" ),
  12407. valueIsBorderBox,
  12408. styles
  12409. )
  12410. ) + "px";
  12411. }
  12412. function showHide( elements, show ) {
  12413. var display, elem, hidden,
  12414. values = [],
  12415. index = 0,
  12416. length = elements.length;
  12417. for ( ; index < length; index++ ) {
  12418. elem = elements[ index ];
  12419. if ( !elem.style ) {
  12420. continue;
  12421. }
  12422. values[ index ] = data_priv.get( elem, "olddisplay" );
  12423. display = elem.style.display;
  12424. if ( show ) {
  12425. // Reset the inline display of this element to learn if it is
  12426. // being hidden by cascaded rules or not
  12427. if ( !values[ index ] && display === "none" ) {
  12428. elem.style.display = "";
  12429. }
  12430. // Set elements which have been overridden with display: none
  12431. // in a stylesheet to whatever the default browser style is
  12432. // for such an element
  12433. if ( elem.style.display === "" && isHidden( elem ) ) {
  12434. values[ index ] = data_priv.access( elem, "olddisplay", defaultDisplay(elem.nodeName) );
  12435. }
  12436. } else {
  12437. hidden = isHidden( elem );
  12438. if ( display !== "none" || !hidden ) {
  12439. data_priv.set( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) );
  12440. }
  12441. }
  12442. }
  12443. // Set the display of most of the elements in a second loop
  12444. // to avoid the constant reflow
  12445. for ( index = 0; index < length; index++ ) {
  12446. elem = elements[ index ];
  12447. if ( !elem.style ) {
  12448. continue;
  12449. }
  12450. if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
  12451. elem.style.display = show ? values[ index ] || "" : "none";
  12452. }
  12453. }
  12454. return elements;
  12455. }
  12456. jQuery.extend({
  12457. // Add in style property hooks for overriding the default
  12458. // behavior of getting and setting a style property
  12459. cssHooks: {
  12460. opacity: {
  12461. get: function( elem, computed ) {
  12462. if ( computed ) {
  12463. // We should always get a number back from opacity
  12464. var ret = curCSS( elem, "opacity" );
  12465. return ret === "" ? "1" : ret;
  12466. }
  12467. }
  12468. }
  12469. },
  12470. // Don't automatically add "px" to these possibly-unitless properties
  12471. cssNumber: {
  12472. "columnCount": true,
  12473. "fillOpacity": true,
  12474. "flexGrow": true,
  12475. "flexShrink": true,
  12476. "fontWeight": true,
  12477. "lineHeight": true,
  12478. "opacity": true,
  12479. "order": true,
  12480. "orphans": true,
  12481. "widows": true,
  12482. "zIndex": true,
  12483. "zoom": true
  12484. },
  12485. // Add in properties whose names you wish to fix before
  12486. // setting or getting the value
  12487. cssProps: {
  12488. "float": "cssFloat"
  12489. },
  12490. // Get and set the style property on a DOM Node
  12491. style: function( elem, name, value, extra ) {
  12492. // Don't set styles on text and comment nodes
  12493. if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
  12494. return;
  12495. }
  12496. // Make sure that we're working with the right name
  12497. var ret, type, hooks,
  12498. origName = jQuery.camelCase( name ),
  12499. style = elem.style;
  12500. name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );
  12501. // Gets hook for the prefixed version, then unprefixed version
  12502. hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
  12503. // Check if we're setting a value
  12504. if ( value !== undefined ) {
  12505. type = typeof value;
  12506. // Convert "+=" or "-=" to relative numbers (#7345)
  12507. if ( type === "string" && (ret = rrelNum.exec( value )) ) {
  12508. value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );
  12509. // Fixes bug #9237
  12510. type = "number";
  12511. }
  12512. // Make sure that null and NaN values aren't set (#7116)
  12513. if ( value == null || value !== value ) {
  12514. return;
  12515. }
  12516. // If a number, add 'px' to the (except for certain CSS properties)
  12517. if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
  12518. value += "px";
  12519. }
  12520. // Support: IE9-11+
  12521. // background-* props affect original clone's values
  12522. if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
  12523. style[ name ] = "inherit";
  12524. }
  12525. // If a hook was provided, use that value, otherwise just set the specified value
  12526. if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {
  12527. style[ name ] = value;
  12528. }
  12529. } else {
  12530. // If a hook was provided get the non-computed value from there
  12531. if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
  12532. return ret;
  12533. }
  12534. // Otherwise just get the value from the style object
  12535. return style[ name ];
  12536. }
  12537. },
  12538. css: function( elem, name, extra, styles ) {
  12539. var val, num, hooks,
  12540. origName = jQuery.camelCase( name );
  12541. // Make sure that we're working with the right name
  12542. name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );
  12543. // Try prefixed name followed by the unprefixed name
  12544. hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
  12545. // If a hook was provided get the computed value from there
  12546. if ( hooks && "get" in hooks ) {
  12547. val = hooks.get( elem, true, extra );
  12548. }
  12549. // Otherwise, if a way to get the computed value exists, use that
  12550. if ( val === undefined ) {
  12551. val = curCSS( elem, name, styles );
  12552. }
  12553. // Convert "normal" to computed value
  12554. if ( val === "normal" && name in cssNormalTransform ) {
  12555. val = cssNormalTransform[ name ];
  12556. }
  12557. // Make numeric if forced or a qualifier was provided and val looks numeric
  12558. if ( extra === "" || extra ) {
  12559. num = parseFloat( val );
  12560. return extra === true || jQuery.isNumeric( num ) ? num || 0 : val;
  12561. }
  12562. return val;
  12563. }
  12564. });
  12565. jQuery.each([ "height", "width" ], function( i, name ) {
  12566. jQuery.cssHooks[ name ] = {
  12567. get: function( elem, computed, extra ) {
  12568. if ( computed ) {
  12569. // Certain elements can have dimension info if we invisibly show them
  12570. // but it must have a current display style that would benefit
  12571. return rdisplayswap.test( jQuery.css( elem, "display" ) ) && elem.offsetWidth === 0 ?
  12572. jQuery.swap( elem, cssShow, function() {
  12573. return getWidthOrHeight( elem, name, extra );
  12574. }) :
  12575. getWidthOrHeight( elem, name, extra );
  12576. }
  12577. },
  12578. set: function( elem, value, extra ) {
  12579. var styles = extra && getStyles( elem );
  12580. return setPositiveNumber( elem, value, extra ?
  12581. augmentWidthOrHeight(
  12582. elem,
  12583. name,
  12584. extra,
  12585. jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
  12586. styles
  12587. ) : 0
  12588. );
  12589. }
  12590. };
  12591. });
  12592. // Support: Android 2.3
  12593. jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight,
  12594. function( elem, computed ) {
  12595. if ( computed ) {
  12596. return jQuery.swap( elem, { "display": "inline-block" },
  12597. curCSS, [ elem, "marginRight" ] );
  12598. }
  12599. }
  12600. );
  12601. // These hooks are used by animate to expand properties
  12602. jQuery.each({
  12603. margin: "",
  12604. padding: "",
  12605. border: "Width"
  12606. }, function( prefix, suffix ) {
  12607. jQuery.cssHooks[ prefix + suffix ] = {
  12608. expand: function( value ) {
  12609. var i = 0,
  12610. expanded = {},
  12611. // Assumes a single number if not a string
  12612. parts = typeof value === "string" ? value.split(" ") : [ value ];
  12613. for ( ; i < 4; i++ ) {
  12614. expanded[ prefix + cssExpand[ i ] + suffix ] =
  12615. parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
  12616. }
  12617. return expanded;
  12618. }
  12619. };
  12620. if ( !rmargin.test( prefix ) ) {
  12621. jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
  12622. }
  12623. });
  12624. jQuery.fn.extend({
  12625. css: function( name, value ) {
  12626. return access( this, function( elem, name, value ) {
  12627. var styles, len,
  12628. map = {},
  12629. i = 0;
  12630. if ( jQuery.isArray( name ) ) {
  12631. styles = getStyles( elem );
  12632. len = name.length;
  12633. for ( ; i < len; i++ ) {
  12634. map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
  12635. }
  12636. return map;
  12637. }
  12638. return value !== undefined ?
  12639. jQuery.style( elem, name, value ) :
  12640. jQuery.css( elem, name );
  12641. }, name, value, arguments.length > 1 );
  12642. },
  12643. show: function() {
  12644. return showHide( this, true );
  12645. },
  12646. hide: function() {
  12647. return showHide( this );
  12648. },
  12649. toggle: function( state ) {
  12650. if ( typeof state === "boolean" ) {
  12651. return state ? this.show() : this.hide();
  12652. }
  12653. return this.each(function() {
  12654. if ( isHidden( this ) ) {
  12655. jQuery( this ).show();
  12656. } else {
  12657. jQuery( this ).hide();
  12658. }
  12659. });
  12660. }
  12661. });
  12662. function Tween( elem, options, prop, end, easing ) {
  12663. return new Tween.prototype.init( elem, options, prop, end, easing );
  12664. }
  12665. jQuery.Tween = Tween;
  12666. Tween.prototype = {
  12667. constructor: Tween,
  12668. init: function( elem, options, prop, end, easing, unit ) {
  12669. this.elem = elem;
  12670. this.prop = prop;
  12671. this.easing = easing || "swing";
  12672. this.options = options;
  12673. this.start = this.now = this.cur();
  12674. this.end = end;
  12675. this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
  12676. },
  12677. cur: function() {
  12678. var hooks = Tween.propHooks[ this.prop ];
  12679. return hooks && hooks.get ?
  12680. hooks.get( this ) :
  12681. Tween.propHooks._default.get( this );
  12682. },
  12683. run: function( percent ) {
  12684. var eased,
  12685. hooks = Tween.propHooks[ this.prop ];
  12686. if ( this.options.duration ) {
  12687. this.pos = eased = jQuery.easing[ this.easing ](
  12688. percent, this.options.duration * percent, 0, 1, this.options.duration
  12689. );
  12690. } else {
  12691. this.pos = eased = percent;
  12692. }
  12693. this.now = ( this.end - this.start ) * eased + this.start;
  12694. if ( this.options.step ) {
  12695. this.options.step.call( this.elem, this.now, this );
  12696. }
  12697. if ( hooks && hooks.set ) {
  12698. hooks.set( this );
  12699. } else {
  12700. Tween.propHooks._default.set( this );
  12701. }
  12702. return this;
  12703. }
  12704. };
  12705. Tween.prototype.init.prototype = Tween.prototype;
  12706. Tween.propHooks = {
  12707. _default: {
  12708. get: function( tween ) {
  12709. var result;
  12710. if ( tween.elem[ tween.prop ] != null &&
  12711. (!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) {
  12712. return tween.elem[ tween.prop ];
  12713. }
  12714. // Passing an empty string as a 3rd parameter to .css will automatically
  12715. // attempt a parseFloat and fallback to a string if the parse fails.
  12716. // Simple values such as "10px" are parsed to Float;
  12717. // complex values such as "rotate(1rad)" are returned as-is.
  12718. result = jQuery.css( tween.elem, tween.prop, "" );
  12719. // Empty strings, null, undefined and "auto" are converted to 0.
  12720. return !result || result === "auto" ? 0 : result;
  12721. },
  12722. set: function( tween ) {
  12723. // Use step hook for back compat.
  12724. // Use cssHook if its there.
  12725. // Use .style if available and use plain properties where available.
  12726. if ( jQuery.fx.step[ tween.prop ] ) {
  12727. jQuery.fx.step[ tween.prop ]( tween );
  12728. } else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) {
  12729. jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
  12730. } else {
  12731. tween.elem[ tween.prop ] = tween.now;
  12732. }
  12733. }
  12734. }
  12735. };
  12736. // Support: IE9
  12737. // Panic based approach to setting things on disconnected nodes
  12738. Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
  12739. set: function( tween ) {
  12740. if ( tween.elem.nodeType && tween.elem.parentNode ) {
  12741. tween.elem[ tween.prop ] = tween.now;
  12742. }
  12743. }
  12744. };
  12745. jQuery.easing = {
  12746. linear: function( p ) {
  12747. return p;
  12748. },
  12749. swing: function( p ) {
  12750. return 0.5 - Math.cos( p * Math.PI ) / 2;
  12751. }
  12752. };
  12753. jQuery.fx = Tween.prototype.init;
  12754. // Back Compat <1.8 extension point
  12755. jQuery.fx.step = {};
  12756. var
  12757. fxNow, timerId,
  12758. rfxtypes = /^(?:toggle|show|hide)$/,
  12759. rfxnum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ),
  12760. rrun = /queueHooks$/,
  12761. animationPrefilters = [ defaultPrefilter ],
  12762. tweeners = {
  12763. "*": [ function( prop, value ) {
  12764. var tween = this.createTween( prop, value ),
  12765. target = tween.cur(),
  12766. parts = rfxnum.exec( value ),
  12767. unit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
  12768. // Starting value computation is required for potential unit mismatches
  12769. start = ( jQuery.cssNumber[ prop ] || unit !== "px" && +target ) &&
  12770. rfxnum.exec( jQuery.css( tween.elem, prop ) ),
  12771. scale = 1,
  12772. maxIterations = 20;
  12773. if ( start && start[ 3 ] !== unit ) {
  12774. // Trust units reported by jQuery.css
  12775. unit = unit || start[ 3 ];
  12776. // Make sure we update the tween properties later on
  12777. parts = parts || [];
  12778. // Iteratively approximate from a nonzero starting point
  12779. start = +target || 1;
  12780. do {
  12781. // If previous iteration zeroed out, double until we get *something*.
  12782. // Use string for doubling so we don't accidentally see scale as unchanged below
  12783. scale = scale || ".5";
  12784. // Adjust and apply
  12785. start = start / scale;
  12786. jQuery.style( tween.elem, prop, start + unit );
  12787. // Update scale, tolerating zero or NaN from tween.cur(),
  12788. // break the loop if scale is unchanged or perfect, or if we've just had enough
  12789. } while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations );
  12790. }
  12791. // Update tween properties
  12792. if ( parts ) {
  12793. start = tween.start = +start || +target || 0;
  12794. tween.unit = unit;
  12795. // If a +=/-= token was provided, we're doing a relative animation
  12796. tween.end = parts[ 1 ] ?
  12797. start + ( parts[ 1 ] + 1 ) * parts[ 2 ] :
  12798. +parts[ 2 ];
  12799. }
  12800. return tween;
  12801. } ]
  12802. };
  12803. // Animations created synchronously will run synchronously
  12804. function createFxNow() {
  12805. setTimeout(function() {
  12806. fxNow = undefined;
  12807. });
  12808. return ( fxNow = jQuery.now() );
  12809. }
  12810. // Generate parameters to create a standard animation
  12811. function genFx( type, includeWidth ) {
  12812. var which,
  12813. i = 0,
  12814. attrs = { height: type };
  12815. // If we include width, step value is 1 to do all cssExpand values,
  12816. // otherwise step value is 2 to skip over Left and Right
  12817. includeWidth = includeWidth ? 1 : 0;
  12818. for ( ; i < 4 ; i += 2 - includeWidth ) {
  12819. which = cssExpand[ i ];
  12820. attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
  12821. }
  12822. if ( includeWidth ) {
  12823. attrs.opacity = attrs.width = type;
  12824. }
  12825. return attrs;
  12826. }
  12827. function createTween( value, prop, animation ) {
  12828. var tween,
  12829. collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ),
  12830. index = 0,
  12831. length = collection.length;
  12832. for ( ; index < length; index++ ) {
  12833. if ( (tween = collection[ index ].call( animation, prop, value )) ) {
  12834. // We're done with this property
  12835. return tween;
  12836. }
  12837. }
  12838. }
  12839. function defaultPrefilter( elem, props, opts ) {
  12840. /* jshint validthis: true */
  12841. var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,
  12842. anim = this,
  12843. orig = {},
  12844. style = elem.style,
  12845. hidden = elem.nodeType && isHidden( elem ),
  12846. dataShow = data_priv.get( elem, "fxshow" );
  12847. // Handle queue: false promises
  12848. if ( !opts.queue ) {
  12849. hooks = jQuery._queueHooks( elem, "fx" );
  12850. if ( hooks.unqueued == null ) {
  12851. hooks.unqueued = 0;
  12852. oldfire = hooks.empty.fire;
  12853. hooks.empty.fire = function() {
  12854. if ( !hooks.unqueued ) {
  12855. oldfire();
  12856. }
  12857. };
  12858. }
  12859. hooks.unqueued++;
  12860. anim.always(function() {
  12861. // Ensure the complete handler is called before this completes
  12862. anim.always(function() {
  12863. hooks.unqueued--;
  12864. if ( !jQuery.queue( elem, "fx" ).length ) {
  12865. hooks.empty.fire();
  12866. }
  12867. });
  12868. });
  12869. }
  12870. // Height/width overflow pass
  12871. if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) {
  12872. // Make sure that nothing sneaks out
  12873. // Record all 3 overflow attributes because IE9-10 do not
  12874. // change the overflow attribute when overflowX and
  12875. // overflowY are set to the same value
  12876. opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
  12877. // Set display property to inline-block for height/width
  12878. // animations on inline elements that are having width/height animated
  12879. display = jQuery.css( elem, "display" );
  12880. // Test default display if display is currently "none"
  12881. checkDisplay = display === "none" ?
  12882. data_priv.get( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display;
  12883. if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) {
  12884. style.display = "inline-block";
  12885. }
  12886. }
  12887. if ( opts.overflow ) {
  12888. style.overflow = "hidden";
  12889. anim.always(function() {
  12890. style.overflow = opts.overflow[ 0 ];
  12891. style.overflowX = opts.overflow[ 1 ];
  12892. style.overflowY = opts.overflow[ 2 ];
  12893. });
  12894. }
  12895. // show/hide pass
  12896. for ( prop in props ) {
  12897. value = props[ prop ];
  12898. if ( rfxtypes.exec( value ) ) {
  12899. delete props[ prop ];
  12900. toggle = toggle || value === "toggle";
  12901. if ( value === ( hidden ? "hide" : "show" ) ) {
  12902. // If there is dataShow left over from a stopped hide or show and we are going to proceed with show, we should pretend to be hidden
  12903. if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
  12904. hidden = true;
  12905. } else {
  12906. continue;
  12907. }
  12908. }
  12909. orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
  12910. // Any non-fx value stops us from restoring the original display value
  12911. } else {
  12912. display = undefined;
  12913. }
  12914. }
  12915. if ( !jQuery.isEmptyObject( orig ) ) {
  12916. if ( dataShow ) {
  12917. if ( "hidden" in dataShow ) {
  12918. hidden = dataShow.hidden;
  12919. }
  12920. } else {
  12921. dataShow = data_priv.access( elem, "fxshow", {} );
  12922. }
  12923. // Store state if its toggle - enables .stop().toggle() to "reverse"
  12924. if ( toggle ) {
  12925. dataShow.hidden = !hidden;
  12926. }
  12927. if ( hidden ) {
  12928. jQuery( elem ).show();
  12929. } else {
  12930. anim.done(function() {
  12931. jQuery( elem ).hide();
  12932. });
  12933. }
  12934. anim.done(function() {
  12935. var prop;
  12936. data_priv.remove( elem, "fxshow" );
  12937. for ( prop in orig ) {
  12938. jQuery.style( elem, prop, orig[ prop ] );
  12939. }
  12940. });
  12941. for ( prop in orig ) {
  12942. tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
  12943. if ( !( prop in dataShow ) ) {
  12944. dataShow[ prop ] = tween.start;
  12945. if ( hidden ) {
  12946. tween.end = tween.start;
  12947. tween.start = prop === "width" || prop === "height" ? 1 : 0;
  12948. }
  12949. }
  12950. }
  12951. // If this is a noop like .hide().hide(), restore an overwritten display value
  12952. } else if ( (display === "none" ? defaultDisplay( elem.nodeName ) : display) === "inline" ) {
  12953. style.display = display;
  12954. }
  12955. }
  12956. function propFilter( props, specialEasing ) {
  12957. var index, name, easing, value, hooks;
  12958. // camelCase, specialEasing and expand cssHook pass
  12959. for ( index in props ) {
  12960. name = jQuery.camelCase( index );
  12961. easing = specialEasing[ name ];
  12962. value = props[ index ];
  12963. if ( jQuery.isArray( value ) ) {
  12964. easing = value[ 1 ];
  12965. value = props[ index ] = value[ 0 ];
  12966. }
  12967. if ( index !== name ) {
  12968. props[ name ] = value;
  12969. delete props[ index ];
  12970. }
  12971. hooks = jQuery.cssHooks[ name ];
  12972. if ( hooks && "expand" in hooks ) {
  12973. value = hooks.expand( value );
  12974. delete props[ name ];
  12975. // Not quite $.extend, this won't overwrite existing keys.
  12976. // Reusing 'index' because we have the correct "name"
  12977. for ( index in value ) {
  12978. if ( !( index in props ) ) {
  12979. props[ index ] = value[ index ];
  12980. specialEasing[ index ] = easing;
  12981. }
  12982. }
  12983. } else {
  12984. specialEasing[ name ] = easing;
  12985. }
  12986. }
  12987. }
  12988. function Animation( elem, properties, options ) {
  12989. var result,
  12990. stopped,
  12991. index = 0,
  12992. length = animationPrefilters.length,
  12993. deferred = jQuery.Deferred().always( function() {
  12994. // Don't match elem in the :animated selector
  12995. delete tick.elem;
  12996. }),
  12997. tick = function() {
  12998. if ( stopped ) {
  12999. return false;
  13000. }
  13001. var currentTime = fxNow || createFxNow(),
  13002. remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
  13003. // Support: Android 2.3
  13004. // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
  13005. temp = remaining / animation.duration || 0,
  13006. percent = 1 - temp,
  13007. index = 0,
  13008. length = animation.tweens.length;
  13009. for ( ; index < length ; index++ ) {
  13010. animation.tweens[ index ].run( percent );
  13011. }
  13012. deferred.notifyWith( elem, [ animation, percent, remaining ]);
  13013. if ( percent < 1 && length ) {
  13014. return remaining;
  13015. } else {
  13016. deferred.resolveWith( elem, [ animation ] );
  13017. return false;
  13018. }
  13019. },
  13020. animation = deferred.promise({
  13021. elem: elem,
  13022. props: jQuery.extend( {}, properties ),
  13023. opts: jQuery.extend( true, { specialEasing: {} }, options ),
  13024. originalProperties: properties,
  13025. originalOptions: options,
  13026. startTime: fxNow || createFxNow(),
  13027. duration: options.duration,
  13028. tweens: [],
  13029. createTween: function( prop, end ) {
  13030. var tween = jQuery.Tween( elem, animation.opts, prop, end,
  13031. animation.opts.specialEasing[ prop ] || animation.opts.easing );
  13032. animation.tweens.push( tween );
  13033. return tween;
  13034. },
  13035. stop: function( gotoEnd ) {
  13036. var index = 0,
  13037. // If we are going to the end, we want to run all the tweens
  13038. // otherwise we skip this part
  13039. length = gotoEnd ? animation.tweens.length : 0;
  13040. if ( stopped ) {
  13041. return this;
  13042. }
  13043. stopped = true;
  13044. for ( ; index < length ; index++ ) {
  13045. animation.tweens[ index ].run( 1 );
  13046. }
  13047. // Resolve when we played the last frame; otherwise, reject
  13048. if ( gotoEnd ) {
  13049. deferred.resolveWith( elem, [ animation, gotoEnd ] );
  13050. } else {
  13051. deferred.rejectWith( elem, [ animation, gotoEnd ] );
  13052. }
  13053. return this;
  13054. }
  13055. }),
  13056. props = animation.props;
  13057. propFilter( props, animation.opts.specialEasing );
  13058. for ( ; index < length ; index++ ) {
  13059. result = animationPrefilters[ index ].call( animation, elem, props, animation.opts );
  13060. if ( result ) {
  13061. return result;
  13062. }
  13063. }
  13064. jQuery.map( props, createTween, animation );
  13065. if ( jQuery.isFunction( animation.opts.start ) ) {
  13066. animation.opts.start.call( elem, animation );
  13067. }
  13068. jQuery.fx.timer(
  13069. jQuery.extend( tick, {
  13070. elem: elem,
  13071. anim: animation,
  13072. queue: animation.opts.queue
  13073. })
  13074. );
  13075. // attach callbacks from options
  13076. return animation.progress( animation.opts.progress )
  13077. .done( animation.opts.done, animation.opts.complete )
  13078. .fail( animation.opts.fail )
  13079. .always( animation.opts.always );
  13080. }
  13081. jQuery.Animation = jQuery.extend( Animation, {
  13082. tweener: function( props, callback ) {
  13083. if ( jQuery.isFunction( props ) ) {
  13084. callback = props;
  13085. props = [ "*" ];
  13086. } else {
  13087. props = props.split(" ");
  13088. }
  13089. var prop,
  13090. index = 0,
  13091. length = props.length;
  13092. for ( ; index < length ; index++ ) {
  13093. prop = props[ index ];
  13094. tweeners[ prop ] = tweeners[ prop ] || [];
  13095. tweeners[ prop ].unshift( callback );
  13096. }
  13097. },
  13098. prefilter: function( callback, prepend ) {
  13099. if ( prepend ) {
  13100. animationPrefilters.unshift( callback );
  13101. } else {
  13102. animationPrefilters.push( callback );
  13103. }
  13104. }
  13105. });
  13106. jQuery.speed = function( speed, easing, fn ) {
  13107. var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
  13108. complete: fn || !fn && easing ||
  13109. jQuery.isFunction( speed ) && speed,
  13110. duration: speed,
  13111. easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
  13112. };
  13113. opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
  13114. opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
  13115. // Normalize opt.queue - true/undefined/null -> "fx"
  13116. if ( opt.queue == null || opt.queue === true ) {
  13117. opt.queue = "fx";
  13118. }
  13119. // Queueing
  13120. opt.old = opt.complete;
  13121. opt.complete = function() {
  13122. if ( jQuery.isFunction( opt.old ) ) {
  13123. opt.old.call( this );
  13124. }
  13125. if ( opt.queue ) {
  13126. jQuery.dequeue( this, opt.queue );
  13127. }
  13128. };
  13129. return opt;
  13130. };
  13131. jQuery.fn.extend({
  13132. fadeTo: function( speed, to, easing, callback ) {
  13133. // Show any hidden elements after setting opacity to 0
  13134. return this.filter( isHidden ).css( "opacity", 0 ).show()
  13135. // Animate to the value specified
  13136. .end().animate({ opacity: to }, speed, easing, callback );
  13137. },
  13138. animate: function( prop, speed, easing, callback ) {
  13139. var empty = jQuery.isEmptyObject( prop ),
  13140. optall = jQuery.speed( speed, easing, callback ),
  13141. doAnimation = function() {
  13142. // Operate on a copy of prop so per-property easing won't be lost
  13143. var anim = Animation( this, jQuery.extend( {}, prop ), optall );
  13144. // Empty animations, or finishing resolves immediately
  13145. if ( empty || data_priv.get( this, "finish" ) ) {
  13146. anim.stop( true );
  13147. }
  13148. };
  13149. doAnimation.finish = doAnimation;
  13150. return empty || optall.queue === false ?
  13151. this.each( doAnimation ) :
  13152. this.queue( optall.queue, doAnimation );
  13153. },
  13154. stop: function( type, clearQueue, gotoEnd ) {
  13155. var stopQueue = function( hooks ) {
  13156. var stop = hooks.stop;
  13157. delete hooks.stop;
  13158. stop( gotoEnd );
  13159. };
  13160. if ( typeof type !== "string" ) {
  13161. gotoEnd = clearQueue;
  13162. clearQueue = type;
  13163. type = undefined;
  13164. }
  13165. if ( clearQueue && type !== false ) {
  13166. this.queue( type || "fx", [] );
  13167. }
  13168. return this.each(function() {
  13169. var dequeue = true,
  13170. index = type != null && type + "queueHooks",
  13171. timers = jQuery.timers,
  13172. data = data_priv.get( this );
  13173. if ( index ) {
  13174. if ( data[ index ] && data[ index ].stop ) {
  13175. stopQueue( data[ index ] );
  13176. }
  13177. } else {
  13178. for ( index in data ) {
  13179. if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
  13180. stopQueue( data[ index ] );
  13181. }
  13182. }
  13183. }
  13184. for ( index = timers.length; index--; ) {
  13185. if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {
  13186. timers[ index ].anim.stop( gotoEnd );
  13187. dequeue = false;
  13188. timers.splice( index, 1 );
  13189. }
  13190. }
  13191. // Start the next in the queue if the last step wasn't forced.
  13192. // Timers currently will call their complete callbacks, which
  13193. // will dequeue but only if they were gotoEnd.
  13194. if ( dequeue || !gotoEnd ) {
  13195. jQuery.dequeue( this, type );
  13196. }
  13197. });
  13198. },
  13199. finish: function( type ) {
  13200. if ( type !== false ) {
  13201. type = type || "fx";
  13202. }
  13203. return this.each(function() {
  13204. var index,
  13205. data = data_priv.get( this ),
  13206. queue = data[ type + "queue" ],
  13207. hooks = data[ type + "queueHooks" ],
  13208. timers = jQuery.timers,
  13209. length = queue ? queue.length : 0;
  13210. // Enable finishing flag on private data
  13211. data.finish = true;
  13212. // Empty the queue first
  13213. jQuery.queue( this, type, [] );
  13214. if ( hooks && hooks.stop ) {
  13215. hooks.stop.call( this, true );
  13216. }
  13217. // Look for any active animations, and finish them
  13218. for ( index = timers.length; index--; ) {
  13219. if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
  13220. timers[ index ].anim.stop( true );
  13221. timers.splice( index, 1 );
  13222. }
  13223. }
  13224. // Look for any animations in the old queue and finish them
  13225. for ( index = 0; index < length; index++ ) {
  13226. if ( queue[ index ] && queue[ index ].finish ) {
  13227. queue[ index ].finish.call( this );
  13228. }
  13229. }
  13230. // Turn off finishing flag
  13231. delete data.finish;
  13232. });
  13233. }
  13234. });
  13235. jQuery.each([ "toggle", "show", "hide" ], function( i, name ) {
  13236. var cssFn = jQuery.fn[ name ];
  13237. jQuery.fn[ name ] = function( speed, easing, callback ) {
  13238. return speed == null || typeof speed === "boolean" ?
  13239. cssFn.apply( this, arguments ) :
  13240. this.animate( genFx( name, true ), speed, easing, callback );
  13241. };
  13242. });
  13243. // Generate shortcuts for custom animations
  13244. jQuery.each({
  13245. slideDown: genFx("show"),
  13246. slideUp: genFx("hide"),
  13247. slideToggle: genFx("toggle"),
  13248. fadeIn: { opacity: "show" },
  13249. fadeOut: { opacity: "hide" },
  13250. fadeToggle: { opacity: "toggle" }
  13251. }, function( name, props ) {
  13252. jQuery.fn[ name ] = function( speed, easing, callback ) {
  13253. return this.animate( props, speed, easing, callback );
  13254. };
  13255. });
  13256. jQuery.timers = [];
  13257. jQuery.fx.tick = function() {
  13258. var timer,
  13259. i = 0,
  13260. timers = jQuery.timers;
  13261. fxNow = jQuery.now();
  13262. for ( ; i < timers.length; i++ ) {
  13263. timer = timers[ i ];
  13264. // Checks the timer has not already been removed
  13265. if ( !timer() && timers[ i ] === timer ) {
  13266. timers.splice( i--, 1 );
  13267. }
  13268. }
  13269. if ( !timers.length ) {
  13270. jQuery.fx.stop();
  13271. }
  13272. fxNow = undefined;
  13273. };
  13274. jQuery.fx.timer = function( timer ) {
  13275. jQuery.timers.push( timer );
  13276. if ( timer() ) {
  13277. jQuery.fx.start();
  13278. } else {
  13279. jQuery.timers.pop();
  13280. }
  13281. };
  13282. jQuery.fx.interval = 13;
  13283. jQuery.fx.start = function() {
  13284. if ( !timerId ) {
  13285. timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval );
  13286. }
  13287. };
  13288. jQuery.fx.stop = function() {
  13289. clearInterval( timerId );
  13290. timerId = null;
  13291. };
  13292. jQuery.fx.speeds = {
  13293. slow: 600,
  13294. fast: 200,
  13295. // Default speed
  13296. _default: 400
  13297. };
  13298. // Based off of the plugin by Clint Helfers, with permission.
  13299. // http://blindsignals.com/index.php/2009/07/jquery-delay/
  13300. jQuery.fn.delay = function( time, type ) {
  13301. time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
  13302. type = type || "fx";
  13303. return this.queue( type, function( next, hooks ) {
  13304. var timeout = setTimeout( next, time );
  13305. hooks.stop = function() {
  13306. clearTimeout( timeout );
  13307. };
  13308. });
  13309. };
  13310. (function() {
  13311. var input = document.createElement( "input" ),
  13312. select = document.createElement( "select" ),
  13313. opt = select.appendChild( document.createElement( "option" ) );
  13314. input.type = "checkbox";
  13315. // Support: iOS<=5.1, Android<=4.2+
  13316. // Default value for a checkbox should be "on"
  13317. support.checkOn = input.value !== "";
  13318. // Support: IE<=11+
  13319. // Must access selectedIndex to make default options select
  13320. support.optSelected = opt.selected;
  13321. // Support: Android<=2.3
  13322. // Options inside disabled selects are incorrectly marked as disabled
  13323. select.disabled = true;
  13324. support.optDisabled = !opt.disabled;
  13325. // Support: IE<=11+
  13326. // An input loses its value after becoming a radio
  13327. input = document.createElement( "input" );
  13328. input.value = "t";
  13329. input.type = "radio";
  13330. support.radioValue = input.value === "t";
  13331. })();
  13332. var nodeHook, boolHook,
  13333. attrHandle = jQuery.expr.attrHandle;
  13334. jQuery.fn.extend({
  13335. attr: function( name, value ) {
  13336. return access( this, jQuery.attr, name, value, arguments.length > 1 );
  13337. },
  13338. removeAttr: function( name ) {
  13339. return this.each(function() {
  13340. jQuery.removeAttr( this, name );
  13341. });
  13342. }
  13343. });
  13344. jQuery.extend({
  13345. attr: function( elem, name, value ) {
  13346. var hooks, ret,
  13347. nType = elem.nodeType;
  13348. // don't get/set attributes on text, comment and attribute nodes
  13349. if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
  13350. return;
  13351. }
  13352. // Fallback to prop when attributes are not supported
  13353. if ( typeof elem.getAttribute === strundefined ) {
  13354. return jQuery.prop( elem, name, value );
  13355. }
  13356. // All attributes are lowercase
  13357. // Grab necessary hook if one is defined
  13358. if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
  13359. name = name.toLowerCase();
  13360. hooks = jQuery.attrHooks[ name ] ||
  13361. ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );
  13362. }
  13363. if ( value !== undefined ) {
  13364. if ( value === null ) {
  13365. jQuery.removeAttr( elem, name );
  13366. } else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
  13367. return ret;
  13368. } else {
  13369. elem.setAttribute( name, value + "" );
  13370. return value;
  13371. }
  13372. } else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
  13373. return ret;
  13374. } else {
  13375. ret = jQuery.find.attr( elem, name );
  13376. // Non-existent attributes return null, we normalize to undefined
  13377. return ret == null ?
  13378. undefined :
  13379. ret;
  13380. }
  13381. },
  13382. removeAttr: function( elem, value ) {
  13383. var name, propName,
  13384. i = 0,
  13385. attrNames = value && value.match( rnotwhite );
  13386. if ( attrNames && elem.nodeType === 1 ) {
  13387. while ( (name = attrNames[i++]) ) {
  13388. propName = jQuery.propFix[ name ] || name;
  13389. // Boolean attributes get special treatment (#10870)
  13390. if ( jQuery.expr.match.bool.test( name ) ) {
  13391. // Set corresponding property to false
  13392. elem[ propName ] = false;
  13393. }
  13394. elem.removeAttribute( name );
  13395. }
  13396. }
  13397. },
  13398. attrHooks: {
  13399. type: {
  13400. set: function( elem, value ) {
  13401. if ( !support.radioValue && value === "radio" &&
  13402. jQuery.nodeName( elem, "input" ) ) {
  13403. var val = elem.value;
  13404. elem.setAttribute( "type", value );
  13405. if ( val ) {
  13406. elem.value = val;
  13407. }
  13408. return value;
  13409. }
  13410. }
  13411. }
  13412. }
  13413. });
  13414. // Hooks for boolean attributes
  13415. boolHook = {
  13416. set: function( elem, value, name ) {
  13417. if ( value === false ) {
  13418. // Remove boolean attributes when set to false
  13419. jQuery.removeAttr( elem, name );
  13420. } else {
  13421. elem.setAttribute( name, name );
  13422. }
  13423. return name;
  13424. }
  13425. };
  13426. jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
  13427. var getter = attrHandle[ name ] || jQuery.find.attr;
  13428. attrHandle[ name ] = function( elem, name, isXML ) {
  13429. var ret, handle;
  13430. if ( !isXML ) {
  13431. // Avoid an infinite loop by temporarily removing this function from the getter
  13432. handle = attrHandle[ name ];
  13433. attrHandle[ name ] = ret;
  13434. ret = getter( elem, name, isXML ) != null ?
  13435. name.toLowerCase() :
  13436. null;
  13437. attrHandle[ name ] = handle;
  13438. }
  13439. return ret;
  13440. };
  13441. });
  13442. var rfocusable = /^(?:input|select|textarea|button)$/i;
  13443. jQuery.fn.extend({
  13444. prop: function( name, value ) {
  13445. return access( this, jQuery.prop, name, value, arguments.length > 1 );
  13446. },
  13447. removeProp: function( name ) {
  13448. return this.each(function() {
  13449. delete this[ jQuery.propFix[ name ] || name ];
  13450. });
  13451. }
  13452. });
  13453. jQuery.extend({
  13454. propFix: {
  13455. "for": "htmlFor",
  13456. "class": "className"
  13457. },
  13458. prop: function( elem, name, value ) {
  13459. var ret, hooks, notxml,
  13460. nType = elem.nodeType;
  13461. // Don't get/set properties on text, comment and attribute nodes
  13462. if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
  13463. return;
  13464. }
  13465. notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
  13466. if ( notxml ) {
  13467. // Fix name and attach hooks
  13468. name = jQuery.propFix[ name ] || name;
  13469. hooks = jQuery.propHooks[ name ];
  13470. }
  13471. if ( value !== undefined ) {
  13472. return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ?
  13473. ret :
  13474. ( elem[ name ] = value );
  13475. } else {
  13476. return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ?
  13477. ret :
  13478. elem[ name ];
  13479. }
  13480. },
  13481. propHooks: {
  13482. tabIndex: {
  13483. get: function( elem ) {
  13484. return elem.hasAttribute( "tabindex" ) || rfocusable.test( elem.nodeName ) || elem.href ?
  13485. elem.tabIndex :
  13486. -1;
  13487. }
  13488. }
  13489. }
  13490. });
  13491. if ( !support.optSelected ) {
  13492. jQuery.propHooks.selected = {
  13493. get: function( elem ) {
  13494. var parent = elem.parentNode;
  13495. if ( parent && parent.parentNode ) {
  13496. parent.parentNode.selectedIndex;
  13497. }
  13498. return null;
  13499. }
  13500. };
  13501. }
  13502. jQuery.each([
  13503. "tabIndex",
  13504. "readOnly",
  13505. "maxLength",
  13506. "cellSpacing",
  13507. "cellPadding",
  13508. "rowSpan",
  13509. "colSpan",
  13510. "useMap",
  13511. "frameBorder",
  13512. "contentEditable"
  13513. ], function() {
  13514. jQuery.propFix[ this.toLowerCase() ] = this;
  13515. });
  13516. var rclass = /[\t\r\n\f]/g;
  13517. jQuery.fn.extend({
  13518. addClass: function( value ) {
  13519. var classes, elem, cur, clazz, j, finalValue,
  13520. proceed = typeof value === "string" && value,
  13521. i = 0,
  13522. len = this.length;
  13523. if ( jQuery.isFunction( value ) ) {
  13524. return this.each(function( j ) {
  13525. jQuery( this ).addClass( value.call( this, j, this.className ) );
  13526. });
  13527. }
  13528. if ( proceed ) {
  13529. // The disjunction here is for better compressibility (see removeClass)
  13530. classes = ( value || "" ).match( rnotwhite ) || [];
  13531. for ( ; i < len; i++ ) {
  13532. elem = this[ i ];
  13533. cur = elem.nodeType === 1 && ( elem.className ?
  13534. ( " " + elem.className + " " ).replace( rclass, " " ) :
  13535. " "
  13536. );
  13537. if ( cur ) {
  13538. j = 0;
  13539. while ( (clazz = classes[j++]) ) {
  13540. if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
  13541. cur += clazz + " ";
  13542. }
  13543. }
  13544. // only assign if different to avoid unneeded rendering.
  13545. finalValue = jQuery.trim( cur );
  13546. if ( elem.className !== finalValue ) {
  13547. elem.className = finalValue;
  13548. }
  13549. }
  13550. }
  13551. }
  13552. return this;
  13553. },
  13554. removeClass: function( value ) {
  13555. var classes, elem, cur, clazz, j, finalValue,
  13556. proceed = arguments.length === 0 || typeof value === "string" && value,
  13557. i = 0,
  13558. len = this.length;
  13559. if ( jQuery.isFunction( value ) ) {
  13560. return this.each(function( j ) {
  13561. jQuery( this ).removeClass( value.call( this, j, this.className ) );
  13562. });
  13563. }
  13564. if ( proceed ) {
  13565. classes = ( value || "" ).match( rnotwhite ) || [];
  13566. for ( ; i < len; i++ ) {
  13567. elem = this[ i ];
  13568. // This expression is here for better compressibility (see addClass)
  13569. cur = elem.nodeType === 1 && ( elem.className ?
  13570. ( " " + elem.className + " " ).replace( rclass, " " ) :
  13571. ""
  13572. );
  13573. if ( cur ) {
  13574. j = 0;
  13575. while ( (clazz = classes[j++]) ) {
  13576. // Remove *all* instances
  13577. while ( cur.indexOf( " " + clazz + " " ) >= 0 ) {
  13578. cur = cur.replace( " " + clazz + " ", " " );
  13579. }
  13580. }
  13581. // Only assign if different to avoid unneeded rendering.
  13582. finalValue = value ? jQuery.trim( cur ) : "";
  13583. if ( elem.className !== finalValue ) {
  13584. elem.className = finalValue;
  13585. }
  13586. }
  13587. }
  13588. }
  13589. return this;
  13590. },
  13591. toggleClass: function( value, stateVal ) {
  13592. var type = typeof value;
  13593. if ( typeof stateVal === "boolean" && type === "string" ) {
  13594. return stateVal ? this.addClass( value ) : this.removeClass( value );
  13595. }
  13596. if ( jQuery.isFunction( value ) ) {
  13597. return this.each(function( i ) {
  13598. jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
  13599. });
  13600. }
  13601. return this.each(function() {
  13602. if ( type === "string" ) {
  13603. // Toggle individual class names
  13604. var className,
  13605. i = 0,
  13606. self = jQuery( this ),
  13607. classNames = value.match( rnotwhite ) || [];
  13608. while ( (className = classNames[ i++ ]) ) {
  13609. // Check each className given, space separated list
  13610. if ( self.hasClass( className ) ) {
  13611. self.removeClass( className );
  13612. } else {
  13613. self.addClass( className );
  13614. }
  13615. }
  13616. // Toggle whole class name
  13617. } else if ( type === strundefined || type === "boolean" ) {
  13618. if ( this.className ) {
  13619. // store className if set
  13620. data_priv.set( this, "__className__", this.className );
  13621. }
  13622. // If the element has a class name or if we're passed `false`,
  13623. // then remove the whole classname (if there was one, the above saved it).
  13624. // Otherwise bring back whatever was previously saved (if anything),
  13625. // falling back to the empty string if nothing was stored.
  13626. this.className = this.className || value === false ? "" : data_priv.get( this, "__className__" ) || "";
  13627. }
  13628. });
  13629. },
  13630. hasClass: function( selector ) {
  13631. var className = " " + selector + " ",
  13632. i = 0,
  13633. l = this.length;
  13634. for ( ; i < l; i++ ) {
  13635. if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) {
  13636. return true;
  13637. }
  13638. }
  13639. return false;
  13640. }
  13641. });
  13642. var rreturn = /\r/g;
  13643. jQuery.fn.extend({
  13644. val: function( value ) {
  13645. var hooks, ret, isFunction,
  13646. elem = this[0];
  13647. if ( !arguments.length ) {
  13648. if ( elem ) {
  13649. hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];
  13650. if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
  13651. return ret;
  13652. }
  13653. ret = elem.value;
  13654. return typeof ret === "string" ?
  13655. // Handle most common string cases
  13656. ret.replace(rreturn, "") :
  13657. // Handle cases where value is null/undef or number
  13658. ret == null ? "" : ret;
  13659. }
  13660. return;
  13661. }
  13662. isFunction = jQuery.isFunction( value );
  13663. return this.each(function( i ) {
  13664. var val;
  13665. if ( this.nodeType !== 1 ) {
  13666. return;
  13667. }
  13668. if ( isFunction ) {
  13669. val = value.call( this, i, jQuery( this ).val() );
  13670. } else {
  13671. val = value;
  13672. }
  13673. // Treat null/undefined as ""; convert numbers to string
  13674. if ( val == null ) {
  13675. val = "";
  13676. } else if ( typeof val === "number" ) {
  13677. val += "";
  13678. } else if ( jQuery.isArray( val ) ) {
  13679. val = jQuery.map( val, function( value ) {
  13680. return value == null ? "" : value + "";
  13681. });
  13682. }
  13683. hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
  13684. // If set returns undefined, fall back to normal setting
  13685. if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
  13686. this.value = val;
  13687. }
  13688. });
  13689. }
  13690. });
  13691. jQuery.extend({
  13692. valHooks: {
  13693. option: {
  13694. get: function( elem ) {
  13695. var val = jQuery.find.attr( elem, "value" );
  13696. return val != null ?
  13697. val :
  13698. // Support: IE10-11+
  13699. // option.text throws exceptions (#14686, #14858)
  13700. jQuery.trim( jQuery.text( elem ) );
  13701. }
  13702. },
  13703. select: {
  13704. get: function( elem ) {
  13705. var value, option,
  13706. options = elem.options,
  13707. index = elem.selectedIndex,
  13708. one = elem.type === "select-one" || index < 0,
  13709. values = one ? null : [],
  13710. max = one ? index + 1 : options.length,
  13711. i = index < 0 ?
  13712. max :
  13713. one ? index : 0;
  13714. // Loop through all the selected options
  13715. for ( ; i < max; i++ ) {
  13716. option = options[ i ];
  13717. // IE6-9 doesn't update selected after form reset (#2551)
  13718. if ( ( option.selected || i === index ) &&
  13719. // Don't return options that are disabled or in a disabled optgroup
  13720. ( support.optDisabled ? !option.disabled : option.getAttribute( "disabled" ) === null ) &&
  13721. ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
  13722. // Get the specific value for the option
  13723. value = jQuery( option ).val();
  13724. // We don't need an array for one selects
  13725. if ( one ) {
  13726. return value;
  13727. }
  13728. // Multi-Selects return an array
  13729. values.push( value );
  13730. }
  13731. }
  13732. return values;
  13733. },
  13734. set: function( elem, value ) {
  13735. var optionSet, option,
  13736. options = elem.options,
  13737. values = jQuery.makeArray( value ),
  13738. i = options.length;
  13739. while ( i-- ) {
  13740. option = options[ i ];
  13741. if ( (option.selected = jQuery.inArray( option.value, values ) >= 0) ) {
  13742. optionSet = true;
  13743. }
  13744. }
  13745. // Force browsers to behave consistently when non-matching value is set
  13746. if ( !optionSet ) {
  13747. elem.selectedIndex = -1;
  13748. }
  13749. return values;
  13750. }
  13751. }
  13752. }
  13753. });
  13754. // Radios and checkboxes getter/setter
  13755. jQuery.each([ "radio", "checkbox" ], function() {
  13756. jQuery.valHooks[ this ] = {
  13757. set: function( elem, value ) {
  13758. if ( jQuery.isArray( value ) ) {
  13759. return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );
  13760. }
  13761. }
  13762. };
  13763. if ( !support.checkOn ) {
  13764. jQuery.valHooks[ this ].get = function( elem ) {
  13765. return elem.getAttribute("value") === null ? "on" : elem.value;
  13766. };
  13767. }
  13768. });
  13769. // Return jQuery for attributes-only inclusion
  13770. jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
  13771. "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
  13772. "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) {
  13773. // Handle event binding
  13774. jQuery.fn[ name ] = function( data, fn ) {
  13775. return arguments.length > 0 ?
  13776. this.on( name, null, data, fn ) :
  13777. this.trigger( name );
  13778. };
  13779. });
  13780. jQuery.fn.extend({
  13781. hover: function( fnOver, fnOut ) {
  13782. return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
  13783. },
  13784. bind: function( types, data, fn ) {
  13785. return this.on( types, null, data, fn );
  13786. },
  13787. unbind: function( types, fn ) {
  13788. return this.off( types, null, fn );
  13789. },
  13790. delegate: function( selector, types, data, fn ) {
  13791. return this.on( types, selector, data, fn );
  13792. },
  13793. undelegate: function( selector, types, fn ) {
  13794. // ( namespace ) or ( selector, types [, fn] )
  13795. return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn );
  13796. }
  13797. });
  13798. var nonce = jQuery.now();
  13799. var rquery = (/\?/);
  13800. // Support: Android 2.3
  13801. // Workaround failure to string-cast null input
  13802. jQuery.parseJSON = function( data ) {
  13803. return JSON.parse( data + "" );
  13804. };
  13805. // Cross-browser xml parsing
  13806. jQuery.parseXML = function( data ) {
  13807. var xml, tmp;
  13808. if ( !data || typeof data !== "string" ) {
  13809. return null;
  13810. }
  13811. // Support: IE9
  13812. try {
  13813. tmp = new DOMParser();
  13814. xml = tmp.parseFromString( data, "text/xml" );
  13815. } catch ( e ) {
  13816. xml = undefined;
  13817. }
  13818. if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
  13819. jQuery.error( "Invalid XML: " + data );
  13820. }
  13821. return xml;
  13822. };
  13823. var
  13824. rhash = /#.*$/,
  13825. rts = /([?&])_=[^&]*/,
  13826. rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
  13827. // #7653, #8125, #8152: local protocol detection
  13828. rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
  13829. rnoContent = /^(?:GET|HEAD)$/,
  13830. rprotocol = /^\/\//,
  13831. rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
  13832. /* Prefilters
  13833. * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
  13834. * 2) These are called:
  13835. * - BEFORE asking for a transport
  13836. * - AFTER param serialization (s.data is a string if s.processData is true)
  13837. * 3) key is the dataType
  13838. * 4) the catchall symbol "*" can be used
  13839. * 5) execution will start with transport dataType and THEN continue down to "*" if needed
  13840. */
  13841. prefilters = {},
  13842. /* Transports bindings
  13843. * 1) key is the dataType
  13844. * 2) the catchall symbol "*" can be used
  13845. * 3) selection will start with transport dataType and THEN go to "*" if needed
  13846. */
  13847. transports = {},
  13848. // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
  13849. allTypes = "*/".concat( "*" ),
  13850. // Document location
  13851. ajaxLocation = window.location.href,
  13852. // Segment location into parts
  13853. ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
  13854. // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
  13855. function addToPrefiltersOrTransports( structure ) {
  13856. // dataTypeExpression is optional and defaults to "*"
  13857. return function( dataTypeExpression, func ) {
  13858. if ( typeof dataTypeExpression !== "string" ) {
  13859. func = dataTypeExpression;
  13860. dataTypeExpression = "*";
  13861. }
  13862. var dataType,
  13863. i = 0,
  13864. dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || [];
  13865. if ( jQuery.isFunction( func ) ) {
  13866. // For each dataType in the dataTypeExpression
  13867. while ( (dataType = dataTypes[i++]) ) {
  13868. // Prepend if requested
  13869. if ( dataType[0] === "+" ) {
  13870. dataType = dataType.slice( 1 ) || "*";
  13871. (structure[ dataType ] = structure[ dataType ] || []).unshift( func );
  13872. // Otherwise append
  13873. } else {
  13874. (structure[ dataType ] = structure[ dataType ] || []).push( func );
  13875. }
  13876. }
  13877. }
  13878. };
  13879. }
  13880. // Base inspection function for prefilters and transports
  13881. function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
  13882. var inspected = {},
  13883. seekingTransport = ( structure === transports );
  13884. function inspect( dataType ) {
  13885. var selected;
  13886. inspected[ dataType ] = true;
  13887. jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
  13888. var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
  13889. if ( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) {
  13890. options.dataTypes.unshift( dataTypeOrTransport );
  13891. inspect( dataTypeOrTransport );
  13892. return false;
  13893. } else if ( seekingTransport ) {
  13894. return !( selected = dataTypeOrTransport );
  13895. }
  13896. });
  13897. return selected;
  13898. }
  13899. return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
  13900. }
  13901. // A special extend for ajax options
  13902. // that takes "flat" options (not to be deep extended)
  13903. // Fixes #9887
  13904. function ajaxExtend( target, src ) {
  13905. var key, deep,
  13906. flatOptions = jQuery.ajaxSettings.flatOptions || {};
  13907. for ( key in src ) {
  13908. if ( src[ key ] !== undefined ) {
  13909. ( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ];
  13910. }
  13911. }
  13912. if ( deep ) {
  13913. jQuery.extend( true, target, deep );
  13914. }
  13915. return target;
  13916. }
  13917. /* Handles responses to an ajax request:
  13918. * - finds the right dataType (mediates between content-type and expected dataType)
  13919. * - returns the corresponding response
  13920. */
  13921. function ajaxHandleResponses( s, jqXHR, responses ) {
  13922. var ct, type, finalDataType, firstDataType,
  13923. contents = s.contents,
  13924. dataTypes = s.dataTypes;
  13925. // Remove auto dataType and get content-type in the process
  13926. while ( dataTypes[ 0 ] === "*" ) {
  13927. dataTypes.shift();
  13928. if ( ct === undefined ) {
  13929. ct = s.mimeType || jqXHR.getResponseHeader("Content-Type");
  13930. }
  13931. }
  13932. // Check if we're dealing with a known content-type
  13933. if ( ct ) {
  13934. for ( type in contents ) {
  13935. if ( contents[ type ] && contents[ type ].test( ct ) ) {
  13936. dataTypes.unshift( type );
  13937. break;
  13938. }
  13939. }
  13940. }
  13941. // Check to see if we have a response for the expected dataType
  13942. if ( dataTypes[ 0 ] in responses ) {
  13943. finalDataType = dataTypes[ 0 ];
  13944. } else {
  13945. // Try convertible dataTypes
  13946. for ( type in responses ) {
  13947. if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
  13948. finalDataType = type;
  13949. break;
  13950. }
  13951. if ( !firstDataType ) {
  13952. firstDataType = type;
  13953. }
  13954. }
  13955. // Or just use first one
  13956. finalDataType = finalDataType || firstDataType;
  13957. }
  13958. // If we found a dataType
  13959. // We add the dataType to the list if needed
  13960. // and return the corresponding response
  13961. if ( finalDataType ) {
  13962. if ( finalDataType !== dataTypes[ 0 ] ) {
  13963. dataTypes.unshift( finalDataType );
  13964. }
  13965. return responses[ finalDataType ];
  13966. }
  13967. }
  13968. /* Chain conversions given the request and the original response
  13969. * Also sets the responseXXX fields on the jqXHR instance
  13970. */
  13971. function ajaxConvert( s, response, jqXHR, isSuccess ) {
  13972. var conv2, current, conv, tmp, prev,
  13973. converters = {},
  13974. // Work with a copy of dataTypes in case we need to modify it for conversion
  13975. dataTypes = s.dataTypes.slice();
  13976. // Create converters map with lowercased keys
  13977. if ( dataTypes[ 1 ] ) {
  13978. for ( conv in s.converters ) {
  13979. converters[ conv.toLowerCase() ] = s.converters[ conv ];
  13980. }
  13981. }
  13982. current = dataTypes.shift();
  13983. // Convert to each sequential dataType
  13984. while ( current ) {
  13985. if ( s.responseFields[ current ] ) {
  13986. jqXHR[ s.responseFields[ current ] ] = response;
  13987. }
  13988. // Apply the dataFilter if provided
  13989. if ( !prev && isSuccess && s.dataFilter ) {
  13990. response = s.dataFilter( response, s.dataType );
  13991. }
  13992. prev = current;
  13993. current = dataTypes.shift();
  13994. if ( current ) {
  13995. // There's only work to do if current dataType is non-auto
  13996. if ( current === "*" ) {
  13997. current = prev;
  13998. // Convert response if prev dataType is non-auto and differs from current
  13999. } else if ( prev !== "*" && prev !== current ) {
  14000. // Seek a direct converter
  14001. conv = converters[ prev + " " + current ] || converters[ "* " + current ];
  14002. // If none found, seek a pair
  14003. if ( !conv ) {
  14004. for ( conv2 in converters ) {
  14005. // If conv2 outputs current
  14006. tmp = conv2.split( " " );
  14007. if ( tmp[ 1 ] === current ) {
  14008. // If prev can be converted to accepted input
  14009. conv = converters[ prev + " " + tmp[ 0 ] ] ||
  14010. converters[ "* " + tmp[ 0 ] ];
  14011. if ( conv ) {
  14012. // Condense equivalence converters
  14013. if ( conv === true ) {
  14014. conv = converters[ conv2 ];
  14015. // Otherwise, insert the intermediate dataType
  14016. } else if ( converters[ conv2 ] !== true ) {
  14017. current = tmp[ 0 ];
  14018. dataTypes.unshift( tmp[ 1 ] );
  14019. }
  14020. break;
  14021. }
  14022. }
  14023. }
  14024. }
  14025. // Apply converter (if not an equivalence)
  14026. if ( conv !== true ) {
  14027. // Unless errors are allowed to bubble, catch and return them
  14028. if ( conv && s[ "throws" ] ) {
  14029. response = conv( response );
  14030. } else {
  14031. try {
  14032. response = conv( response );
  14033. } catch ( e ) {
  14034. return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current };
  14035. }
  14036. }
  14037. }
  14038. }
  14039. }
  14040. }
  14041. return { state: "success", data: response };
  14042. }
  14043. jQuery.extend({
  14044. // Counter for holding the number of active queries
  14045. active: 0,
  14046. // Last-Modified header cache for next request
  14047. lastModified: {},
  14048. etag: {},
  14049. ajaxSettings: {
  14050. url: ajaxLocation,
  14051. type: "GET",
  14052. isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
  14053. global: true,
  14054. processData: true,
  14055. async: true,
  14056. contentType: "application/x-www-form-urlencoded; charset=UTF-8",
  14057. /*
  14058. timeout: 0,
  14059. data: null,
  14060. dataType: null,
  14061. username: null,
  14062. password: null,
  14063. cache: null,
  14064. throws: false,
  14065. traditional: false,
  14066. headers: {},
  14067. */
  14068. accepts: {
  14069. "*": allTypes,
  14070. text: "text/plain",
  14071. html: "text/html",
  14072. xml: "application/xml, text/xml",
  14073. json: "application/json, text/javascript"
  14074. },
  14075. contents: {
  14076. xml: /xml/,
  14077. html: /html/,
  14078. json: /json/
  14079. },
  14080. responseFields: {
  14081. xml: "responseXML",
  14082. text: "responseText",
  14083. json: "responseJSON"
  14084. },
  14085. // Data converters
  14086. // Keys separate source (or catchall "*") and destination types with a single space
  14087. converters: {
  14088. // Convert anything to text
  14089. "* text": String,
  14090. // Text to html (true = no transformation)
  14091. "text html": true,
  14092. // Evaluate text as a json expression
  14093. "text json": jQuery.parseJSON,
  14094. // Parse text as xml
  14095. "text xml": jQuery.parseXML
  14096. },
  14097. // For options that shouldn't be deep extended:
  14098. // you can add your own custom options here if
  14099. // and when you create one that shouldn't be
  14100. // deep extended (see ajaxExtend)
  14101. flatOptions: {
  14102. url: true,
  14103. context: true
  14104. }
  14105. },
  14106. // Creates a full fledged settings object into target
  14107. // with both ajaxSettings and settings fields.
  14108. // If target is omitted, writes into ajaxSettings.
  14109. ajaxSetup: function( target, settings ) {
  14110. return settings ?
  14111. // Building a settings object
  14112. ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
  14113. // Extending ajaxSettings
  14114. ajaxExtend( jQuery.ajaxSettings, target );
  14115. },
  14116. ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
  14117. ajaxTransport: addToPrefiltersOrTransports( transports ),
  14118. // Main method
  14119. ajax: function( url, options ) {
  14120. // If url is an object, simulate pre-1.5 signature
  14121. if ( typeof url === "object" ) {
  14122. options = url;
  14123. url = undefined;
  14124. }
  14125. // Force options to be an object
  14126. options = options || {};
  14127. var transport,
  14128. // URL without anti-cache param
  14129. cacheURL,
  14130. // Response headers
  14131. responseHeadersString,
  14132. responseHeaders,
  14133. // timeout handle
  14134. timeoutTimer,
  14135. // Cross-domain detection vars
  14136. parts,
  14137. // To know if global events are to be dispatched
  14138. fireGlobals,
  14139. // Loop variable
  14140. i,
  14141. // Create the final options object
  14142. s = jQuery.ajaxSetup( {}, options ),
  14143. // Callbacks context
  14144. callbackContext = s.context || s,
  14145. // Context for global events is callbackContext if it is a DOM node or jQuery collection
  14146. globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ?
  14147. jQuery( callbackContext ) :
  14148. jQuery.event,
  14149. // Deferreds
  14150. deferred = jQuery.Deferred(),
  14151. completeDeferred = jQuery.Callbacks("once memory"),
  14152. // Status-dependent callbacks
  14153. statusCode = s.statusCode || {},
  14154. // Headers (they are sent all at once)
  14155. requestHeaders = {},
  14156. requestHeadersNames = {},
  14157. // The jqXHR state
  14158. state = 0,
  14159. // Default abort message
  14160. strAbort = "canceled",
  14161. // Fake xhr
  14162. jqXHR = {
  14163. readyState: 0,
  14164. // Builds headers hashtable if needed
  14165. getResponseHeader: function( key ) {
  14166. var match;
  14167. if ( state === 2 ) {
  14168. if ( !responseHeaders ) {
  14169. responseHeaders = {};
  14170. while ( (match = rheaders.exec( responseHeadersString )) ) {
  14171. responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
  14172. }
  14173. }
  14174. match = responseHeaders[ key.toLowerCase() ];
  14175. }
  14176. return match == null ? null : match;
  14177. },
  14178. // Raw string
  14179. getAllResponseHeaders: function() {
  14180. return state === 2 ? responseHeadersString : null;
  14181. },
  14182. // Caches the header
  14183. setRequestHeader: function( name, value ) {
  14184. var lname = name.toLowerCase();
  14185. if ( !state ) {
  14186. name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
  14187. requestHeaders[ name ] = value;
  14188. }
  14189. return this;
  14190. },
  14191. // Overrides response content-type header
  14192. overrideMimeType: function( type ) {
  14193. if ( !state ) {
  14194. s.mimeType = type;
  14195. }
  14196. return this;
  14197. },
  14198. // Status-dependent callbacks
  14199. statusCode: function( map ) {
  14200. var code;
  14201. if ( map ) {
  14202. if ( state < 2 ) {
  14203. for ( code in map ) {
  14204. // Lazy-add the new callback in a way that preserves old ones
  14205. statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
  14206. }
  14207. } else {
  14208. // Execute the appropriate callbacks
  14209. jqXHR.always( map[ jqXHR.status ] );
  14210. }
  14211. }
  14212. return this;
  14213. },
  14214. // Cancel the request
  14215. abort: function( statusText ) {
  14216. var finalText = statusText || strAbort;
  14217. if ( transport ) {
  14218. transport.abort( finalText );
  14219. }
  14220. done( 0, finalText );
  14221. return this;
  14222. }
  14223. };
  14224. // Attach deferreds
  14225. deferred.promise( jqXHR ).complete = completeDeferred.add;
  14226. jqXHR.success = jqXHR.done;
  14227. jqXHR.error = jqXHR.fail;
  14228. // Remove hash character (#7531: and string promotion)
  14229. // Add protocol if not provided (prefilters might expect it)
  14230. // Handle falsy url in the settings object (#10093: consistency with old signature)
  14231. // We also use the url parameter if available
  14232. s.url = ( ( url || s.url || ajaxLocation ) + "" ).replace( rhash, "" )
  14233. .replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
  14234. // Alias method option to type as per ticket #12004
  14235. s.type = options.method || options.type || s.method || s.type;
  14236. // Extract dataTypes list
  14237. s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ];
  14238. // A cross-domain request is in order when we have a protocol:host:port mismatch
  14239. if ( s.crossDomain == null ) {
  14240. parts = rurl.exec( s.url.toLowerCase() );
  14241. s.crossDomain = !!( parts &&
  14242. ( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] ||
  14243. ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !==
  14244. ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) )
  14245. );
  14246. }
  14247. // Convert data if not already a string
  14248. if ( s.data && s.processData && typeof s.data !== "string" ) {
  14249. s.data = jQuery.param( s.data, s.traditional );
  14250. }
  14251. // Apply prefilters
  14252. inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
  14253. // If request was aborted inside a prefilter, stop there
  14254. if ( state === 2 ) {
  14255. return jqXHR;
  14256. }
  14257. // We can fire global events as of now if asked to
  14258. // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
  14259. fireGlobals = jQuery.event && s.global;
  14260. // Watch for a new set of requests
  14261. if ( fireGlobals && jQuery.active++ === 0 ) {
  14262. jQuery.event.trigger("ajaxStart");
  14263. }
  14264. // Uppercase the type
  14265. s.type = s.type.toUpperCase();
  14266. // Determine if request has content
  14267. s.hasContent = !rnoContent.test( s.type );
  14268. // Save the URL in case we're toying with the If-Modified-Since
  14269. // and/or If-None-Match header later on
  14270. cacheURL = s.url;
  14271. // More options handling for requests with no content
  14272. if ( !s.hasContent ) {
  14273. // If data is available, append data to url
  14274. if ( s.data ) {
  14275. cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data );
  14276. // #9682: remove data so that it's not used in an eventual retry
  14277. delete s.data;
  14278. }
  14279. // Add anti-cache in url if needed
  14280. if ( s.cache === false ) {
  14281. s.url = rts.test( cacheURL ) ?
  14282. // If there is already a '_' parameter, set its value
  14283. cacheURL.replace( rts, "$1_=" + nonce++ ) :
  14284. // Otherwise add one to the end
  14285. cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++;
  14286. }
  14287. }
  14288. // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
  14289. if ( s.ifModified ) {
  14290. if ( jQuery.lastModified[ cacheURL ] ) {
  14291. jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
  14292. }
  14293. if ( jQuery.etag[ cacheURL ] ) {
  14294. jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
  14295. }
  14296. }
  14297. // Set the correct header, if data is being sent
  14298. if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
  14299. jqXHR.setRequestHeader( "Content-Type", s.contentType );
  14300. }
  14301. // Set the Accepts header for the server, depending on the dataType
  14302. jqXHR.setRequestHeader(
  14303. "Accept",
  14304. s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
  14305. s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
  14306. s.accepts[ "*" ]
  14307. );
  14308. // Check for headers option
  14309. for ( i in s.headers ) {
  14310. jqXHR.setRequestHeader( i, s.headers[ i ] );
  14311. }
  14312. // Allow custom headers/mimetypes and early abort
  14313. if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
  14314. // Abort if not done already and return
  14315. return jqXHR.abort();
  14316. }
  14317. // Aborting is no longer a cancellation
  14318. strAbort = "abort";
  14319. // Install callbacks on deferreds
  14320. for ( i in { success: 1, error: 1, complete: 1 } ) {
  14321. jqXHR[ i ]( s[ i ] );
  14322. }
  14323. // Get transport
  14324. transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
  14325. // If no transport, we auto-abort
  14326. if ( !transport ) {
  14327. done( -1, "No Transport" );
  14328. } else {
  14329. jqXHR.readyState = 1;
  14330. // Send global event
  14331. if ( fireGlobals ) {
  14332. globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
  14333. }
  14334. // Timeout
  14335. if ( s.async && s.timeout > 0 ) {
  14336. timeoutTimer = setTimeout(function() {
  14337. jqXHR.abort("timeout");
  14338. }, s.timeout );
  14339. }
  14340. try {
  14341. state = 1;
  14342. transport.send( requestHeaders, done );
  14343. } catch ( e ) {
  14344. // Propagate exception as error if not done
  14345. if ( state < 2 ) {
  14346. done( -1, e );
  14347. // Simply rethrow otherwise
  14348. } else {
  14349. throw e;
  14350. }
  14351. }
  14352. }
  14353. // Callback for when everything is done
  14354. function done( status, nativeStatusText, responses, headers ) {
  14355. var isSuccess, success, error, response, modified,
  14356. statusText = nativeStatusText;
  14357. // Called once
  14358. if ( state === 2 ) {
  14359. return;
  14360. }
  14361. // State is "done" now
  14362. state = 2;
  14363. // Clear timeout if it exists
  14364. if ( timeoutTimer ) {
  14365. clearTimeout( timeoutTimer );
  14366. }
  14367. // Dereference transport for early garbage collection
  14368. // (no matter how long the jqXHR object will be used)
  14369. transport = undefined;
  14370. // Cache response headers
  14371. responseHeadersString = headers || "";
  14372. // Set readyState
  14373. jqXHR.readyState = status > 0 ? 4 : 0;
  14374. // Determine if successful
  14375. isSuccess = status >= 200 && status < 300 || status === 304;
  14376. // Get response data
  14377. if ( responses ) {
  14378. response = ajaxHandleResponses( s, jqXHR, responses );
  14379. }
  14380. // Convert no matter what (that way responseXXX fields are always set)
  14381. response = ajaxConvert( s, response, jqXHR, isSuccess );
  14382. // If successful, handle type chaining
  14383. if ( isSuccess ) {
  14384. // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
  14385. if ( s.ifModified ) {
  14386. modified = jqXHR.getResponseHeader("Last-Modified");
  14387. if ( modified ) {
  14388. jQuery.lastModified[ cacheURL ] = modified;
  14389. }
  14390. modified = jqXHR.getResponseHeader("etag");
  14391. if ( modified ) {
  14392. jQuery.etag[ cacheURL ] = modified;
  14393. }
  14394. }
  14395. // if no content
  14396. if ( status === 204 || s.type === "HEAD" ) {
  14397. statusText = "nocontent";
  14398. // if not modified
  14399. } else if ( status === 304 ) {
  14400. statusText = "notmodified";
  14401. // If we have data, let's convert it
  14402. } else {
  14403. statusText = response.state;
  14404. success = response.data;
  14405. error = response.error;
  14406. isSuccess = !error;
  14407. }
  14408. } else {
  14409. // Extract error from statusText and normalize for non-aborts
  14410. error = statusText;
  14411. if ( status || !statusText ) {
  14412. statusText = "error";
  14413. if ( status < 0 ) {
  14414. status = 0;
  14415. }
  14416. }
  14417. }
  14418. // Set data for the fake xhr object
  14419. jqXHR.status = status;
  14420. jqXHR.statusText = ( nativeStatusText || statusText ) + "";
  14421. // Success/Error
  14422. if ( isSuccess ) {
  14423. deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
  14424. } else {
  14425. deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
  14426. }
  14427. // Status-dependent callbacks
  14428. jqXHR.statusCode( statusCode );
  14429. statusCode = undefined;
  14430. if ( fireGlobals ) {
  14431. globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
  14432. [ jqXHR, s, isSuccess ? success : error ] );
  14433. }
  14434. // Complete
  14435. completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
  14436. if ( fireGlobals ) {
  14437. globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
  14438. // Handle the global AJAX counter
  14439. if ( !( --jQuery.active ) ) {
  14440. jQuery.event.trigger("ajaxStop");
  14441. }
  14442. }
  14443. }
  14444. return jqXHR;
  14445. },
  14446. getJSON: function( url, data, callback ) {
  14447. return jQuery.get( url, data, callback, "json" );
  14448. },
  14449. getScript: function( url, callback ) {
  14450. return jQuery.get( url, undefined, callback, "script" );
  14451. }
  14452. });
  14453. jQuery.each( [ "get", "post" ], function( i, method ) {
  14454. jQuery[ method ] = function( url, data, callback, type ) {
  14455. // Shift arguments if data argument was omitted
  14456. if ( jQuery.isFunction( data ) ) {
  14457. type = type || callback;
  14458. callback = data;
  14459. data = undefined;
  14460. }
  14461. return jQuery.ajax({
  14462. url: url,
  14463. type: method,
  14464. dataType: type,
  14465. data: data,
  14466. success: callback
  14467. });
  14468. };
  14469. });
  14470. jQuery._evalUrl = function( url ) {
  14471. return jQuery.ajax({
  14472. url: url,
  14473. type: "GET",
  14474. dataType: "script",
  14475. async: false,
  14476. global: false,
  14477. "throws": true
  14478. });
  14479. };
  14480. jQuery.fn.extend({
  14481. wrapAll: function( html ) {
  14482. var wrap;
  14483. if ( jQuery.isFunction( html ) ) {
  14484. return this.each(function( i ) {
  14485. jQuery( this ).wrapAll( html.call(this, i) );
  14486. });
  14487. }
  14488. if ( this[ 0 ] ) {
  14489. // The elements to wrap the target around
  14490. wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
  14491. if ( this[ 0 ].parentNode ) {
  14492. wrap.insertBefore( this[ 0 ] );
  14493. }
  14494. wrap.map(function() {
  14495. var elem = this;
  14496. while ( elem.firstElementChild ) {
  14497. elem = elem.firstElementChild;
  14498. }
  14499. return elem;
  14500. }).append( this );
  14501. }
  14502. return this;
  14503. },
  14504. wrapInner: function( html ) {
  14505. if ( jQuery.isFunction( html ) ) {
  14506. return this.each(function( i ) {
  14507. jQuery( this ).wrapInner( html.call(this, i) );
  14508. });
  14509. }
  14510. return this.each(function() {
  14511. var self = jQuery( this ),
  14512. contents = self.contents();
  14513. if ( contents.length ) {
  14514. contents.wrapAll( html );
  14515. } else {
  14516. self.append( html );
  14517. }
  14518. });
  14519. },
  14520. wrap: function( html ) {
  14521. var isFunction = jQuery.isFunction( html );
  14522. return this.each(function( i ) {
  14523. jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );
  14524. });
  14525. },
  14526. unwrap: function() {
  14527. return this.parent().each(function() {
  14528. if ( !jQuery.nodeName( this, "body" ) ) {
  14529. jQuery( this ).replaceWith( this.childNodes );
  14530. }
  14531. }).end();
  14532. }
  14533. });
  14534. jQuery.expr.filters.hidden = function( elem ) {
  14535. // Support: Opera <= 12.12
  14536. // Opera reports offsetWidths and offsetHeights less than zero on some elements
  14537. return elem.offsetWidth <= 0 && elem.offsetHeight <= 0;
  14538. };
  14539. jQuery.expr.filters.visible = function( elem ) {
  14540. return !jQuery.expr.filters.hidden( elem );
  14541. };
  14542. var r20 = /%20/g,
  14543. rbracket = /\[\]$/,
  14544. rCRLF = /\r?\n/g,
  14545. rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
  14546. rsubmittable = /^(?:input|select|textarea|keygen)/i;
  14547. function buildParams( prefix, obj, traditional, add ) {
  14548. var name;
  14549. if ( jQuery.isArray( obj ) ) {
  14550. // Serialize array item.
  14551. jQuery.each( obj, function( i, v ) {
  14552. if ( traditional || rbracket.test( prefix ) ) {
  14553. // Treat each array item as a scalar.
  14554. add( prefix, v );
  14555. } else {
  14556. // Item is non-scalar (array or object), encode its numeric index.
  14557. buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add );
  14558. }
  14559. });
  14560. } else if ( !traditional && jQuery.type( obj ) === "object" ) {
  14561. // Serialize object item.
  14562. for ( name in obj ) {
  14563. buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
  14564. }
  14565. } else {
  14566. // Serialize scalar item.
  14567. add( prefix, obj );
  14568. }
  14569. }
  14570. // Serialize an array of form elements or a set of
  14571. // key/values into a query string
  14572. jQuery.param = function( a, traditional ) {
  14573. var prefix,
  14574. s = [],
  14575. add = function( key, value ) {
  14576. // If value is a function, invoke it and return its value
  14577. value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
  14578. s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
  14579. };
  14580. // Set traditional to true for jQuery <= 1.3.2 behavior.
  14581. if ( traditional === undefined ) {
  14582. traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
  14583. }
  14584. // If an array was passed in, assume that it is an array of form elements.
  14585. if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
  14586. // Serialize the form elements
  14587. jQuery.each( a, function() {
  14588. add( this.name, this.value );
  14589. });
  14590. } else {
  14591. // If traditional, encode the "old" way (the way 1.3.2 or older
  14592. // did it), otherwise encode params recursively.
  14593. for ( prefix in a ) {
  14594. buildParams( prefix, a[ prefix ], traditional, add );
  14595. }
  14596. }
  14597. // Return the resulting serialization
  14598. return s.join( "&" ).replace( r20, "+" );
  14599. };
  14600. jQuery.fn.extend({
  14601. serialize: function() {
  14602. return jQuery.param( this.serializeArray() );
  14603. },
  14604. serializeArray: function() {
  14605. return this.map(function() {
  14606. // Can add propHook for "elements" to filter or add form elements
  14607. var elements = jQuery.prop( this, "elements" );
  14608. return elements ? jQuery.makeArray( elements ) : this;
  14609. })
  14610. .filter(function() {
  14611. var type = this.type;
  14612. // Use .is( ":disabled" ) so that fieldset[disabled] works
  14613. return this.name && !jQuery( this ).is( ":disabled" ) &&
  14614. rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
  14615. ( this.checked || !rcheckableType.test( type ) );
  14616. })
  14617. .map(function( i, elem ) {
  14618. var val = jQuery( this ).val();
  14619. return val == null ?
  14620. null :
  14621. jQuery.isArray( val ) ?
  14622. jQuery.map( val, function( val ) {
  14623. return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
  14624. }) :
  14625. { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
  14626. }).get();
  14627. }
  14628. });
  14629. jQuery.ajaxSettings.xhr = function() {
  14630. try {
  14631. return new XMLHttpRequest();
  14632. } catch( e ) {}
  14633. };
  14634. var xhrId = 0,
  14635. xhrCallbacks = {},
  14636. xhrSuccessStatus = {
  14637. // file protocol always yields status code 0, assume 200
  14638. 0: 200,
  14639. // Support: IE9
  14640. // #1450: sometimes IE returns 1223 when it should be 204
  14641. 1223: 204
  14642. },
  14643. xhrSupported = jQuery.ajaxSettings.xhr();
  14644. // Support: IE9
  14645. // Open requests must be manually aborted on unload (#5280)
  14646. // See https://support.microsoft.com/kb/2856746 for more info
  14647. if ( window.attachEvent ) {
  14648. window.attachEvent( "onunload", function() {
  14649. for ( var key in xhrCallbacks ) {
  14650. xhrCallbacks[ key ]();
  14651. }
  14652. });
  14653. }
  14654. support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
  14655. support.ajax = xhrSupported = !!xhrSupported;
  14656. jQuery.ajaxTransport(function( options ) {
  14657. var callback;
  14658. // Cross domain only allowed if supported through XMLHttpRequest
  14659. if ( support.cors || xhrSupported && !options.crossDomain ) {
  14660. return {
  14661. send: function( headers, complete ) {
  14662. var i,
  14663. xhr = options.xhr(),
  14664. id = ++xhrId;
  14665. xhr.open( options.type, options.url, options.async, options.username, options.password );
  14666. // Apply custom fields if provided
  14667. if ( options.xhrFields ) {
  14668. for ( i in options.xhrFields ) {
  14669. xhr[ i ] = options.xhrFields[ i ];
  14670. }
  14671. }
  14672. // Override mime type if needed
  14673. if ( options.mimeType && xhr.overrideMimeType ) {
  14674. xhr.overrideMimeType( options.mimeType );
  14675. }
  14676. // X-Requested-With header
  14677. // For cross-domain requests, seeing as conditions for a preflight are
  14678. // akin to a jigsaw puzzle, we simply never set it to be sure.
  14679. // (it can always be set on a per-request basis or even using ajaxSetup)
  14680. // For same-domain requests, won't change header if already provided.
  14681. if ( !options.crossDomain && !headers["X-Requested-With"] ) {
  14682. headers["X-Requested-With"] = "XMLHttpRequest";
  14683. }
  14684. // Set headers
  14685. for ( i in headers ) {
  14686. xhr.setRequestHeader( i, headers[ i ] );
  14687. }
  14688. // Callback
  14689. callback = function( type ) {
  14690. return function() {
  14691. if ( callback ) {
  14692. delete xhrCallbacks[ id ];
  14693. callback = xhr.onload = xhr.onerror = null;
  14694. if ( type === "abort" ) {
  14695. xhr.abort();
  14696. } else if ( type === "error" ) {
  14697. complete(
  14698. // file: protocol always yields status 0; see #8605, #14207
  14699. xhr.status,
  14700. xhr.statusText
  14701. );
  14702. } else {
  14703. complete(
  14704. xhrSuccessStatus[ xhr.status ] || xhr.status,
  14705. xhr.statusText,
  14706. // Support: IE9
  14707. // Accessing binary-data responseText throws an exception
  14708. // (#11426)
  14709. typeof xhr.responseText === "string" ? {
  14710. text: xhr.responseText
  14711. } : undefined,
  14712. xhr.getAllResponseHeaders()
  14713. );
  14714. }
  14715. }
  14716. };
  14717. };
  14718. // Listen to events
  14719. xhr.onload = callback();
  14720. xhr.onerror = callback("error");
  14721. // Create the abort callback
  14722. callback = xhrCallbacks[ id ] = callback("abort");
  14723. try {
  14724. // Do send the request (this may raise an exception)
  14725. xhr.send( options.hasContent && options.data || null );
  14726. } catch ( e ) {
  14727. // #14683: Only rethrow if this hasn't been notified as an error yet
  14728. if ( callback ) {
  14729. throw e;
  14730. }
  14731. }
  14732. },
  14733. abort: function() {
  14734. if ( callback ) {
  14735. callback();
  14736. }
  14737. }
  14738. };
  14739. }
  14740. });
  14741. // Install script dataType
  14742. jQuery.ajaxSetup({
  14743. accepts: {
  14744. script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
  14745. },
  14746. contents: {
  14747. script: /(?:java|ecma)script/
  14748. },
  14749. converters: {
  14750. "text script": function( text ) {
  14751. jQuery.globalEval( text );
  14752. return text;
  14753. }
  14754. }
  14755. });
  14756. // Handle cache's special case and crossDomain
  14757. jQuery.ajaxPrefilter( "script", function( s ) {
  14758. if ( s.cache === undefined ) {
  14759. s.cache = false;
  14760. }
  14761. if ( s.crossDomain ) {
  14762. s.type = "GET";
  14763. }
  14764. });
  14765. // Bind script tag hack transport
  14766. jQuery.ajaxTransport( "script", function( s ) {
  14767. // This transport only deals with cross domain requests
  14768. if ( s.crossDomain ) {
  14769. var script, callback;
  14770. return {
  14771. send: function( _, complete ) {
  14772. script = jQuery("<script>").prop({
  14773. async: true,
  14774. charset: s.scriptCharset,
  14775. src: s.url
  14776. }).on(
  14777. "load error",
  14778. callback = function( evt ) {
  14779. script.remove();
  14780. callback = null;
  14781. if ( evt ) {
  14782. complete( evt.type === "error" ? 404 : 200, evt.type );
  14783. }
  14784. }
  14785. );
  14786. document.head.appendChild( script[ 0 ] );
  14787. },
  14788. abort: function() {
  14789. if ( callback ) {
  14790. callback();
  14791. }
  14792. }
  14793. };
  14794. }
  14795. });
  14796. var oldCallbacks = [],
  14797. rjsonp = /(=)\?(?=&|$)|\?\?/;
  14798. // Default jsonp settings
  14799. jQuery.ajaxSetup({
  14800. jsonp: "callback",
  14801. jsonpCallback: function() {
  14802. var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
  14803. this[ callback ] = true;
  14804. return callback;
  14805. }
  14806. });
  14807. // Detect, normalize options and install callbacks for jsonp requests
  14808. jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
  14809. var callbackName, overwritten, responseContainer,
  14810. jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
  14811. "url" :
  14812. typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data"
  14813. );
  14814. // Handle iff the expected data type is "jsonp" or we have a parameter to set
  14815. if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
  14816. // Get callback name, remembering preexisting value associated with it
  14817. callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
  14818. s.jsonpCallback() :
  14819. s.jsonpCallback;
  14820. // Insert callback into url or form data
  14821. if ( jsonProp ) {
  14822. s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
  14823. } else if ( s.jsonp !== false ) {
  14824. s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
  14825. }
  14826. // Use data converter to retrieve json after script execution
  14827. s.converters["script json"] = function() {
  14828. if ( !responseContainer ) {
  14829. jQuery.error( callbackName + " was not called" );
  14830. }
  14831. return responseContainer[ 0 ];
  14832. };
  14833. // force json dataType
  14834. s.dataTypes[ 0 ] = "json";
  14835. // Install callback
  14836. overwritten = window[ callbackName ];
  14837. window[ callbackName ] = function() {
  14838. responseContainer = arguments;
  14839. };
  14840. // Clean-up function (fires after converters)
  14841. jqXHR.always(function() {
  14842. // Restore preexisting value
  14843. window[ callbackName ] = overwritten;
  14844. // Save back as free
  14845. if ( s[ callbackName ] ) {
  14846. // make sure that re-using the options doesn't screw things around
  14847. s.jsonpCallback = originalSettings.jsonpCallback;
  14848. // save the callback name for future use
  14849. oldCallbacks.push( callbackName );
  14850. }
  14851. // Call if it was a function and we have a response
  14852. if ( responseContainer && jQuery.isFunction( overwritten ) ) {
  14853. overwritten( responseContainer[ 0 ] );
  14854. }
  14855. responseContainer = overwritten = undefined;
  14856. });
  14857. // Delegate to script
  14858. return "script";
  14859. }
  14860. });
  14861. // data: string of html
  14862. // context (optional): If specified, the fragment will be created in this context, defaults to document
  14863. // keepScripts (optional): If true, will include scripts passed in the html string
  14864. jQuery.parseHTML = function( data, context, keepScripts ) {
  14865. if ( !data || typeof data !== "string" ) {
  14866. return null;
  14867. }
  14868. if ( typeof context === "boolean" ) {
  14869. keepScripts = context;
  14870. context = false;
  14871. }
  14872. context = context || document;
  14873. var parsed = rsingleTag.exec( data ),
  14874. scripts = !keepScripts && [];
  14875. // Single tag
  14876. if ( parsed ) {
  14877. return [ context.createElement( parsed[1] ) ];
  14878. }
  14879. parsed = jQuery.buildFragment( [ data ], context, scripts );
  14880. if ( scripts && scripts.length ) {
  14881. jQuery( scripts ).remove();
  14882. }
  14883. return jQuery.merge( [], parsed.childNodes );
  14884. };
  14885. // Keep a copy of the old load method
  14886. var _load = jQuery.fn.load;
  14887. /**
  14888. * Load a url into a page
  14889. */
  14890. jQuery.fn.load = function( url, params, callback ) {
  14891. if ( typeof url !== "string" && _load ) {
  14892. return _load.apply( this, arguments );
  14893. }
  14894. var selector, type, response,
  14895. self = this,
  14896. off = url.indexOf(" ");
  14897. if ( off >= 0 ) {
  14898. selector = jQuery.trim( url.slice( off ) );
  14899. url = url.slice( 0, off );
  14900. }
  14901. // If it's a function
  14902. if ( jQuery.isFunction( params ) ) {
  14903. // We assume that it's the callback
  14904. callback = params;
  14905. params = undefined;
  14906. // Otherwise, build a param string
  14907. } else if ( params && typeof params === "object" ) {
  14908. type = "POST";
  14909. }
  14910. // If we have elements to modify, make the request
  14911. if ( self.length > 0 ) {
  14912. jQuery.ajax({
  14913. url: url,
  14914. // if "type" variable is undefined, then "GET" method will be used
  14915. type: type,
  14916. dataType: "html",
  14917. data: params
  14918. }).done(function( responseText ) {
  14919. // Save response for use in complete callback
  14920. response = arguments;
  14921. self.html( selector ?
  14922. // If a selector was specified, locate the right elements in a dummy div
  14923. // Exclude scripts to avoid IE 'Permission Denied' errors
  14924. jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) :
  14925. // Otherwise use the full result
  14926. responseText );
  14927. }).complete( callback && function( jqXHR, status ) {
  14928. self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );
  14929. });
  14930. }
  14931. return this;
  14932. };
  14933. // Attach a bunch of functions for handling common AJAX events
  14934. jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) {
  14935. jQuery.fn[ type ] = function( fn ) {
  14936. return this.on( type, fn );
  14937. };
  14938. });
  14939. jQuery.expr.filters.animated = function( elem ) {
  14940. return jQuery.grep(jQuery.timers, function( fn ) {
  14941. return elem === fn.elem;
  14942. }).length;
  14943. };
  14944. var docElem = window.document.documentElement;
  14945. /**
  14946. * Gets a window from an element
  14947. */
  14948. function getWindow( elem ) {
  14949. return jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView;
  14950. }
  14951. jQuery.offset = {
  14952. setOffset: function( elem, options, i ) {
  14953. var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
  14954. position = jQuery.css( elem, "position" ),
  14955. curElem = jQuery( elem ),
  14956. props = {};
  14957. // Set position first, in-case top/left are set even on static elem
  14958. if ( position === "static" ) {
  14959. elem.style.position = "relative";
  14960. }
  14961. curOffset = curElem.offset();
  14962. curCSSTop = jQuery.css( elem, "top" );
  14963. curCSSLeft = jQuery.css( elem, "left" );
  14964. calculatePosition = ( position === "absolute" || position === "fixed" ) &&
  14965. ( curCSSTop + curCSSLeft ).indexOf("auto") > -1;
  14966. // Need to be able to calculate position if either
  14967. // top or left is auto and position is either absolute or fixed
  14968. if ( calculatePosition ) {
  14969. curPosition = curElem.position();
  14970. curTop = curPosition.top;
  14971. curLeft = curPosition.left;
  14972. } else {
  14973. curTop = parseFloat( curCSSTop ) || 0;
  14974. curLeft = parseFloat( curCSSLeft ) || 0;
  14975. }
  14976. if ( jQuery.isFunction( options ) ) {
  14977. options = options.call( elem, i, curOffset );
  14978. }
  14979. if ( options.top != null ) {
  14980. props.top = ( options.top - curOffset.top ) + curTop;
  14981. }
  14982. if ( options.left != null ) {
  14983. props.left = ( options.left - curOffset.left ) + curLeft;
  14984. }
  14985. if ( "using" in options ) {
  14986. options.using.call( elem, props );
  14987. } else {
  14988. curElem.css( props );
  14989. }
  14990. }
  14991. };
  14992. jQuery.fn.extend({
  14993. offset: function( options ) {
  14994. if ( arguments.length ) {
  14995. return options === undefined ?
  14996. this :
  14997. this.each(function( i ) {
  14998. jQuery.offset.setOffset( this, options, i );
  14999. });
  15000. }
  15001. var docElem, win,
  15002. elem = this[ 0 ],
  15003. box = { top: 0, left: 0 },
  15004. doc = elem && elem.ownerDocument;
  15005. if ( !doc ) {
  15006. return;
  15007. }
  15008. docElem = doc.documentElement;
  15009. // Make sure it's not a disconnected DOM node
  15010. if ( !jQuery.contains( docElem, elem ) ) {
  15011. return box;
  15012. }
  15013. // Support: BlackBerry 5, iOS 3 (original iPhone)
  15014. // If we don't have gBCR, just use 0,0 rather than error
  15015. if ( typeof elem.getBoundingClientRect !== strundefined ) {
  15016. box = elem.getBoundingClientRect();
  15017. }
  15018. win = getWindow( doc );
  15019. return {
  15020. top: box.top + win.pageYOffset - docElem.clientTop,
  15021. left: box.left + win.pageXOffset - docElem.clientLeft
  15022. };
  15023. },
  15024. position: function() {
  15025. if ( !this[ 0 ] ) {
  15026. return;
  15027. }
  15028. var offsetParent, offset,
  15029. elem = this[ 0 ],
  15030. parentOffset = { top: 0, left: 0 };
  15031. // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is its only offset parent
  15032. if ( jQuery.css( elem, "position" ) === "fixed" ) {
  15033. // Assume getBoundingClientRect is there when computed position is fixed
  15034. offset = elem.getBoundingClientRect();
  15035. } else {
  15036. // Get *real* offsetParent
  15037. offsetParent = this.offsetParent();
  15038. // Get correct offsets
  15039. offset = this.offset();
  15040. if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
  15041. parentOffset = offsetParent.offset();
  15042. }
  15043. // Add offsetParent borders
  15044. parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
  15045. parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
  15046. }
  15047. // Subtract parent offsets and element margins
  15048. return {
  15049. top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
  15050. left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
  15051. };
  15052. },
  15053. offsetParent: function() {
  15054. return this.map(function() {
  15055. var offsetParent = this.offsetParent || docElem;
  15056. while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position" ) === "static" ) ) {
  15057. offsetParent = offsetParent.offsetParent;
  15058. }
  15059. return offsetParent || docElem;
  15060. });
  15061. }
  15062. });
  15063. // Create scrollLeft and scrollTop methods
  15064. jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
  15065. var top = "pageYOffset" === prop;
  15066. jQuery.fn[ method ] = function( val ) {
  15067. return access( this, function( elem, method, val ) {
  15068. var win = getWindow( elem );
  15069. if ( val === undefined ) {
  15070. return win ? win[ prop ] : elem[ method ];
  15071. }
  15072. if ( win ) {
  15073. win.scrollTo(
  15074. !top ? val : window.pageXOffset,
  15075. top ? val : window.pageYOffset
  15076. );
  15077. } else {
  15078. elem[ method ] = val;
  15079. }
  15080. }, method, val, arguments.length, null );
  15081. };
  15082. });
  15083. // Support: Safari<7+, Chrome<37+
  15084. // Add the top/left cssHooks using jQuery.fn.position
  15085. // Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
  15086. // Blink bug: https://code.google.com/p/chromium/issues/detail?id=229280
  15087. // getComputedStyle returns percent when specified for top/left/bottom/right;
  15088. // rather than make the css module depend on the offset module, just check for it here
  15089. jQuery.each( [ "top", "left" ], function( i, prop ) {
  15090. jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
  15091. function( elem, computed ) {
  15092. if ( computed ) {
  15093. computed = curCSS( elem, prop );
  15094. // If curCSS returns percentage, fallback to offset
  15095. return rnumnonpx.test( computed ) ?
  15096. jQuery( elem ).position()[ prop ] + "px" :
  15097. computed;
  15098. }
  15099. }
  15100. );
  15101. });
  15102. // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
  15103. jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
  15104. jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) {
  15105. // Margin is only for outerHeight, outerWidth
  15106. jQuery.fn[ funcName ] = function( margin, value ) {
  15107. var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
  15108. extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
  15109. return access( this, function( elem, type, value ) {
  15110. var doc;
  15111. if ( jQuery.isWindow( elem ) ) {
  15112. // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
  15113. // isn't a whole lot we can do. See pull request at this URL for discussion:
  15114. // https://github.com/jquery/jquery/pull/764
  15115. return elem.document.documentElement[ "client" + name ];
  15116. }
  15117. // Get document width or height
  15118. if ( elem.nodeType === 9 ) {
  15119. doc = elem.documentElement;
  15120. // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
  15121. // whichever is greatest
  15122. return Math.max(
  15123. elem.body[ "scroll" + name ], doc[ "scroll" + name ],
  15124. elem.body[ "offset" + name ], doc[ "offset" + name ],
  15125. doc[ "client" + name ]
  15126. );
  15127. }
  15128. return value === undefined ?
  15129. // Get width or height on the element, requesting but not forcing parseFloat
  15130. jQuery.css( elem, type, extra ) :
  15131. // Set width or height on the element
  15132. jQuery.style( elem, type, value, extra );
  15133. }, type, chainable ? margin : undefined, chainable, null );
  15134. };
  15135. });
  15136. });
  15137. // The number of elements contained in the matched element set
  15138. jQuery.fn.size = function() {
  15139. return this.length;
  15140. };
  15141. jQuery.fn.andSelf = jQuery.fn.addBack;
  15142. // Register as a named AMD module, since jQuery can be concatenated with other
  15143. // files that may use define, but not via a proper concatenation script that
  15144. // understands anonymous AMD modules. A named AMD is safest and most robust
  15145. // way to register. Lowercase jquery is used because AMD module names are
  15146. // derived from file names, and jQuery is normally delivered in a lowercase
  15147. // file name. Do this after creating the global so that if an AMD module wants
  15148. // to call noConflict to hide this version of jQuery, it will work.
  15149. // Note that for maximum portability, libraries that are not jQuery should
  15150. // declare themselves as anonymous modules, and avoid setting a global if an
  15151. // AMD loader is present. jQuery is a special case. For more information, see
  15152. // https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
  15153. if ( typeof define === "function" && define.amd ) {
  15154. define( "jquery", [], function() {
  15155. return jQuery;
  15156. });
  15157. }
  15158. var
  15159. // Map over jQuery in case of overwrite
  15160. _jQuery = window.jQuery,
  15161. // Map over the $ in case of overwrite
  15162. _$ = window.$;
  15163. jQuery.noConflict = function( deep ) {
  15164. if ( window.$ === jQuery ) {
  15165. window.$ = _$;
  15166. }
  15167. if ( deep && window.jQuery === jQuery ) {
  15168. window.jQuery = _jQuery;
  15169. }
  15170. return jQuery;
  15171. };
  15172. // Expose jQuery and $ identifiers, even in AMD
  15173. // (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
  15174. // and CommonJS for browser emulators (#13566)
  15175. if ( typeof noGlobal === strundefined ) {
  15176. window.jQuery = window.$ = jQuery;
  15177. }
  15178. return jQuery;
  15179. }));
  15180. </script>
  15181. <script>/*!
  15182. * Bootstrap v3.3.5 (http://getbootstrap.com)
  15183. * Copyright 2011-2015 Twitter, Inc.
  15184. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  15185. */
  15186. /*!
  15187. * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=ca1d29b8c16a782c676c)
  15188. * Config saved to config.json and https://gist.github.com/ca1d29b8c16a782c676c
  15189. */
  15190. if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(t){"use strict";var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1==e[0]&&9==e[1]&&e[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),n=i.data("bs.alert");n||i.data("bs.alert",n=new o(this)),"string"==typeof e&&n[e].call(i)})}var i='[data-dismiss="alert"]',o=function(e){t(e).on("click",i,this.close)};o.VERSION="3.3.5",o.TRANSITION_DURATION=150,o.prototype.close=function(e){function i(){a.detach().trigger("closed.bs.alert").remove()}var n=t(this),s=n.attr("data-target");s||(s=n.attr("href"),s=s&&s.replace(/.*(?=#[^\s]*$)/,""));var a=t(s);e&&e.preventDefault(),a.length||(a=n.closest(".alert")),a.trigger(e=t.Event("close.bs.alert")),e.isDefaultPrevented()||(a.removeClass("in"),t.support.transition&&a.hasClass("fade")?a.one("bsTransitionEnd",i).emulateTransitionEnd(o.TRANSITION_DURATION):i())};var n=t.fn.alert;t.fn.alert=e,t.fn.alert.Constructor=o,t.fn.alert.noConflict=function(){return t.fn.alert=n,this},t(document).on("click.bs.alert.data-api",i,o.prototype.close)}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.button"),s="object"==typeof e&&e;n||o.data("bs.button",n=new i(this,s)),"toggle"==e?n.toggle():e&&n.setState(e)})}var i=function(e,o){this.$element=t(e),this.options=t.extend({},i.DEFAULTS,o),this.isLoading=!1};i.VERSION="3.3.5",i.DEFAULTS={loadingText:"loading..."},i.prototype.setState=function(e){var i="disabled",o=this.$element,n=o.is("input")?"val":"html",s=o.data();e+="Text",null==s.resetText&&o.data("resetText",o[n]()),setTimeout(t.proxy(function(){o[n](null==s[e]?this.options[e]:s[e]),"loadingText"==e?(this.isLoading=!0,o.addClass(i).attr(i,i)):this.isLoading&&(this.isLoading=!1,o.removeClass(i).removeAttr(i))},this),0)},i.prototype.toggle=function(){var t=!0,e=this.$element.closest('[data-toggle="buttons"]');if(e.length){var i=this.$element.find("input");"radio"==i.prop("type")?(i.prop("checked")&&(t=!1),e.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==i.prop("type")&&(i.prop("checked")!==this.$element.hasClass("active")&&(t=!1),this.$element.toggleClass("active")),i.prop("checked",this.$element.hasClass("active")),t&&i.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var o=t.fn.button;t.fn.button=e,t.fn.button.Constructor=i,t.fn.button.noConflict=function(){return t.fn.button=o,this},t(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(i){var o=t(i.target);o.hasClass("btn")||(o=o.closest(".btn")),e.call(o,"toggle"),t(i.target).is('input[type="radio"]')||t(i.target).is('input[type="checkbox"]')||i.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(e){t(e.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(e.type))})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.carousel"),s=t.extend({},i.DEFAULTS,o.data(),"object"==typeof e&&e),a="string"==typeof e?e:s.slide;n||o.data("bs.carousel",n=new i(this,s)),"number"==typeof e?n.to(e):a?n[a]():s.interval&&n.pause().cycle()})}var i=function(e,i){this.$element=t(e),this.$indicators=this.$element.find(".carousel-indicators"),this.options=i,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",t.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",t.proxy(this.pause,this)).on("mouseleave.bs.carousel",t.proxy(this.cycle,this))};i.VERSION="3.3.5",i.TRANSITION_DURATION=600,i.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},i.prototype.keydown=function(t){if(!/input|textarea/i.test(t.target.tagName)){switch(t.which){case 37:this.prev();break;case 39:this.next();break;default:return}t.preventDefault()}},i.prototype.cycle=function(e){return e||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(t.proxy(this.next,this),this.options.interval)),this},i.prototype.getItemIndex=function(t){return this.$items=t.parent().children(".item"),this.$items.index(t||this.$active)},i.prototype.getItemForDirection=function(t,e){var i=this.getItemIndex(e),o="prev"==t&&0===i||"next"==t&&i==this.$items.length-1;if(o&&!this.options.wrap)return e;var n="prev"==t?-1:1,s=(i+n)%this.$items.length;return this.$items.eq(s)},i.prototype.to=function(t){var e=this,i=this.getItemIndex(this.$active=this.$element.find(".item.active"));return t>this.$items.length-1||0>t?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){e.to(t)}):i==t?this.pause().cycle():this.slide(t>i?"next":"prev",this.$items.eq(t))},i.prototype.pause=function(e){return e||(this.paused=!0),this.$element.find(".next, .prev").length&&t.support.transition&&(this.$element.trigger(t.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},i.prototype.next=function(){return this.sliding?void 0:this.slide("next")},i.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},i.prototype.slide=function(e,o){var n=this.$element.find(".item.active"),s=o||this.getItemForDirection(e,n),a=this.interval,r="next"==e?"left":"right",l=this;if(s.hasClass("active"))return this.sliding=!1;var h=s[0],d=t.Event("slide.bs.carousel",{relatedTarget:h,direction:r});if(this.$element.trigger(d),!d.isDefaultPrevented()){if(this.sliding=!0,a&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var p=t(this.$indicators.children()[this.getItemIndex(s)]);p&&p.addClass("active")}var c=t.Event("slid.bs.carousel",{relatedTarget:h,direction:r});return t.support.transition&&this.$element.hasClass("slide")?(s.addClass(e),s[0].offsetWidth,n.addClass(r),s.addClass(r),n.one("bsTransitionEnd",function(){s.removeClass([e,r].join(" ")).addClass("active"),n.removeClass(["active",r].join(" ")),l.sliding=!1,setTimeout(function(){l.$element.trigger(c)},0)}).emulateTransitionEnd(i.TRANSITION_DURATION)):(n.removeClass("active"),s.addClass("active"),this.sliding=!1,this.$element.trigger(c)),a&&this.cycle(),this}};var o=t.fn.carousel;t.fn.carousel=e,t.fn.carousel.Constructor=i,t.fn.carousel.noConflict=function(){return t.fn.carousel=o,this};var n=function(i){var o,n=t(this),s=t(n.attr("data-target")||(o=n.attr("href"))&&o.replace(/.*(?=#[^\s]+$)/,""));if(s.hasClass("carousel")){var a=t.extend({},s.data(),n.data()),r=n.attr("data-slide-to");r&&(a.interval=!1),e.call(s,a),r&&s.data("bs.carousel").to(r),i.preventDefault()}};t(document).on("click.bs.carousel.data-api","[data-slide]",n).on("click.bs.carousel.data-api","[data-slide-to]",n),t(window).on("load",function(){t('[data-ride="carousel"]').each(function(){var i=t(this);e.call(i,i.data())})})}(jQuery),+function(t){"use strict";function e(e){var i=e.attr("data-target");i||(i=e.attr("href"),i=i&&/#[A-Za-z]/.test(i)&&i.replace(/.*(?=#[^\s]*$)/,""));var o=i&&t(i);return o&&o.length?o:e.parent()}function i(i){i&&3===i.which||(t(n).remove(),t(s).each(function(){var o=t(this),n=e(o),s={relatedTarget:this};n.hasClass("open")&&(i&&"click"==i.type&&/input|textarea/i.test(i.target.tagName)&&t.contains(n[0],i.target)||(n.trigger(i=t.Event("hide.bs.dropdown",s)),i.isDefaultPrevented()||(o.attr("aria-expanded","false"),n.removeClass("open").trigger("hidden.bs.dropdown",s))))}))}function o(e){return this.each(function(){var i=t(this),o=i.data("bs.dropdown");o||i.data("bs.dropdown",o=new a(this)),"string"==typeof e&&o[e].call(i)})}var n=".dropdown-backdrop",s='[data-toggle="dropdown"]',a=function(e){t(e).on("click.bs.dropdown",this.toggle)};a.VERSION="3.3.5",a.prototype.toggle=function(o){var n=t(this);if(!n.is(".disabled, :disabled")){var s=e(n),a=s.hasClass("open");if(i(),!a){"ontouchstart"in document.documentElement&&!s.closest(".navbar-nav").length&&t(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(t(this)).on("click",i);var r={relatedTarget:this};if(s.trigger(o=t.Event("show.bs.dropdown",r)),o.isDefaultPrevented())return;n.trigger("focus").attr("aria-expanded","true"),s.toggleClass("open").trigger("shown.bs.dropdown",r)}return!1}},a.prototype.keydown=function(i){if(/(38|40|27|32)/.test(i.which)&&!/input|textarea/i.test(i.target.tagName)){var o=t(this);if(i.preventDefault(),i.stopPropagation(),!o.is(".disabled, :disabled")){var n=e(o),a=n.hasClass("open");if(!a&&27!=i.which||a&&27==i.which)return 27==i.which&&n.find(s).trigger("focus"),o.trigger("click");var r=" li:not(.disabled):visible a",l=n.find(".dropdown-menu"+r);if(l.length){var h=l.index(i.target);38==i.which&&h>0&&h--,40==i.which&&h<l.length-1&&h++,~h||(h=0),l.eq(h).trigger("focus")}}}};var r=t.fn.dropdown;t.fn.dropdown=o,t.fn.dropdown.Constructor=a,t.fn.dropdown.noConflict=function(){return t.fn.dropdown=r,this},t(document).on("click.bs.dropdown.data-api",i).on("click.bs.dropdown.data-api",".dropdown form",function(t){t.stopPropagation()}).on("click.bs.dropdown.data-api",s,a.prototype.toggle).on("keydown.bs.dropdown.data-api",s,a.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",a.prototype.keydown)}(jQuery),+function(t){"use strict";function e(e,o){return this.each(function(){var n=t(this),s=n.data("bs.modal"),a=t.extend({},i.DEFAULTS,n.data(),"object"==typeof e&&e);s||n.data("bs.modal",s=new i(this,a)),"string"==typeof e?s[e](o):a.show&&s.show(o)})}var i=function(e,i){this.options=i,this.$body=t(document.body),this.$element=t(e),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,t.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};i.VERSION="3.3.5",i.TRANSITION_DURATION=300,i.BACKDROP_TRANSITION_DURATION=150,i.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},i.prototype.toggle=function(t){return this.isShown?this.hide():this.show(t)},i.prototype.show=function(e){var o=this,n=t.Event("show.bs.modal",{relatedTarget:e});this.$element.trigger(n),this.isShown||n.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',t.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){o.$element.one("mouseup.dismiss.bs.modal",function(e){t(e.target).is(o.$element)&&(o.ignoreBackdropClick=!0)})}),this.backdrop(function(){var n=t.support.transition&&o.$element.hasClass("fade");o.$element.parent().length||o.$element.appendTo(o.$body),o.$element.show().scrollTop(0),o.adjustDialog(),n&&o.$element[0].offsetWidth,o.$element.addClass("in"),o.enforceFocus();var s=t.Event("shown.bs.modal",{relatedTarget:e});n?o.$dialog.one("bsTransitionEnd",function(){o.$element.trigger("focus").trigger(s)}).emulateTransitionEnd(i.TRANSITION_DURATION):o.$element.trigger("focus").trigger(s)}))},i.prototype.hide=function(e){e&&e.preventDefault(),e=t.Event("hide.bs.modal"),this.$element.trigger(e),this.isShown&&!e.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),t(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),t.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",t.proxy(this.hideModal,this)).emulateTransitionEnd(i.TRANSITION_DURATION):this.hideModal())},i.prototype.enforceFocus=function(){t(document).off("focusin.bs.modal").on("focusin.bs.modal",t.proxy(function(t){this.$element[0]===t.target||this.$element.has(t.target).length||this.$element.trigger("focus")},this))},i.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",t.proxy(function(t){27==t.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},i.prototype.resize=function(){this.isShown?t(window).on("resize.bs.modal",t.proxy(this.handleUpdate,this)):t(window).off("resize.bs.modal")},i.prototype.hideModal=function(){var t=this;this.$element.hide(),this.backdrop(function(){t.$body.removeClass("modal-open"),t.resetAdjustments(),t.resetScrollbar(),t.$element.trigger("hidden.bs.modal")})},i.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},i.prototype.backdrop=function(e){var o=this,n=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var s=t.support.transition&&n;if(this.$backdrop=t(document.createElement("div")).addClass("modal-backdrop "+n).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",t.proxy(function(t){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(t.target===t.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),s&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!e)return;s?this.$backdrop.one("bsTransitionEnd",e).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):e()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var a=function(){o.removeBackdrop(),e&&e()};t.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",a).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):a()}else e&&e()},i.prototype.handleUpdate=function(){this.adjustDialog()},i.prototype.adjustDialog=function(){var t=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},i.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},i.prototype.checkScrollbar=function(){var t=window.innerWidth;if(!t){var e=document.documentElement.getBoundingClientRect();t=e.right-Math.abs(e.left)}this.bodyIsOverflowing=document.body.clientWidth<t,this.scrollbarWidth=this.measureScrollbar()},i.prototype.setScrollbar=function(){var t=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",t+this.scrollbarWidth)},i.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},i.prototype.measureScrollbar=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",this.$body.append(t);var e=t.offsetWidth-t.clientWidth;return this.$body[0].removeChild(t),e};var o=t.fn.modal;t.fn.modal=e,t.fn.modal.Constructor=i,t.fn.modal.noConflict=function(){return t.fn.modal=o,this},t(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(i){var o=t(this),n=o.attr("href"),s=t(o.attr("data-target")||n&&n.replace(/.*(?=#[^\s]+$)/,"")),a=s.data("bs.modal")?"toggle":t.extend({remote:!/#/.test(n)&&n},s.data(),o.data());o.is("a")&&i.preventDefault(),s.one("show.bs.modal",function(t){t.isDefaultPrevented()||s.one("hidden.bs.modal",function(){o.is(":visible")&&o.trigger("focus")})}),e.call(s,a,this)})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.tooltip"),s="object"==typeof e&&e;(n||!/destroy|hide/.test(e))&&(n||o.data("bs.tooltip",n=new i(this,s)),"string"==typeof e&&n[e]())})}var i=function(t,e){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",t,e)};i.VERSION="3.3.5",i.TRANSITION_DURATION=150,i.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},i.prototype.init=function(e,i,o){if(this.enabled=!0,this.type=e,this.$element=t(i),this.options=this.getOptions(o),this.$viewport=this.options.viewport&&t(t.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var n=this.options.trigger.split(" "),s=n.length;s--;){var a=n[s];if("click"==a)this.$element.on("click."+this.type,this.options.selector,t.proxy(this.toggle,this));else if("manual"!=a){var r="hover"==a?"mouseenter":"focusin",l="hover"==a?"mouseleave":"focusout";this.$element.on(r+"."+this.type,this.options.selector,t.proxy(this.enter,this)),this.$element.on(l+"."+this.type,this.options.selector,t.proxy(this.leave,this))}}this.options.selector?this._options=t.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},i.prototype.getDefaults=function(){return i.DEFAULTS},i.prototype.getOptions=function(e){return e=t.extend({},this.getDefaults(),this.$element.data(),e),e.delay&&"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),e},i.prototype.getDelegateOptions=function(){var e={},i=this.getDefaults();return this._options&&t.each(this._options,function(t,o){i[t]!=o&&(e[t]=o)}),e},i.prototype.enter=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i)),e instanceof t.Event&&(i.inState["focusin"==e.type?"focus":"hover"]=!0),i.tip().hasClass("in")||"in"==i.hoverState?void(i.hoverState="in"):(clearTimeout(i.timeout),i.hoverState="in",i.options.delay&&i.options.delay.show?void(i.timeout=setTimeout(function(){"in"==i.hoverState&&i.show()},i.options.delay.show)):i.show())},i.prototype.isInStateTrue=function(){for(var t in this.inState)if(this.inState[t])return!0;return!1},i.prototype.leave=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i)),e instanceof t.Event&&(i.inState["focusout"==e.type?"focus":"hover"]=!1),i.isInStateTrue()?void 0:(clearTimeout(i.timeout),i.hoverState="out",i.options.delay&&i.options.delay.hide?void(i.timeout=setTimeout(function(){"out"==i.hoverState&&i.hide()},i.options.delay.hide)):i.hide())},i.prototype.show=function(){var e=t.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(e);var o=t.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(e.isDefaultPrevented()||!o)return;var n=this,s=this.tip(),a=this.getUID(this.type);this.setContent(),s.attr("id",a),this.$element.attr("aria-describedby",a),this.options.animation&&s.addClass("fade");var r="function"==typeof this.options.placement?this.options.placement.call(this,s[0],this.$element[0]):this.options.placement,l=/\s?auto?\s?/i,h=l.test(r);h&&(r=r.replace(l,"")||"top"),s.detach().css({top:0,left:0,display:"block"}).addClass(r).data("bs."+this.type,this),this.options.container?s.appendTo(this.options.container):s.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var d=this.getPosition(),p=s[0].offsetWidth,c=s[0].offsetHeight;if(h){var f=r,u=this.getPosition(this.$viewport);r="bottom"==r&&d.bottom+c>u.bottom?"top":"top"==r&&d.top-c<u.top?"bottom":"right"==r&&d.right+p>u.width?"left":"left"==r&&d.left-p<u.left?"right":r,s.removeClass(f).addClass(r)}var g=this.getCalculatedOffset(r,d,p,c);this.applyPlacement(g,r);var m=function(){var t=n.hoverState;n.$element.trigger("shown.bs."+n.type),n.hoverState=null,"out"==t&&n.leave(n)};t.support.transition&&this.$tip.hasClass("fade")?s.one("bsTransitionEnd",m).emulateTransitionEnd(i.TRANSITION_DURATION):m()}},i.prototype.applyPlacement=function(e,i){var o=this.tip(),n=o[0].offsetWidth,s=o[0].offsetHeight,a=parseInt(o.css("margin-top"),10),r=parseInt(o.css("margin-left"),10);isNaN(a)&&(a=0),isNaN(r)&&(r=0),e.top+=a,e.left+=r,t.offset.setOffset(o[0],t.extend({using:function(t){o.css({top:Math.round(t.top),left:Math.round(t.left)})}},e),0),o.addClass("in");var l=o[0].offsetWidth,h=o[0].offsetHeight;"top"==i&&h!=s&&(e.top=e.top+s-h);var d=this.getViewportAdjustedDelta(i,e,l,h);d.left?e.left+=d.left:e.top+=d.top;var p=/top|bottom/.test(i),c=p?2*d.left-n+l:2*d.top-s+h,f=p?"offsetWidth":"offsetHeight";o.offset(e),this.replaceArrow(c,o[0][f],p)},i.prototype.replaceArrow=function(t,e,i){this.arrow().css(i?"left":"top",50*(1-t/e)+"%").css(i?"top":"left","")},i.prototype.setContent=function(){var t=this.tip(),e=this.getTitle();t.find(".tooltip-inner")[this.options.html?"html":"text"](e),t.removeClass("fade in top bottom left right")},i.prototype.hide=function(e){function o(){"in"!=n.hoverState&&s.detach(),n.$element.removeAttr("aria-describedby").trigger("hidden.bs."+n.type),e&&e()}var n=this,s=t(this.$tip),a=t.Event("hide.bs."+this.type);return this.$element.trigger(a),a.isDefaultPrevented()?void 0:(s.removeClass("in"),t.support.transition&&s.hasClass("fade")?s.one("bsTransitionEnd",o).emulateTransitionEnd(i.TRANSITION_DURATION):o(),this.hoverState=null,this)},i.prototype.fixTitle=function(){var t=this.$element;(t.attr("title")||"string"!=typeof t.attr("data-original-title"))&&t.attr("data-original-title",t.attr("title")||"").attr("title","")},i.prototype.hasContent=function(){return this.getTitle()},i.prototype.getPosition=function(e){e=e||this.$element;var i=e[0],o="BODY"==i.tagName,n=i.getBoundingClientRect();null==n.width&&(n=t.extend({},n,{width:n.right-n.left,height:n.bottom-n.top}));var s=o?{top:0,left:0}:e.offset(),a={scroll:o?document.documentElement.scrollTop||document.body.scrollTop:e.scrollTop()},r=o?{width:t(window).width(),height:t(window).height()}:null;return t.extend({},n,a,r,s)},i.prototype.getCalculatedOffset=function(t,e,i,o){return"bottom"==t?{top:e.top+e.height,left:e.left+e.width/2-i/2}:"top"==t?{top:e.top-o,left:e.left+e.width/2-i/2}:"left"==t?{top:e.top+e.height/2-o/2,left:e.left-i}:{top:e.top+e.height/2-o/2,left:e.left+e.width}},i.prototype.getViewportAdjustedDelta=function(t,e,i,o){var n={top:0,left:0};if(!this.$viewport)return n;var s=this.options.viewport&&this.options.viewport.padding||0,a=this.getPosition(this.$viewport);if(/right|left/.test(t)){var r=e.top-s-a.scroll,l=e.top+s-a.scroll+o;r<a.top?n.top=a.top-r:l>a.top+a.height&&(n.top=a.top+a.height-l)}else{var h=e.left-s,d=e.left+s+i;h<a.left?n.left=a.left-h:d>a.right&&(n.left=a.left+a.width-d)}return n},i.prototype.getTitle=function(){var t,e=this.$element,i=this.options;return t=e.attr("data-original-title")||("function"==typeof i.title?i.title.call(e[0]):i.title)},i.prototype.getUID=function(t){do t+=~~(1e6*Math.random());while(document.getElementById(t));return t},i.prototype.tip=function(){if(!this.$tip&&(this.$tip=t(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},i.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},i.prototype.enable=function(){this.enabled=!0},i.prototype.disable=function(){this.enabled=!1},i.prototype.toggleEnabled=function(){this.enabled=!this.enabled},i.prototype.toggle=function(e){var i=this;e&&(i=t(e.currentTarget).data("bs."+this.type),i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i))),e?(i.inState.click=!i.inState.click,i.isInStateTrue()?i.enter(i):i.leave(i)):i.tip().hasClass("in")?i.leave(i):i.enter(i)},i.prototype.destroy=function(){var t=this;clearTimeout(this.timeout),this.hide(function(){t.$element.off("."+t.type).removeData("bs."+t.type),t.$tip&&t.$tip.detach(),t.$tip=null,t.$arrow=null,t.$viewport=null})};var o=t.fn.tooltip;t.fn.tooltip=e,t.fn.tooltip.Constructor=i,t.fn.tooltip.noConflict=function(){return t.fn.tooltip=o,this}}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.popover"),s="object"==typeof e&&e;(n||!/destroy|hide/.test(e))&&(n||o.data("bs.popover",n=new i(this,s)),"string"==typeof e&&n[e]())})}var i=function(t,e){this.init("popover",t,e)};if(!t.fn.tooltip)throw new Error("Popover requires tooltip.js");i.VERSION="3.3.5",i.DEFAULTS=t.extend({},t.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),i.prototype=t.extend({},t.fn.tooltip.Constructor.prototype),i.prototype.constructor=i,i.prototype.getDefaults=function(){return i.DEFAULTS},i.prototype.setContent=function(){var t=this.tip(),e=this.getTitle(),i=this.getContent();t.find(".popover-title")[this.options.html?"html":"text"](e),t.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof i?"html":"append":"text"](i),t.removeClass("fade top bottom left right in"),t.find(".popover-title").html()||t.find(".popover-title").hide()},i.prototype.hasContent=function(){return this.getTitle()||this.getContent()},i.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.content.call(t[0]):e.content)},i.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var o=t.fn.popover;t.fn.popover=e,t.fn.popover.Constructor=i,t.fn.popover.noConflict=function(){return t.fn.popover=o,this}}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.tab");n||o.data("bs.tab",n=new i(this)),"string"==typeof e&&n[e]()})}var i=function(e){this.element=t(e)};i.VERSION="3.3.5",i.TRANSITION_DURATION=150,i.prototype.show=function(){var e=this.element,i=e.closest("ul:not(.dropdown-menu)"),o=e.data("target");if(o||(o=e.attr("href"),o=o&&o.replace(/.*(?=#[^\s]*$)/,"")),!e.parent("li").hasClass("active")){var n=i.find(".active:last a"),s=t.Event("hide.bs.tab",{relatedTarget:e[0]}),a=t.Event("show.bs.tab",{relatedTarget:n[0]});if(n.trigger(s),e.trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){var r=t(o);this.activate(e.closest("li"),i),this.activate(r,r.parent(),function(){n.trigger({type:"hidden.bs.tab",relatedTarget:e[0]}),e.trigger({type:"shown.bs.tab",relatedTarget:n[0]})})}}},i.prototype.activate=function(e,o,n){function s(){a.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),e.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),r?(e[0].offsetWidth,e.addClass("in")):e.removeClass("fade"),e.parent(".dropdown-menu").length&&e.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),n&&n()}var a=o.find("> .active"),r=n&&t.support.transition&&(a.length&&a.hasClass("fade")||!!o.find("> .fade").length);a.length&&r?a.one("bsTransitionEnd",s).emulateTransitionEnd(i.TRANSITION_DURATION):s(),a.removeClass("in")};var o=t.fn.tab;t.fn.tab=e,t.fn.tab.Constructor=i,t.fn.tab.noConflict=function(){return t.fn.tab=o,this};var n=function(i){i.preventDefault(),e.call(t(this),"show")};t(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',n).on("click.bs.tab.data-api",'[data-toggle="pill"]',n)}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.affix"),s="object"==typeof e&&e;n||o.data("bs.affix",n=new i(this,s)),"string"==typeof e&&n[e]()})}var i=function(e,o){this.options=t.extend({},i.DEFAULTS,o),this.$target=t(this.options.target).on("scroll.bs.affix.data-api",t.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",t.proxy(this.checkPositionWithEventLoop,this)),this.$element=t(e),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};i.VERSION="3.3.5",i.RESET="affix affix-top affix-bottom",i.DEFAULTS={offset:0,target:window},i.prototype.getState=function(t,e,i,o){var n=this.$target.scrollTop(),s=this.$element.offset(),a=this.$target.height();if(null!=i&&"top"==this.affixed)return i>n?"top":!1;if("bottom"==this.affixed)return null!=i?n+this.unpin<=s.top?!1:"bottom":t-o>=n+a?!1:"bottom";var r=null==this.affixed,l=r?n:s.top,h=r?a:e;return null!=i&&i>=n?"top":null!=o&&l+h>=t-o?"bottom":!1},i.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(i.RESET).addClass("affix");var t=this.$target.scrollTop(),e=this.$element.offset();return this.pinnedOffset=e.top-t},i.prototype.checkPositionWithEventLoop=function(){setTimeout(t.proxy(this.checkPosition,this),1)},i.prototype.checkPosition=function(){if(this.$element.is(":visible")){var e=this.$element.height(),o=this.options.offset,n=o.top,s=o.bottom,a=Math.max(t(document).height(),t(document.body).height());"object"!=typeof o&&(s=n=o),"function"==typeof n&&(n=o.top(this.$element)),"function"==typeof s&&(s=o.bottom(this.$element));var r=this.getState(a,e,n,s);if(this.affixed!=r){null!=this.unpin&&this.$element.css("top","");var l="affix"+(r?"-"+r:""),h=t.Event(l+".bs.affix");if(this.$element.trigger(h),h.isDefaultPrevented())return;this.affixed=r,this.unpin="bottom"==r?this.getPinnedOffset():null,this.$element.removeClass(i.RESET).addClass(l).trigger(l.replace("affix","affixed")+".bs.affix")}"bottom"==r&&this.$element.offset({top:a-e-s})}};var o=t.fn.affix;t.fn.affix=e,t.fn.affix.Constructor=i,t.fn.affix.noConflict=function(){return t.fn.affix=o,this},t(window).on("load",function(){t('[data-spy="affix"]').each(function(){var i=t(this),o=i.data();o.offset=o.offset||{},null!=o.offsetBottom&&(o.offset.bottom=o.offsetBottom),null!=o.offsetTop&&(o.offset.top=o.offsetTop),e.call(i,o)})})}(jQuery),+function(t){"use strict";function e(e){var i,o=e.attr("data-target")||(i=e.attr("href"))&&i.replace(/.*(?=#[^\s]+$)/,"");return t(o)}function i(e){return this.each(function(){var i=t(this),n=i.data("bs.collapse"),s=t.extend({},o.DEFAULTS,i.data(),"object"==typeof e&&e);!n&&s.toggle&&/show|hide/.test(e)&&(s.toggle=!1),n||i.data("bs.collapse",n=new o(this,s)),"string"==typeof e&&n[e]()})}var o=function(e,i){this.$element=t(e),this.options=t.extend({},o.DEFAULTS,i),this.$trigger=t('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};o.VERSION="3.3.5",o.TRANSITION_DURATION=350,o.DEFAULTS={toggle:!0},o.prototype.dimension=function(){var t=this.$element.hasClass("width");return t?"width":"height"},o.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var e,n=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(n&&n.length&&(e=n.data("bs.collapse"),e&&e.transitioning))){var s=t.Event("show.bs.collapse");if(this.$element.trigger(s),!s.isDefaultPrevented()){n&&n.length&&(i.call(n,"hide"),e||n.data("bs.collapse",null));var a=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[a](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var r=function(){this.$element.removeClass("collapsing").addClass("collapse in")[a](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!t.support.transition)return r.call(this);var l=t.camelCase(["scroll",a].join("-"));this.$element.one("bsTransitionEnd",t.proxy(r,this)).emulateTransitionEnd(o.TRANSITION_DURATION)[a](this.$element[0][l]);
  15191. }}}},o.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var e=t.Event("hide.bs.collapse");if(this.$element.trigger(e),!e.isDefaultPrevented()){var i=this.dimension();this.$element[i](this.$element[i]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var n=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return t.support.transition?void this.$element[i](0).one("bsTransitionEnd",t.proxy(n,this)).emulateTransitionEnd(o.TRANSITION_DURATION):n.call(this)}}},o.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},o.prototype.getParent=function(){return t(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(t.proxy(function(i,o){var n=t(o);this.addAriaAndCollapsedClass(e(n),n)},this)).end()},o.prototype.addAriaAndCollapsedClass=function(t,e){var i=t.hasClass("in");t.attr("aria-expanded",i),e.toggleClass("collapsed",!i).attr("aria-expanded",i)};var n=t.fn.collapse;t.fn.collapse=i,t.fn.collapse.Constructor=o,t.fn.collapse.noConflict=function(){return t.fn.collapse=n,this},t(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(o){var n=t(this);n.attr("data-target")||o.preventDefault();var s=e(n),a=s.data("bs.collapse"),r=a?"toggle":n.data();i.call(s,r)})}(jQuery),+function(t){"use strict";function e(i,o){this.$body=t(document.body),this.$scrollElement=t(t(i).is(document.body)?window:i),this.options=t.extend({},e.DEFAULTS,o),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",t.proxy(this.process,this)),this.refresh(),this.process()}function i(i){return this.each(function(){var o=t(this),n=o.data("bs.scrollspy"),s="object"==typeof i&&i;n||o.data("bs.scrollspy",n=new e(this,s)),"string"==typeof i&&n[i]()})}e.VERSION="3.3.5",e.DEFAULTS={offset:10},e.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},e.prototype.refresh=function(){var e=this,i="offset",o=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),t.isWindow(this.$scrollElement[0])||(i="position",o=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var e=t(this),n=e.data("target")||e.attr("href"),s=/^#./.test(n)&&t(n);return s&&s.length&&s.is(":visible")&&[[s[i]().top+o,n]]||null}).sort(function(t,e){return t[0]-e[0]}).each(function(){e.offsets.push(this[0]),e.targets.push(this[1])})},e.prototype.process=function(){var t,e=this.$scrollElement.scrollTop()+this.options.offset,i=this.getScrollHeight(),o=this.options.offset+i-this.$scrollElement.height(),n=this.offsets,s=this.targets,a=this.activeTarget;if(this.scrollHeight!=i&&this.refresh(),e>=o)return a!=(t=s[s.length-1])&&this.activate(t);if(a&&e<n[0])return this.activeTarget=null,this.clear();for(t=n.length;t--;)a!=s[t]&&e>=n[t]&&(void 0===n[t+1]||e<n[t+1])&&this.activate(s[t])},e.prototype.activate=function(e){this.activeTarget=e,this.clear();var i=this.selector+'[data-target="'+e+'"],'+this.selector+'[href="'+e+'"]',o=t(i).parents("li").addClass("active");o.parent(".dropdown-menu").length&&(o=o.closest("li.dropdown").addClass("active")),o.trigger("activate.bs.scrollspy")},e.prototype.clear=function(){t(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var o=t.fn.scrollspy;t.fn.scrollspy=i,t.fn.scrollspy.Constructor=e,t.fn.scrollspy.noConflict=function(){return t.fn.scrollspy=o,this},t(window).on("load.bs.scrollspy.data-api",function(){t('[data-spy="scroll"]').each(function(){var e=t(this);i.call(e,e.data())})})}(jQuery),+function(t){"use strict";function e(){var t=document.createElement("bootstrap"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var i in e)if(void 0!==t.style[i])return{end:e[i]};return!1}t.fn.emulateTransitionEnd=function(e){var i=!1,o=this;t(this).one("bsTransitionEnd",function(){i=!0});var n=function(){i||t(o).trigger(t.support.transition.end)};return setTimeout(n,e),this},t(function(){t.support.transition=e(),t.support.transition&&(t.event.special.bsTransitionEnd={bindType:t.support.transition.end,delegateType:t.support.transition.end,handle:function(e){return t(e.target).is(this)?e.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery);</script>
  15192. <script>var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
  15193. (function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a=
  15194. [],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c<i;++c){var j=f[c];if(/\\[bdsw]/i.test(j))a.push(j);else{var j=m(j),d;c+2<i&&"-"===f[c+1]?(d=m(f[c+2]),c+=2):d=j;b.push([j,d]);d<65||j>122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;c<b.length;++c)i=b[c],i[0]<=j[1]+1?j[1]=Math.max(j[1],i[1]):f.push(j=i);b=["["];o&&b.push("^");b.push.apply(b,a);for(c=0;c<
  15195. f.length;++c)i=f[c],b.push(e(i[0])),i[1]>i[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c<b;++c){var j=f[c];j==="("?++i:"\\"===j.charAt(0)&&(j=+j.substring(1))&&j<=i&&(d[j]=-1)}for(c=1;c<d.length;++c)-1===d[c]&&(d[c]=++t);for(i=c=0;c<b;++c)j=f[c],j==="("?(++i,d[i]===void 0&&(f[c]="(?:")):"\\"===j.charAt(0)&&
  15196. (j=+j.substring(1))&&j<=i&&(f[c]="\\"+d[i]);for(i=c=0;c<b;++c)"^"===f[c]&&"^"!==f[c+1]&&(f[c]="");if(a.ignoreCase&&s)for(c=0;c<b;++c)j=f[c],a=j.charAt(0),j.length>=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p<d;++p){var g=a[p];if(g.ignoreCase)l=!0;else if(/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){s=!0;l=!1;break}}for(var r=
  15197. {b:8,t:9,n:10,v:11,f:12,r:13},n=[],p=0,d=a.length;p<d;++p){g=a[p];if(g.global||g.multiline)throw Error(""+g);n.push("(?:"+y(g)+")")}return RegExp(n.join("|"),l?"gi":"g")}function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.className))break;for(var g=a.firstChild;g;g=g.nextSibling)m(g);g=a.nodeName;if("BR"===g||"LI"===g)h[s]="\n",t[s<<1]=y++,t[s++<<1|1]=a;break;case 3:case 4:g=a.nodeValue,g.length&&(g=p?g.replace(/\r\n?/g,"\n"):g.replace(/[\t\n\r ]+/g," "),h[s]=g,t[s<<1]=y,y+=g.length,
  15198. t[s++<<1|1]=a)}}var e=/(?:^|\s)nocode(?:\s|$)/,h=[],y=0,t=[],s=0,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=document.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);m(a);return{a:h.join("").replace(/\n$/,""),c:t}}function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(y)||[],r={},n=0,z=g.length;n<z;++n){var f=g[n],b=r[f],o=void 0,c;if(typeof b===
  15199. "string")c=!1;else{var i=h[f.charAt(0)];if(i)o=f.match(i[1]),b=i[0];else{for(c=0;c<t;++c)if(i=m[c],o=f.match(i[1])){b=i[0];break}o||(b="pln")}if((c=b.length>=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m),
  15200. l=[],p={},d=0,g=e.length;d<g;++d){var r=e[d],n=r[3];if(n)for(var k=n.length;--k>=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,
  15201. q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/,
  15202. q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g,
  15203. "");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a),
  15204. a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e}
  15205. for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g<d.length;++g)e(d[g]);m===(m|0)&&d[0].setAttribute("value",
  15206. m);var r=s.createElement("OL");r.className="linenums";for(var n=Math.max(0,m-1|0)||0,g=0,z=d.length;g<z;++g)l=d[g],l.className="L"+(g+n)%10,l.firstChild||l.appendChild(s.createTextNode("\xa0")),r.appendChild(l);a.appendChild(r)}function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-markup":"default-code";return A[a]}function E(a){var m=
  15207. a.g;try{var e=M(a.h),h=e.a;a.a=h;a.c=e.c;a.d=0;C(m,h)(a);var k=/\bMSIE\b/.test(navigator.userAgent),m=/\n/g,t=a.a,s=t.length,e=0,l=a.c,p=l.length,h=0,d=a.e,g=d.length,a=0;d[g]=s;var r,n;for(n=r=0;n<g;)d[n]!==d[n+2]?(d[r++]=d[n++],d[r++]=d[n++]):n+=2;g=r;for(n=r=0;n<g;){for(var z=d[n],f=d[n+1],b=n+2;b+2<=g&&d[b+1]===f;)b+=2;d[r++]=z;d[r++]=f;n=b}for(d.length=r;h<p;){var o=l[h+2]||s,c=d[a+2]||s,b=Math.min(o,c),i=l[h+1],j;if(i.nodeType!==1&&(j=t.substring(e,b))){k&&(j=j.replace(m,"\r"));i.nodeValue=
  15208. j;var u=i.ownerDocument,v=u.createElement("SPAN");v.className=d[a+1];var x=i.parentNode;x.replaceChild(v,i);v.appendChild(i);e<o&&(l[h+1]=i=u.createTextNode(t.substring(b,o)),x.insertBefore(i,v.nextSibling))}e=b;e>=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
  15209. "catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
  15210. H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
  15211. J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+
  15212. I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),
  15213. ["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",
  15214. /^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),
  15215. ["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",
  15216. hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p<h.length&&l.now()<e;p++){var n=h[p],k=n.className;if(k.indexOf("prettyprint")>=0){var k=k.match(g),f,b;if(b=
  15217. !k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p<h.length?setTimeout(m,
  15218. 250):a&&a()}for(var e=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],h=[],k=0;k<e.length;++k)for(var t=0,s=e[k].length;t<s;++t)h.push(e[k][t]);var e=q,l=Date;l.now||(l={now:function(){return+new Date}});var p=0,d,g=/\blang(?:uage)?-([\w.]+)(?!\S)/;m()};window.PR={createSimpleLexer:x,registerLangHandler:k,sourceDecorator:u,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",
  15219. PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})();</script>
  15220. <script>//Prettify
  15221. $(document).ready(function() {
  15222. window.prettyPrint && prettyPrint()
  15223. });
  15224. //Tooltips
  15225. $(document).ready(function() {
  15226. $("[rel=\"tooltip\"]").tooltip({
  15227. html: true
  15228. });
  15229. });
  15230. $(document).ready(function() {
  15231. function filterPath(string) {
  15232. return string.replace(/^\//, '')
  15233. .replace(/(index|default).[a-zA-Z]{3,4}$/, '')
  15234. .replace(/\/$/, '');
  15235. }
  15236. var locationPath = filterPath(location.pathname);
  15237. $('a[href*=#]').each(function() {
  15238. var thisPath = filterPath(this.pathname) || locationPath;
  15239. if (locationPath == thisPath && (location.hostname == this.hostname || !this.hostname) && this.hash.replace(/#/, '')) {
  15240. var target = this.hash;
  15241. if (target) {
  15242. $(this).click(function(event) {
  15243. event.preventDefault();
  15244. scrollTo(target, 400);
  15245. });
  15246. }
  15247. }
  15248. });
  15249. function scrollTo(id, duration) {
  15250. $(id).slideDown(duration);
  15251. $(id + "-overlay").fadeIn(duration);
  15252. //calculate destination place
  15253. console.log($(id));
  15254. var dest = $(id).offset().top;
  15255. dest -= 100;
  15256. dest = Math.min(dest, $(document).height() - $(window).height());
  15257. dest = Math.max(dest, 0);
  15258. //go to destination
  15259. $('html,body').animate({
  15260. scrollTop: dest
  15261. }, duration, 'swing');
  15262. $(id).addClass('shadowPulse');
  15263. $(id).one('animationend', () => {
  15264. $(id).removeClass('shadowPulse');
  15265. // do something else...
  15266. });
  15267. hashTagActive = this.hash;
  15268. }
  15269. if (window.location.hash.length > 0) {
  15270. console.log("Hash1: " + window.location.hash);
  15271. //$(window.location.hash).toggle();
  15272. scrollTo(window.location.hash, 0);
  15273. }
  15274. window.onhashchange = function() {
  15275. console.log("Hash: " + window.location.hash);
  15276. $(window.location.hash).toggle();
  15277. $(window.location.hash + "-overlay").fadeToggle();
  15278. };
  15279. });
  15280. function loadData(callbackWhenDone) {
  15281. $.getJSON(pathToRoot + "search_data.json", callbackWhenDone);
  15282. }
  15283. function assertEqual(a,b) {
  15284. if (a !== b) {
  15285. console.log("Assertion failed " + a + " " + b);
  15286. }
  15287. }
  15288. class Levenstein {
  15289. constructor() {
  15290. this.distArr = [];
  15291. assertEqual(this.substringDistance("a", "aaa"), 0);
  15292. assertEqual(this.substringDistance("b", "aaa"), 1);
  15293. assertEqual(this.substringDistance("abc", "aaabcccc"), 0);
  15294. assertEqual(this.substringDistance("abc", "qqqabcqqq"), 0);
  15295. assertEqual(this.substringDistance("abc", "cba"), 2); // 2 insertions
  15296. assertEqual(this.substringDistance("aabbcc", "qqaabbdd"), 2); // 2 insertions
  15297. assertEqual(this.substringDistance("aabbcc", "qqqaaqq"), 4); // 4 insertions
  15298. assertEqual(this.substringDistance("abc", "aqbqc"), 2); // 2 deletions
  15299. assertEqual(this.substringDistance("abc", "qaqbqcq"), 2); // 2 deletions
  15300. assertEqual(this.substringDistance("a", "b"), 1); // 1 insertion
  15301. assertEqual(this.substringDistance("abc", "blahadcblah"), 1); // 1 substitution
  15302. assertEqual(this.substringDistance("aaaaaa", "a"), 5); // 5 insertions
  15303. assertEqual(this.substringDistance("aaaaaa", "b"), 6); // 6 insertions
  15304. }
  15305. /* Compute the distance between key and any substring in haystack */
  15306. substringDistance (key, haystack) {
  15307. var w = haystack.length+1;
  15308. var h = key.length+1;
  15309. var distArr = this.distArr;
  15310. for (var i = 0; i <= key.length; i++) for (var j = 0; j <= haystack.length; j++) distArr[i*w + j] = 0;
  15311. for (var i = 0; i <= key.length; i++) distArr[i*w] = i;
  15312. // First characters (before substring starts) cost nothing
  15313. for (var i = 0; i <= haystack.length; i++) distArr[i] = 0;
  15314. for (var i = 1; i <= key.length; i++) {
  15315. for (var j = 1; j <= haystack.length; j++) {
  15316. if (key[i-1] == haystack[j-1]) {
  15317. distArr[i*w + j] = distArr[(i-1)*w + j-1];
  15318. } else {
  15319. // Note, nested Min operations should be used because Mathf.Min(a, b, c) will allocate an array (slow)
  15320. distArr[i*w + j] = Math.min(Math.min(
  15321. distArr[(i-1)*w + j] + 1, // Delete
  15322. distArr[i*w + j-1] + 1), // Insert
  15323. distArr[(i-1)*w + j-1] + 1 // Substitute
  15324. );
  15325. }
  15326. }
  15327. }
  15328. var mn = 100000;
  15329. for (var i = 0; i < haystack.length+1; i++) {
  15330. mn = Math.min(distArr[key.length*w + i], mn);
  15331. }
  15332. return mn;
  15333. }
  15334. }
  15335. $(document).ready(function() {
  15336. loadData(function(data)  {
  15337. if (data) {
  15338. var index = elasticlunr();
  15339. index.addField('name');
  15340. index.setRef('index');
  15341. for (var i = 0; i < data.length; i++) {
  15342. index.addDoc({
  15343. name: data[i].name,
  15344. index: i
  15345. });
  15346. }
  15347. /**
  15348. * The seach function manages the terms lookup and result display
  15349. */
  15350. function search(selectFirst) {
  15351. var value = $("#searchfield").val().trim();
  15352. var parts = value.split(".");
  15353. var searchPartBeforeDot = parts.slice(0, parts.length - 1).join(".").trim();
  15354. var searchPart = parts[parts.length - 1];
  15355. // Request a search to the colorSearchEengine, then displays the results, if any.
  15356. var res = index.search(searchPart, {
  15357. expand: true
  15358. });
  15359. var levenstein = new Levenstein();
  15360. var res2 = [];
  15361. for (var i = 0; i < res.length; i++) {
  15362. var item = data[res[i].ref|0];
  15363. var lastDot = item.fullname.lastIndexOf(".");
  15364. var score = 0;
  15365. if (searchPartBeforeDot.length > 0) {
  15366. if (lastDot != -1) {
  15367. var beforeDot = item.fullname.substr(0, lastDot);
  15368. score -= levenstein.substringDistance(searchPartBeforeDot.toLowerCase(), beforeDot.toLowerCase())
  15369. } else {
  15370. score -= 10;
  15371. }
  15372. }
  15373. score -= levenstein.substringDistance(searchPart.toLowerCase(), item.name.toLowerCase());
  15374. // Break ties on length
  15375. score -= 0.001 * item.fullname.length;
  15376. score = 100*score/item.boost;
  15377. res2.push({
  15378. item: item,
  15379. score: score,
  15380. });
  15381. }
  15382. res2.sort((a,b) => b.score - a.score);
  15383. // Re-sort
  15384. //res.sort(function (a, b) { return b.score - a.score; });
  15385. var t1 = performance.now();
  15386. var name2index = {};
  15387. var results = [];
  15388. for (var i = 0; i < res2.length; i++) {
  15389. var item = res2[i].item;//data[res[i].ref|0];
  15390. if (!name2index.hasOwnProperty(item.name)) {
  15391. name2index[item.name] = results.length;
  15392. results.push([]);
  15393. }
  15394. results[name2index[item.name]].push({
  15395. item: item,
  15396. score: res2[i].score
  15397. });
  15398. }
  15399. results = results.slice(0,5);
  15400. var html = "";
  15401. for (var i = 0; i < results.length; i++) {
  15402. var items = results[i];
  15403. items.sort((a,b) => {
  15404. if (b.score > a.score) return 1;
  15405. else if (b.score < a.score) return -1;
  15406. var pa = a.item.fullname.split(".")[0];
  15407. var pb = b.item.fullname.split(".")[0];
  15408. return pa.length - pb.length;
  15409. });
  15410. var id = 'search_' + items[0].item.name.replace(/ /g, "_");
  15411. if (items.length == 1) {
  15412. html += "<li><a id='" + id + "_0' href='" + pathToRoot + items[0].item.url + "'>" + items[0].item.name + "</a></li>";
  15413. } else {
  15414. html += '<li><a href="http://arongranberg.com/astar/docs">' + items[0].item.name + " ...</a></li>";
  15415. html += "<ul class='inner-dropdown-menu' id='" + id + "' style='display: none;'>";
  15416. for (var j = 0; j < items.length; j++) {
  15417. var inner = items[j].item;
  15418. var lastDot = inner.fullname.lastIndexOf(".");
  15419. var beforeDot = lastDot != -1 ? inner.fullname.substr(0, lastDot) : "";
  15420. var afterDot = lastDot != -1 ? inner.fullname.substr(lastDot + 1) : inner.fullname;
  15421. html += "<li><a id='" + id + "_" + j + "' href='" + pathToRoot + inner.url + "'><span>" + afterDot + "</span><small>" + beforeDot + "</small></a></li>";
  15422. }
  15423. html += "</ul>";
  15424. }
  15425. }
  15426. var upArrow = 38;
  15427. var downArrow = 40;
  15428. $("#search-dropdown").html(html);
  15429. $("#search-dropdown").show(0);
  15430. $("#searchfield").keydown(function(e) {
  15431. if (e.keyCode == downArrow) {
  15432. $('#search-dropdown a').first().focus();
  15433. e.preventDefault();
  15434. }
  15435. });
  15436. $("#search-dropdown a").keydown(function(e) {
  15437. if (e.keyCode == downArrow || e.keyCode == upArrow) {
  15438. var selector = $('#search-dropdown a:visible');
  15439. var index = selector.index(this);
  15440. if (e.keyCode == downArrow) index++;
  15441. else if (e.keyCode == upArrow) index--;
  15442. if (index == -1) {
  15443. $("#searchfield").focus();
  15444. } else {
  15445. var next = selector.eq(index);
  15446. next.focus();
  15447. }
  15448. e.preventDefault();
  15449. }
  15450. });
  15451. if (selectFirst && results.length > 0) {
  15452. var id = 'search_' + results[0][0].item.name.replace(/ /g, "_");
  15453. $("#" + id).show(0);
  15454. $('#search-dropdown a').first().focus();
  15455. $("#" + id + "_0").focus();
  15456. }
  15457. }
  15458. // Bind the search action
  15459. $("#search").click(() => search(false));
  15460. $("#searchfield").on("input", () => search(false));
  15461. $("#searchform").submit(function(e) {
  15462. e.preventDefault();
  15463. search(true);
  15464. });
  15465. // define a handler
  15466. function onKeyUp(e) {
  15467. // Select the search field when pressing 'f'
  15468. if (document.activeElement != "INPUT" && e.keyCode == 70) {
  15469. $("#searchfield").focus();
  15470. e.preventDefault();
  15471. }
  15472. }
  15473. // register the handler
  15474. document.addEventListener('keyup', onKeyUp, false);
  15475. } else {
  15476. console.log("Can't load a file");
  15477. }
  15478. });
  15479. });
  15480. </script>
  15481. </body>
  15482. </html>