| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736 | /******/ (function(modules) { // webpackBootstrap/******/ 	// The module cache/******/ 	var installedModules = {};/******//******/ 	// The require function/******/ 	function __webpack_require__(moduleId) {/******//******/ 		// Check if module is in cache/******/ 		if(installedModules[moduleId]) {/******/ 			return installedModules[moduleId].exports;/******/ 		}/******/ 		// Create a new module (and put it into the cache)/******/ 		var module = installedModules[moduleId] = {/******/ 			i: moduleId,/******/ 			l: false,/******/ 			exports: {}/******/ 		};/******//******/ 		// Execute the module function/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);/******//******/ 		// Flag the module as loaded/******/ 		module.l = true;/******//******/ 		// Return the exports of the module/******/ 		return module.exports;/******/ 	}/******//******//******/ 	// expose the modules object (__webpack_modules__)/******/ 	__webpack_require__.m = modules;/******//******/ 	// expose the module cache/******/ 	__webpack_require__.c = installedModules;/******//******/ 	// define getter function for harmony exports/******/ 	__webpack_require__.d = function(exports, name, getter) {/******/ 		if(!__webpack_require__.o(exports, name)) {/******/ 			Object.defineProperty(exports, name, {/******/ 				configurable: false,/******/ 				enumerable: true,/******/ 				get: getter/******/ 			});/******/ 		}/******/ 	};/******//******/ 	// getDefaultExport function for compatibility with non-harmony modules/******/ 	__webpack_require__.n = function(module) {/******/ 		var getter = module && module.__esModule ?/******/ 			function getDefault() { return module['default']; } :/******/ 			function getModuleExports() { return module; };/******/ 		__webpack_require__.d(getter, 'a', getter);/******/ 		return getter;/******/ 	};/******//******/ 	// Object.prototype.hasOwnProperty.call/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };/******//******/ 	// __webpack_public_path__/******/ 	__webpack_require__.p = "";/******//******/ 	// Load entry module and return exports/******/ 	return __webpack_require__(__webpack_require__.s = 21);/******/ })/************************************************************************//******/ ([/* 0 *//***/ (function(module, exports) {var g;// This works in non-strict modeg = (function() {	return this;})();try {	// This works if eval is allowed (see CSP)	g = g || Function("return this")() || (1,eval)("this");} catch(e) {	// This works if the window reference is available	if(typeof window === "object")		g = window;}// g can still be undefined, but nothing to do about it...// We return undefined, instead of nothing here, so it's// easier to handle this case. if(!global) { ...}module.exports = g;/***/ }),/* 1 *//***/ (function(module, exports) {// shim for using process in browservar process = module.exports = {};// cached from whatever global is present so that test runners that stub it// don't break things.  But we need to wrap it in a try catch in case it is// wrapped in strict mode code which doesn't define any globals.  It's inside a// function because try/catches deoptimize in certain engines.var cachedSetTimeout;var cachedClearTimeout;function defaultSetTimout() {    throw new Error('setTimeout has not been defined');}function defaultClearTimeout () {    throw new Error('clearTimeout has not been defined');}(function () {    try {        if (typeof setTimeout === 'function') {            cachedSetTimeout = setTimeout;        } else {            cachedSetTimeout = defaultSetTimout;        }    } catch (e) {        cachedSetTimeout = defaultSetTimout;    }    try {        if (typeof clearTimeout === 'function') {            cachedClearTimeout = clearTimeout;        } else {            cachedClearTimeout = defaultClearTimeout;        }    } catch (e) {        cachedClearTimeout = defaultClearTimeout;    }} ())function runTimeout(fun) {    if (cachedSetTimeout === setTimeout) {        //normal enviroments in sane situations        return setTimeout(fun, 0);    }    // if setTimeout wasn't available but was latter defined    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {        cachedSetTimeout = setTimeout;        return setTimeout(fun, 0);    }    try {        // when when somebody has screwed with setTimeout but no I.E. maddness        return cachedSetTimeout(fun, 0);    } catch(e){        try {            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally            return cachedSetTimeout.call(null, fun, 0);        } catch(e){            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error            return cachedSetTimeout.call(this, fun, 0);        }    }}function runClearTimeout(marker) {    if (cachedClearTimeout === clearTimeout) {        //normal enviroments in sane situations        return clearTimeout(marker);    }    // if clearTimeout wasn't available but was latter defined    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {        cachedClearTimeout = clearTimeout;        return clearTimeout(marker);    }    try {        // when when somebody has screwed with setTimeout but no I.E. maddness        return cachedClearTimeout(marker);    } catch (e){        try {            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally            return cachedClearTimeout.call(null, marker);        } catch (e){            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.            // Some versions of I.E. have different rules for clearTimeout vs setTimeout            return cachedClearTimeout.call(this, marker);        }    }}var queue = [];var draining = false;var currentQueue;var queueIndex = -1;function cleanUpNextTick() {    if (!draining || !currentQueue) {        return;    }    draining = false;    if (currentQueue.length) {        queue = currentQueue.concat(queue);    } else {        queueIndex = -1;    }    if (queue.length) {        drainQueue();    }}function drainQueue() {    if (draining) {        return;    }    var timeout = runTimeout(cleanUpNextTick);    draining = true;    var len = queue.length;    while(len) {        currentQueue = queue;        queue = [];        while (++queueIndex < len) {            if (currentQueue) {                currentQueue[queueIndex].run();            }        }        queueIndex = -1;        len = queue.length;    }    currentQueue = null;    draining = false;    runClearTimeout(timeout);}process.nextTick = function (fun) {    var args = new Array(arguments.length - 1);    if (arguments.length > 1) {        for (var i = 1; i < arguments.length; i++) {            args[i - 1] = arguments[i];        }    }    queue.push(new Item(fun, args));    if (queue.length === 1 && !draining) {        runTimeout(drainQueue);    }};// v8 likes predictible objectsfunction Item(fun, array) {    this.fun = fun;    this.array = array;}Item.prototype.run = function () {    this.fun.apply(null, this.array);};process.title = 'browser';process.browser = true;process.env = {};process.argv = [];process.version = ''; // empty string to avoid regexp issuesprocess.versions = {};function noop() {}process.on = noop;process.addListener = noop;process.once = noop;process.off = noop;process.removeListener = noop;process.removeAllListeners = noop;process.emit = noop;process.prependListener = noop;process.prependOnceListener = noop;process.listeners = function (name) { return [] }process.binding = function (name) {    throw new Error('process.binding is not supported');};process.cwd = function () { return '/' };process.chdir = function (dir) {    throw new Error('process.chdir is not supported');};process.umask = function() { return 0; };/***/ }),/* 2 *//***/ (function(module, exports) {if (typeof Object.create === 'function') {  // implementation from standard node.js 'util' module  module.exports = function inherits(ctor, superCtor) {    ctor.super_ = superCtor    ctor.prototype = Object.create(superCtor.prototype, {      constructor: {        value: ctor,        enumerable: false,        writable: true,        configurable: true      }    });  };} else {  // old school shim for old browsers  module.exports = function inherits(ctor, superCtor) {    ctor.super_ = superCtor    var TempCtor = function () {}    TempCtor.prototype = superCtor.prototype    ctor.prototype = new TempCtor()    ctor.prototype.constructor = ctor  }}/***/ }),/* 3 *//***/ (function(module, exports, __webpack_require__) {"use strict";/* WEBPACK VAR INJECTION */(function(global) {/*! * The buffer module from node.js, for the browser. * * @author   Feross Aboukhadijeh <http://feross.org> * @license  MIT *//* eslint-disable no-proto */var base64 = __webpack_require__(23)var ieee754 = __webpack_require__(24)var isArray = __webpack_require__(10)exports.Buffer = Bufferexports.SlowBuffer = SlowBufferexports.INSPECT_MAX_BYTES = 50/** * If `Buffer.TYPED_ARRAY_SUPPORT`: *   === true    Use Uint8Array implementation (fastest) *   === false   Use Object implementation (most compatible, even IE6) * * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, * Opera 11.6+, iOS 4.2+. * * Due to various browser bugs, sometimes the Object implementation will be used even * when the browser supports typed arrays. * * Note: * *   - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, *     See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. * *   - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. * *   - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of *     incorrect length in some situations. * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they * get the Object implementation, which is slower but behaves correctly. */Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined  ? global.TYPED_ARRAY_SUPPORT  : typedArraySupport()/* * Export kMaxLength after typed array support is determined. */exports.kMaxLength = kMaxLength()function typedArraySupport () {  try {    var arr = new Uint8Array(1)    arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}    return arr.foo() === 42 && // typed array instances can be augmented        typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`        arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`  } catch (e) {    return false  }}function kMaxLength () {  return Buffer.TYPED_ARRAY_SUPPORT    ? 0x7fffffff    : 0x3fffffff}function createBuffer (that, length) {  if (kMaxLength() < length) {    throw new RangeError('Invalid typed array length')  }  if (Buffer.TYPED_ARRAY_SUPPORT) {    // Return an augmented `Uint8Array` instance, for best performance    that = new Uint8Array(length)    that.__proto__ = Buffer.prototype  } else {    // Fallback: Return an object instance of the Buffer class    if (that === null) {      that = new Buffer(length)    }    that.length = length  }  return that}/** * The Buffer constructor returns instances of `Uint8Array` that have their * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of * `Uint8Array`, so the returned instances will have all the node `Buffer` methods * and the `Uint8Array` methods. Square bracket notation works as expected -- it * returns a single octet. * * The `Uint8Array` prototype remains unmodified. */function Buffer (arg, encodingOrOffset, length) {  if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {    return new Buffer(arg, encodingOrOffset, length)  }  // Common case.  if (typeof arg === 'number') {    if (typeof encodingOrOffset === 'string') {      throw new Error(        'If encoding is specified then the first argument must be a string'      )    }    return allocUnsafe(this, arg)  }  return from(this, arg, encodingOrOffset, length)}Buffer.poolSize = 8192 // not used by this implementation// TODO: Legacy, not needed anymore. Remove in next major version.Buffer._augment = function (arr) {  arr.__proto__ = Buffer.prototype  return arr}function from (that, value, encodingOrOffset, length) {  if (typeof value === 'number') {    throw new TypeError('"value" argument must not be a number')  }  if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {    return fromArrayBuffer(that, value, encodingOrOffset, length)  }  if (typeof value === 'string') {    return fromString(that, value, encodingOrOffset)  }  return fromObject(that, value)}/** * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError * if value is a number. * Buffer.from(str[, encoding]) * Buffer.from(array) * Buffer.from(buffer) * Buffer.from(arrayBuffer[, byteOffset[, length]]) **/Buffer.from = function (value, encodingOrOffset, length) {  return from(null, value, encodingOrOffset, length)}if (Buffer.TYPED_ARRAY_SUPPORT) {  Buffer.prototype.__proto__ = Uint8Array.prototype  Buffer.__proto__ = Uint8Array  if (typeof Symbol !== 'undefined' && Symbol.species &&      Buffer[Symbol.species] === Buffer) {    // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97    Object.defineProperty(Buffer, Symbol.species, {      value: null,      configurable: true    })  }}function assertSize (size) {  if (typeof size !== 'number') {    throw new TypeError('"size" argument must be a number')  } else if (size < 0) {    throw new RangeError('"size" argument must not be negative')  }}function alloc (that, size, fill, encoding) {  assertSize(size)  if (size <= 0) {    return createBuffer(that, size)  }  if (fill !== undefined) {    // Only pay attention to encoding if it's a string. This    // prevents accidentally sending in a number that would    // be interpretted as a start offset.    return typeof encoding === 'string'      ? createBuffer(that, size).fill(fill, encoding)      : createBuffer(that, size).fill(fill)  }  return createBuffer(that, size)}/** * Creates a new filled Buffer instance. * alloc(size[, fill[, encoding]]) **/Buffer.alloc = function (size, fill, encoding) {  return alloc(null, size, fill, encoding)}function allocUnsafe (that, size) {  assertSize(size)  that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)  if (!Buffer.TYPED_ARRAY_SUPPORT) {    for (var i = 0; i < size; ++i) {      that[i] = 0    }  }  return that}/** * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. * */Buffer.allocUnsafe = function (size) {  return allocUnsafe(null, size)}/** * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. */Buffer.allocUnsafeSlow = function (size) {  return allocUnsafe(null, size)}function fromString (that, string, encoding) {  if (typeof encoding !== 'string' || encoding === '') {    encoding = 'utf8'  }  if (!Buffer.isEncoding(encoding)) {    throw new TypeError('"encoding" must be a valid string encoding')  }  var length = byteLength(string, encoding) | 0  that = createBuffer(that, length)  var actual = that.write(string, encoding)  if (actual !== length) {    // Writing a hex string, for example, that contains invalid characters will    // cause everything after the first invalid character to be ignored. (e.g.    // 'abxxcd' will be treated as 'ab')    that = that.slice(0, actual)  }  return that}function fromArrayLike (that, array) {  var length = array.length < 0 ? 0 : checked(array.length) | 0  that = createBuffer(that, length)  for (var i = 0; i < length; i += 1) {    that[i] = array[i] & 255  }  return that}function fromArrayBuffer (that, array, byteOffset, length) {  array.byteLength // this throws if `array` is not a valid ArrayBuffer  if (byteOffset < 0 || array.byteLength < byteOffset) {    throw new RangeError('\'offset\' is out of bounds')  }  if (array.byteLength < byteOffset + (length || 0)) {    throw new RangeError('\'length\' is out of bounds')  }  if (byteOffset === undefined && length === undefined) {    array = new Uint8Array(array)  } else if (length === undefined) {    array = new Uint8Array(array, byteOffset)  } else {    array = new Uint8Array(array, byteOffset, length)  }  if (Buffer.TYPED_ARRAY_SUPPORT) {    // Return an augmented `Uint8Array` instance, for best performance    that = array    that.__proto__ = Buffer.prototype  } else {    // Fallback: Return an object instance of the Buffer class    that = fromArrayLike(that, array)  }  return that}function fromObject (that, obj) {  if (Buffer.isBuffer(obj)) {    var len = checked(obj.length) | 0    that = createBuffer(that, len)    if (that.length === 0) {      return that    }    obj.copy(that, 0, 0, len)    return that  }  if (obj) {    if ((typeof ArrayBuffer !== 'undefined' &&        obj.buffer instanceof ArrayBuffer) || 'length' in obj) {      if (typeof obj.length !== 'number' || isnan(obj.length)) {        return createBuffer(that, 0)      }      return fromArrayLike(that, obj)    }    if (obj.type === 'Buffer' && isArray(obj.data)) {      return fromArrayLike(that, obj.data)    }  }  throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')}function checked (length) {  // Note: cannot use `length < kMaxLength()` here because that fails when  // length is NaN (which is otherwise coerced to zero.)  if (length >= kMaxLength()) {    throw new RangeError('Attempt to allocate Buffer larger than maximum ' +                         'size: 0x' + kMaxLength().toString(16) + ' bytes')  }  return length | 0}function SlowBuffer (length) {  if (+length != length) { // eslint-disable-line eqeqeq    length = 0  }  return Buffer.alloc(+length)}Buffer.isBuffer = function isBuffer (b) {  return !!(b != null && b._isBuffer)}Buffer.compare = function compare (a, b) {  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {    throw new TypeError('Arguments must be Buffers')  }  if (a === b) return 0  var x = a.length  var y = b.length  for (var i = 0, len = Math.min(x, y); i < len; ++i) {    if (a[i] !== b[i]) {      x = a[i]      y = b[i]      break    }  }  if (x < y) return -1  if (y < x) return 1  return 0}Buffer.isEncoding = function isEncoding (encoding) {  switch (String(encoding).toLowerCase()) {    case 'hex':    case 'utf8':    case 'utf-8':    case 'ascii':    case 'latin1':    case 'binary':    case 'base64':    case 'ucs2':    case 'ucs-2':    case 'utf16le':    case 'utf-16le':      return true    default:      return false  }}Buffer.concat = function concat (list, length) {  if (!isArray(list)) {    throw new TypeError('"list" argument must be an Array of Buffers')  }  if (list.length === 0) {    return Buffer.alloc(0)  }  var i  if (length === undefined) {    length = 0    for (i = 0; i < list.length; ++i) {      length += list[i].length    }  }  var buffer = Buffer.allocUnsafe(length)  var pos = 0  for (i = 0; i < list.length; ++i) {    var buf = list[i]    if (!Buffer.isBuffer(buf)) {      throw new TypeError('"list" argument must be an Array of Buffers')    }    buf.copy(buffer, pos)    pos += buf.length  }  return buffer}function byteLength (string, encoding) {  if (Buffer.isBuffer(string)) {    return string.length  }  if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&      (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {    return string.byteLength  }  if (typeof string !== 'string') {    string = '' + string  }  var len = string.length  if (len === 0) return 0  // Use a for loop to avoid recursion  var loweredCase = false  for (;;) {    switch (encoding) {      case 'ascii':      case 'latin1':      case 'binary':        return len      case 'utf8':      case 'utf-8':      case undefined:        return utf8ToBytes(string).length      case 'ucs2':      case 'ucs-2':      case 'utf16le':      case 'utf-16le':        return len * 2      case 'hex':        return len >>> 1      case 'base64':        return base64ToBytes(string).length      default:        if (loweredCase) return utf8ToBytes(string).length // assume utf8        encoding = ('' + encoding).toLowerCase()        loweredCase = true    }  }}Buffer.byteLength = byteLengthfunction slowToString (encoding, start, end) {  var loweredCase = false  // No need to verify that "this.length <= MAX_UINT32" since it's a read-only  // property of a typed array.  // This behaves neither like String nor Uint8Array in that we set start/end  // to their upper/lower bounds if the value passed is out of range.  // undefined is handled specially as per ECMA-262 6th Edition,  // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.  if (start === undefined || start < 0) {    start = 0  }  // Return early if start > this.length. Done here to prevent potential uint32  // coercion fail below.  if (start > this.length) {    return ''  }  if (end === undefined || end > this.length) {    end = this.length  }  if (end <= 0) {    return ''  }  // Force coersion to uint32. This will also coerce falsey/NaN values to 0.  end >>>= 0  start >>>= 0  if (end <= start) {    return ''  }  if (!encoding) encoding = 'utf8'  while (true) {    switch (encoding) {      case 'hex':        return hexSlice(this, start, end)      case 'utf8':      case 'utf-8':        return utf8Slice(this, start, end)      case 'ascii':        return asciiSlice(this, start, end)      case 'latin1':      case 'binary':        return latin1Slice(this, start, end)      case 'base64':        return base64Slice(this, start, end)      case 'ucs2':      case 'ucs-2':      case 'utf16le':      case 'utf-16le':        return utf16leSlice(this, start, end)      default:        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)        encoding = (encoding + '').toLowerCase()        loweredCase = true    }  }}// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect// Buffer instances.Buffer.prototype._isBuffer = truefunction swap (b, n, m) {  var i = b[n]  b[n] = b[m]  b[m] = i}Buffer.prototype.swap16 = function swap16 () {  var len = this.length  if (len % 2 !== 0) {    throw new RangeError('Buffer size must be a multiple of 16-bits')  }  for (var i = 0; i < len; i += 2) {    swap(this, i, i + 1)  }  return this}Buffer.prototype.swap32 = function swap32 () {  var len = this.length  if (len % 4 !== 0) {    throw new RangeError('Buffer size must be a multiple of 32-bits')  }  for (var i = 0; i < len; i += 4) {    swap(this, i, i + 3)    swap(this, i + 1, i + 2)  }  return this}Buffer.prototype.swap64 = function swap64 () {  var len = this.length  if (len % 8 !== 0) {    throw new RangeError('Buffer size must be a multiple of 64-bits')  }  for (var i = 0; i < len; i += 8) {    swap(this, i, i + 7)    swap(this, i + 1, i + 6)    swap(this, i + 2, i + 5)    swap(this, i + 3, i + 4)  }  return this}Buffer.prototype.toString = function toString () {  var length = this.length | 0  if (length === 0) return ''  if (arguments.length === 0) return utf8Slice(this, 0, length)  return slowToString.apply(this, arguments)}Buffer.prototype.equals = function equals (b) {  if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')  if (this === b) return true  return Buffer.compare(this, b) === 0}Buffer.prototype.inspect = function inspect () {  var str = ''  var max = exports.INSPECT_MAX_BYTES  if (this.length > 0) {    str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')    if (this.length > max) str += ' ... '  }  return '<Buffer ' + str + '>'}Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {  if (!Buffer.isBuffer(target)) {    throw new TypeError('Argument must be a Buffer')  }  if (start === undefined) {    start = 0  }  if (end === undefined) {    end = target ? target.length : 0  }  if (thisStart === undefined) {    thisStart = 0  }  if (thisEnd === undefined) {    thisEnd = this.length  }  if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {    throw new RangeError('out of range index')  }  if (thisStart >= thisEnd && start >= end) {    return 0  }  if (thisStart >= thisEnd) {    return -1  }  if (start >= end) {    return 1  }  start >>>= 0  end >>>= 0  thisStart >>>= 0  thisEnd >>>= 0  if (this === target) return 0  var x = thisEnd - thisStart  var y = end - start  var len = Math.min(x, y)  var thisCopy = this.slice(thisStart, thisEnd)  var targetCopy = target.slice(start, end)  for (var i = 0; i < len; ++i) {    if (thisCopy[i] !== targetCopy[i]) {      x = thisCopy[i]      y = targetCopy[i]      break    }  }  if (x < y) return -1  if (y < x) return 1  return 0}// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,// OR the last index of `val` in `buffer` at offset <= `byteOffset`.//// Arguments:// - buffer - a Buffer to search// - val - a string, Buffer, or number// - byteOffset - an index into `buffer`; will be clamped to an int32// - encoding - an optional encoding, relevant is val is a string// - dir - true for indexOf, false for lastIndexOffunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {  // Empty buffer means no match  if (buffer.length === 0) return -1  // Normalize byteOffset  if (typeof byteOffset === 'string') {    encoding = byteOffset    byteOffset = 0  } else if (byteOffset > 0x7fffffff) {    byteOffset = 0x7fffffff  } else if (byteOffset < -0x80000000) {    byteOffset = -0x80000000  }  byteOffset = +byteOffset  // Coerce to Number.  if (isNaN(byteOffset)) {    // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer    byteOffset = dir ? 0 : (buffer.length - 1)  }  // Normalize byteOffset: negative offsets start from the end of the buffer  if (byteOffset < 0) byteOffset = buffer.length + byteOffset  if (byteOffset >= buffer.length) {    if (dir) return -1    else byteOffset = buffer.length - 1  } else if (byteOffset < 0) {    if (dir) byteOffset = 0    else return -1  }  // Normalize val  if (typeof val === 'string') {    val = Buffer.from(val, encoding)  }  // Finally, search either indexOf (if dir is true) or lastIndexOf  if (Buffer.isBuffer(val)) {    // Special case: looking for empty string/buffer always fails    if (val.length === 0) {      return -1    }    return arrayIndexOf(buffer, val, byteOffset, encoding, dir)  } else if (typeof val === 'number') {    val = val & 0xFF // Search for a byte value [0-255]    if (Buffer.TYPED_ARRAY_SUPPORT &&        typeof Uint8Array.prototype.indexOf === 'function') {      if (dir) {        return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)      } else {        return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)      }    }    return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)  }  throw new TypeError('val must be string, number or Buffer')}function arrayIndexOf (arr, val, byteOffset, encoding, dir) {  var indexSize = 1  var arrLength = arr.length  var valLength = val.length  if (encoding !== undefined) {    encoding = String(encoding).toLowerCase()    if (encoding === 'ucs2' || encoding === 'ucs-2' ||        encoding === 'utf16le' || encoding === 'utf-16le') {      if (arr.length < 2 || val.length < 2) {        return -1      }      indexSize = 2      arrLength /= 2      valLength /= 2      byteOffset /= 2    }  }  function read (buf, i) {    if (indexSize === 1) {      return buf[i]    } else {      return buf.readUInt16BE(i * indexSize)    }  }  var i  if (dir) {    var foundIndex = -1    for (i = byteOffset; i < arrLength; i++) {      if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {        if (foundIndex === -1) foundIndex = i        if (i - foundIndex + 1 === valLength) return foundIndex * indexSize      } else {        if (foundIndex !== -1) i -= i - foundIndex        foundIndex = -1      }    }  } else {    if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength    for (i = byteOffset; i >= 0; i--) {      var found = true      for (var j = 0; j < valLength; j++) {        if (read(arr, i + j) !== read(val, j)) {          found = false          break        }      }      if (found) return i    }  }  return -1}Buffer.prototype.includes = function includes (val, byteOffset, encoding) {  return this.indexOf(val, byteOffset, encoding) !== -1}Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {  return bidirectionalIndexOf(this, val, byteOffset, encoding, true)}Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {  return bidirectionalIndexOf(this, val, byteOffset, encoding, false)}function hexWrite (buf, string, offset, length) {  offset = Number(offset) || 0  var remaining = buf.length - offset  if (!length) {    length = remaining  } else {    length = Number(length)    if (length > remaining) {      length = remaining    }  }  // must be an even number of digits  var strLen = string.length  if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')  if (length > strLen / 2) {    length = strLen / 2  }  for (var i = 0; i < length; ++i) {    var parsed = parseInt(string.substr(i * 2, 2), 16)    if (isNaN(parsed)) return i    buf[offset + i] = parsed  }  return i}function utf8Write (buf, string, offset, length) {  return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)}function asciiWrite (buf, string, offset, length) {  return blitBuffer(asciiToBytes(string), buf, offset, length)}function latin1Write (buf, string, offset, length) {  return asciiWrite(buf, string, offset, length)}function base64Write (buf, string, offset, length) {  return blitBuffer(base64ToBytes(string), buf, offset, length)}function ucs2Write (buf, string, offset, length) {  return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)}Buffer.prototype.write = function write (string, offset, length, encoding) {  // Buffer#write(string)  if (offset === undefined) {    encoding = 'utf8'    length = this.length    offset = 0  // Buffer#write(string, encoding)  } else if (length === undefined && typeof offset === 'string') {    encoding = offset    length = this.length    offset = 0  // Buffer#write(string, offset[, length][, encoding])  } else if (isFinite(offset)) {    offset = offset | 0    if (isFinite(length)) {      length = length | 0      if (encoding === undefined) encoding = 'utf8'    } else {      encoding = length      length = undefined    }  // legacy write(string, encoding, offset, length) - remove in v0.13  } else {    throw new Error(      'Buffer.write(string, encoding, offset[, length]) is no longer supported'    )  }  var remaining = this.length - offset  if (length === undefined || length > remaining) length = remaining  if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {    throw new RangeError('Attempt to write outside buffer bounds')  }  if (!encoding) encoding = 'utf8'  var loweredCase = false  for (;;) {    switch (encoding) {      case 'hex':        return hexWrite(this, string, offset, length)      case 'utf8':      case 'utf-8':        return utf8Write(this, string, offset, length)      case 'ascii':        return asciiWrite(this, string, offset, length)      case 'latin1':      case 'binary':        return latin1Write(this, string, offset, length)      case 'base64':        // Warning: maxLength not taken into account in base64Write        return base64Write(this, string, offset, length)      case 'ucs2':      case 'ucs-2':      case 'utf16le':      case 'utf-16le':        return ucs2Write(this, string, offset, length)      default:        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)        encoding = ('' + encoding).toLowerCase()        loweredCase = true    }  }}Buffer.prototype.toJSON = function toJSON () {  return {    type: 'Buffer',    data: Array.prototype.slice.call(this._arr || this, 0)  }}function base64Slice (buf, start, end) {  if (start === 0 && end === buf.length) {    return base64.fromByteArray(buf)  } else {    return base64.fromByteArray(buf.slice(start, end))  }}function utf8Slice (buf, start, end) {  end = Math.min(buf.length, end)  var res = []  var i = start  while (i < end) {    var firstByte = buf[i]    var codePoint = null    var bytesPerSequence = (firstByte > 0xEF) ? 4      : (firstByte > 0xDF) ? 3      : (firstByte > 0xBF) ? 2      : 1    if (i + bytesPerSequence <= end) {      var secondByte, thirdByte, fourthByte, tempCodePoint      switch (bytesPerSequence) {        case 1:          if (firstByte < 0x80) {            codePoint = firstByte          }          break        case 2:          secondByte = buf[i + 1]          if ((secondByte & 0xC0) === 0x80) {            tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)            if (tempCodePoint > 0x7F) {              codePoint = tempCodePoint            }          }          break        case 3:          secondByte = buf[i + 1]          thirdByte = buf[i + 2]          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {            tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)            if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {              codePoint = tempCodePoint            }          }          break        case 4:          secondByte = buf[i + 1]          thirdByte = buf[i + 2]          fourthByte = buf[i + 3]          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {            tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)            if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {              codePoint = tempCodePoint            }          }      }    }    if (codePoint === null) {      // we did not generate a valid codePoint so insert a      // replacement char (U+FFFD) and advance only 1 byte      codePoint = 0xFFFD      bytesPerSequence = 1    } else if (codePoint > 0xFFFF) {      // encode to utf16 (surrogate pair dance)      codePoint -= 0x10000      res.push(codePoint >>> 10 & 0x3FF | 0xD800)      codePoint = 0xDC00 | codePoint & 0x3FF    }    res.push(codePoint)    i += bytesPerSequence  }  return decodeCodePointsArray(res)}// Based on http://stackoverflow.com/a/22747272/680742, the browser with// the lowest limit is Chrome, with 0x10000 args.// We go 1 magnitude less, for safetyvar MAX_ARGUMENTS_LENGTH = 0x1000function decodeCodePointsArray (codePoints) {  var len = codePoints.length  if (len <= MAX_ARGUMENTS_LENGTH) {    return String.fromCharCode.apply(String, codePoints) // avoid extra slice()  }  // Decode in chunks to avoid "call stack size exceeded".  var res = ''  var i = 0  while (i < len) {    res += String.fromCharCode.apply(      String,      codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)    )  }  return res}function asciiSlice (buf, start, end) {  var ret = ''  end = Math.min(buf.length, end)  for (var i = start; i < end; ++i) {    ret += String.fromCharCode(buf[i] & 0x7F)  }  return ret}function latin1Slice (buf, start, end) {  var ret = ''  end = Math.min(buf.length, end)  for (var i = start; i < end; ++i) {    ret += String.fromCharCode(buf[i])  }  return ret}function hexSlice (buf, start, end) {  var len = buf.length  if (!start || start < 0) start = 0  if (!end || end < 0 || end > len) end = len  var out = ''  for (var i = start; i < end; ++i) {    out += toHex(buf[i])  }  return out}function utf16leSlice (buf, start, end) {  var bytes = buf.slice(start, end)  var res = ''  for (var i = 0; i < bytes.length; i += 2) {    res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)  }  return res}Buffer.prototype.slice = function slice (start, end) {  var len = this.length  start = ~~start  end = end === undefined ? len : ~~end  if (start < 0) {    start += len    if (start < 0) start = 0  } else if (start > len) {    start = len  }  if (end < 0) {    end += len    if (end < 0) end = 0  } else if (end > len) {    end = len  }  if (end < start) end = start  var newBuf  if (Buffer.TYPED_ARRAY_SUPPORT) {    newBuf = this.subarray(start, end)    newBuf.__proto__ = Buffer.prototype  } else {    var sliceLen = end - start    newBuf = new Buffer(sliceLen, undefined)    for (var i = 0; i < sliceLen; ++i) {      newBuf[i] = this[i + start]    }  }  return newBuf}/* * Need to make sure that buffer isn't trying to write out of bounds. */function checkOffset (offset, ext, length) {  if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')  if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')}Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {  offset = offset | 0  byteLength = byteLength | 0  if (!noAssert) checkOffset(offset, byteLength, this.length)  var val = this[offset]  var mul = 1  var i = 0  while (++i < byteLength && (mul *= 0x100)) {    val += this[offset + i] * mul  }  return val}Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {  offset = offset | 0  byteLength = byteLength | 0  if (!noAssert) {    checkOffset(offset, byteLength, this.length)  }  var val = this[offset + --byteLength]  var mul = 1  while (byteLength > 0 && (mul *= 0x100)) {    val += this[offset + --byteLength] * mul  }  return val}Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {  if (!noAssert) checkOffset(offset, 1, this.length)  return this[offset]}Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {  if (!noAssert) checkOffset(offset, 2, this.length)  return this[offset] | (this[offset + 1] << 8)}Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {  if (!noAssert) checkOffset(offset, 2, this.length)  return (this[offset] << 8) | this[offset + 1]}Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {  if (!noAssert) checkOffset(offset, 4, this.length)  return ((this[offset]) |      (this[offset + 1] << 8) |      (this[offset + 2] << 16)) +      (this[offset + 3] * 0x1000000)}Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {  if (!noAssert) checkOffset(offset, 4, this.length)  return (this[offset] * 0x1000000) +    ((this[offset + 1] << 16) |    (this[offset + 2] << 8) |    this[offset + 3])}Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {  offset = offset | 0  byteLength = byteLength | 0  if (!noAssert) checkOffset(offset, byteLength, this.length)  var val = this[offset]  var mul = 1  var i = 0  while (++i < byteLength && (mul *= 0x100)) {    val += this[offset + i] * mul  }  mul *= 0x80  if (val >= mul) val -= Math.pow(2, 8 * byteLength)  return val}Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {  offset = offset | 0  byteLength = byteLength | 0  if (!noAssert) checkOffset(offset, byteLength, this.length)  var i = byteLength  var mul = 1  var val = this[offset + --i]  while (i > 0 && (mul *= 0x100)) {    val += this[offset + --i] * mul  }  mul *= 0x80  if (val >= mul) val -= Math.pow(2, 8 * byteLength)  return val}Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {  if (!noAssert) checkOffset(offset, 1, this.length)  if (!(this[offset] & 0x80)) return (this[offset])  return ((0xff - this[offset] + 1) * -1)}Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {  if (!noAssert) checkOffset(offset, 2, this.length)  var val = this[offset] | (this[offset + 1] << 8)  return (val & 0x8000) ? val | 0xFFFF0000 : val}Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {  if (!noAssert) checkOffset(offset, 2, this.length)  var val = this[offset + 1] | (this[offset] << 8)  return (val & 0x8000) ? val | 0xFFFF0000 : val}Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {  if (!noAssert) checkOffset(offset, 4, this.length)  return (this[offset]) |    (this[offset + 1] << 8) |    (this[offset + 2] << 16) |    (this[offset + 3] << 24)}Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {  if (!noAssert) checkOffset(offset, 4, this.length)  return (this[offset] << 24) |    (this[offset + 1] << 16) |    (this[offset + 2] << 8) |    (this[offset + 3])}Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {  if (!noAssert) checkOffset(offset, 4, this.length)  return ieee754.read(this, offset, true, 23, 4)}Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {  if (!noAssert) checkOffset(offset, 4, this.length)  return ieee754.read(this, offset, false, 23, 4)}Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {  if (!noAssert) checkOffset(offset, 8, this.length)  return ieee754.read(this, offset, true, 52, 8)}Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {  if (!noAssert) checkOffset(offset, 8, this.length)  return ieee754.read(this, offset, false, 52, 8)}function checkInt (buf, value, offset, ext, max, min) {  if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance')  if (value > max || value < min) throw new RangeError('"value" argument is out of bounds')  if (offset + ext > buf.length) throw new RangeError('Index out of range')}Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {  value = +value  offset = offset | 0  byteLength = byteLength | 0  if (!noAssert) {    var maxBytes = Math.pow(2, 8 * byteLength) - 1    checkInt(this, value, offset, byteLength, maxBytes, 0)  }  var mul = 1  var i = 0  this[offset] = value & 0xFF  while (++i < byteLength && (mul *= 0x100)) {    this[offset + i] = (value / mul) & 0xFF  }  return offset + byteLength}Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {  value = +value  offset = offset | 0  byteLength = byteLength | 0  if (!noAssert) {    var maxBytes = Math.pow(2, 8 * byteLength) - 1    checkInt(this, value, offset, byteLength, maxBytes, 0)  }  var i = byteLength - 1  var mul = 1  this[offset + i] = value & 0xFF  while (--i >= 0 && (mul *= 0x100)) {    this[offset + i] = (value / mul) & 0xFF  }  return offset + byteLength}Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {  value = +value  offset = offset | 0  if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)  this[offset] = (value & 0xff)  return offset + 1}function objectWriteUInt16 (buf, value, offset, littleEndian) {  if (value < 0) value = 0xffff + value + 1  for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {    buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>      (littleEndian ? i : 1 - i) * 8  }}Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {  value = +value  offset = offset | 0  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)  if (Buffer.TYPED_ARRAY_SUPPORT) {    this[offset] = (value & 0xff)    this[offset + 1] = (value >>> 8)  } else {    objectWriteUInt16(this, value, offset, true)  }  return offset + 2}Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {  value = +value  offset = offset | 0  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)  if (Buffer.TYPED_ARRAY_SUPPORT) {    this[offset] = (value >>> 8)    this[offset + 1] = (value & 0xff)  } else {    objectWriteUInt16(this, value, offset, false)  }  return offset + 2}function objectWriteUInt32 (buf, value, offset, littleEndian) {  if (value < 0) value = 0xffffffff + value + 1  for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {    buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff  }}Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {  value = +value  offset = offset | 0  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)  if (Buffer.TYPED_ARRAY_SUPPORT) {    this[offset + 3] = (value >>> 24)    this[offset + 2] = (value >>> 16)    this[offset + 1] = (value >>> 8)    this[offset] = (value & 0xff)  } else {    objectWriteUInt32(this, value, offset, true)  }  return offset + 4}Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {  value = +value  offset = offset | 0  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)  if (Buffer.TYPED_ARRAY_SUPPORT) {    this[offset] = (value >>> 24)    this[offset + 1] = (value >>> 16)    this[offset + 2] = (value >>> 8)    this[offset + 3] = (value & 0xff)  } else {    objectWriteUInt32(this, value, offset, false)  }  return offset + 4}Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {  value = +value  offset = offset | 0  if (!noAssert) {    var limit = Math.pow(2, 8 * byteLength - 1)    checkInt(this, value, offset, byteLength, limit - 1, -limit)  }  var i = 0  var mul = 1  var sub = 0  this[offset] = value & 0xFF  while (++i < byteLength && (mul *= 0x100)) {    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {      sub = 1    }    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF  }  return offset + byteLength}Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {  value = +value  offset = offset | 0  if (!noAssert) {    var limit = Math.pow(2, 8 * byteLength - 1)    checkInt(this, value, offset, byteLength, limit - 1, -limit)  }  var i = byteLength - 1  var mul = 1  var sub = 0  this[offset + i] = value & 0xFF  while (--i >= 0 && (mul *= 0x100)) {    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {      sub = 1    }    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF  }  return offset + byteLength}Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {  value = +value  offset = offset | 0  if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)  if (value < 0) value = 0xff + value + 1  this[offset] = (value & 0xff)  return offset + 1}Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {  value = +value  offset = offset | 0  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)  if (Buffer.TYPED_ARRAY_SUPPORT) {    this[offset] = (value & 0xff)    this[offset + 1] = (value >>> 8)  } else {    objectWriteUInt16(this, value, offset, true)  }  return offset + 2}Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {  value = +value  offset = offset | 0  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)  if (Buffer.TYPED_ARRAY_SUPPORT) {    this[offset] = (value >>> 8)    this[offset + 1] = (value & 0xff)  } else {    objectWriteUInt16(this, value, offset, false)  }  return offset + 2}Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {  value = +value  offset = offset | 0  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)  if (Buffer.TYPED_ARRAY_SUPPORT) {    this[offset] = (value & 0xff)    this[offset + 1] = (value >>> 8)    this[offset + 2] = (value >>> 16)    this[offset + 3] = (value >>> 24)  } else {    objectWriteUInt32(this, value, offset, true)  }  return offset + 4}Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {  value = +value  offset = offset | 0  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)  if (value < 0) value = 0xffffffff + value + 1  if (Buffer.TYPED_ARRAY_SUPPORT) {    this[offset] = (value >>> 24)    this[offset + 1] = (value >>> 16)    this[offset + 2] = (value >>> 8)    this[offset + 3] = (value & 0xff)  } else {    objectWriteUInt32(this, value, offset, false)  }  return offset + 4}function checkIEEE754 (buf, value, offset, ext, max, min) {  if (offset + ext > buf.length) throw new RangeError('Index out of range')  if (offset < 0) throw new RangeError('Index out of range')}function writeFloat (buf, value, offset, littleEndian, noAssert) {  if (!noAssert) {    checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)  }  ieee754.write(buf, value, offset, littleEndian, 23, 4)  return offset + 4}Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {  return writeFloat(this, value, offset, true, noAssert)}Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {  return writeFloat(this, value, offset, false, noAssert)}function writeDouble (buf, value, offset, littleEndian, noAssert) {  if (!noAssert) {    checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)  }  ieee754.write(buf, value, offset, littleEndian, 52, 8)  return offset + 8}Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {  return writeDouble(this, value, offset, true, noAssert)}Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {  return writeDouble(this, value, offset, false, noAssert)}// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)Buffer.prototype.copy = function copy (target, targetStart, start, end) {  if (!start) start = 0  if (!end && end !== 0) end = this.length  if (targetStart >= target.length) targetStart = target.length  if (!targetStart) targetStart = 0  if (end > 0 && end < start) end = start  // Copy 0 bytes; we're done  if (end === start) return 0  if (target.length === 0 || this.length === 0) return 0  // Fatal error conditions  if (targetStart < 0) {    throw new RangeError('targetStart out of bounds')  }  if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')  if (end < 0) throw new RangeError('sourceEnd out of bounds')  // Are we oob?  if (end > this.length) end = this.length  if (target.length - targetStart < end - start) {    end = target.length - targetStart + start  }  var len = end - start  var i  if (this === target && start < targetStart && targetStart < end) {    // descending copy from end    for (i = len - 1; i >= 0; --i) {      target[i + targetStart] = this[i + start]    }  } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {    // ascending copy from start    for (i = 0; i < len; ++i) {      target[i + targetStart] = this[i + start]    }  } else {    Uint8Array.prototype.set.call(      target,      this.subarray(start, start + len),      targetStart    )  }  return len}// Usage://    buffer.fill(number[, offset[, end]])//    buffer.fill(buffer[, offset[, end]])//    buffer.fill(string[, offset[, end]][, encoding])Buffer.prototype.fill = function fill (val, start, end, encoding) {  // Handle string cases:  if (typeof val === 'string') {    if (typeof start === 'string') {      encoding = start      start = 0      end = this.length    } else if (typeof end === 'string') {      encoding = end      end = this.length    }    if (val.length === 1) {      var code = val.charCodeAt(0)      if (code < 256) {        val = code      }    }    if (encoding !== undefined && typeof encoding !== 'string') {      throw new TypeError('encoding must be a string')    }    if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {      throw new TypeError('Unknown encoding: ' + encoding)    }  } else if (typeof val === 'number') {    val = val & 255  }  // Invalid ranges are not set to a default, so can range check early.  if (start < 0 || this.length < start || this.length < end) {    throw new RangeError('Out of range index')  }  if (end <= start) {    return this  }  start = start >>> 0  end = end === undefined ? this.length : end >>> 0  if (!val) val = 0  var i  if (typeof val === 'number') {    for (i = start; i < end; ++i) {      this[i] = val    }  } else {    var bytes = Buffer.isBuffer(val)      ? val      : utf8ToBytes(new Buffer(val, encoding).toString())    var len = bytes.length    for (i = 0; i < end - start; ++i) {      this[i + start] = bytes[i % len]    }  }  return this}// HELPER FUNCTIONS// ================var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/gfunction base64clean (str) {  // Node strips out invalid characters like \n and \t from the string, base64-js does not  str = stringtrim(str).replace(INVALID_BASE64_RE, '')  // Node converts strings with length < 2 to ''  if (str.length < 2) return ''  // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not  while (str.length % 4 !== 0) {    str = str + '='  }  return str}function stringtrim (str) {  if (str.trim) return str.trim()  return str.replace(/^\s+|\s+$/g, '')}function toHex (n) {  if (n < 16) return '0' + n.toString(16)  return n.toString(16)}function utf8ToBytes (string, units) {  units = units || Infinity  var codePoint  var length = string.length  var leadSurrogate = null  var bytes = []  for (var i = 0; i < length; ++i) {    codePoint = string.charCodeAt(i)    // is surrogate component    if (codePoint > 0xD7FF && codePoint < 0xE000) {      // last char was a lead      if (!leadSurrogate) {        // no lead yet        if (codePoint > 0xDBFF) {          // unexpected trail          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)          continue        } else if (i + 1 === length) {          // unpaired lead          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)          continue        }        // valid lead        leadSurrogate = codePoint        continue      }      // 2 leads in a row      if (codePoint < 0xDC00) {        if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)        leadSurrogate = codePoint        continue      }      // valid surrogate pair      codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000    } else if (leadSurrogate) {      // valid bmp char, but last char was a lead      if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)    }    leadSurrogate = null    // encode utf8    if (codePoint < 0x80) {      if ((units -= 1) < 0) break      bytes.push(codePoint)    } else if (codePoint < 0x800) {      if ((units -= 2) < 0) break      bytes.push(        codePoint >> 0x6 | 0xC0,        codePoint & 0x3F | 0x80      )    } else if (codePoint < 0x10000) {      if ((units -= 3) < 0) break      bytes.push(        codePoint >> 0xC | 0xE0,        codePoint >> 0x6 & 0x3F | 0x80,        codePoint & 0x3F | 0x80      )    } else if (codePoint < 0x110000) {      if ((units -= 4) < 0) break      bytes.push(        codePoint >> 0x12 | 0xF0,        codePoint >> 0xC & 0x3F | 0x80,        codePoint >> 0x6 & 0x3F | 0x80,        codePoint & 0x3F | 0x80      )    } else {      throw new Error('Invalid code point')    }  }  return bytes}function asciiToBytes (str) {  var byteArray = []  for (var i = 0; i < str.length; ++i) {    // Node's code seems to be doing this and not & 0x7F..    byteArray.push(str.charCodeAt(i) & 0xFF)  }  return byteArray}function utf16leToBytes (str, units) {  var c, hi, lo  var byteArray = []  for (var i = 0; i < str.length; ++i) {    if ((units -= 2) < 0) break    c = str.charCodeAt(i)    hi = c >> 8    lo = c % 256    byteArray.push(lo)    byteArray.push(hi)  }  return byteArray}function base64ToBytes (str) {  return base64.toByteArray(base64clean(str))}function blitBuffer (src, dst, offset, length) {  for (var i = 0; i < length; ++i) {    if ((i + offset >= dst.length) || (i >= src.length)) break    dst[i + offset] = src[i]  }  return i}function isnan (val) {  return val !== val // eslint-disable-line no-self-compare}/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))/***/ }),/* 4 *//***/ (function(module, exports, __webpack_require__) {"use strict";// Copyright Joyent, Inc. and other Node contributors.//// Permission is hereby granted, free of charge, to any person obtaining a// copy of this software and associated documentation files (the// "Software"), to deal in the Software without restriction, including// without limitation the rights to use, copy, modify, merge, publish,// distribute, sublicense, and/or sell copies of the Software, and to permit// persons to whom the Software is furnished to do so, subject to the// following conditions://// The above copyright notice and this permission notice shall be included// in all copies or substantial portions of the Software.//// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE// USE OR OTHER DEALINGS IN THE SOFTWARE.// a duplex stream is just a stream that is both readable and writable.// Since JS doesn't have multiple prototypal inheritance, this class// prototypally inherits from Readable, and then parasitically from// Writable./*<replacement>*/var pna = __webpack_require__(6);/*</replacement>*//*<replacement>*/var objectKeys = Object.keys || function (obj) {  var keys = [];  for (var key in obj) {    keys.push(key);  }return keys;};/*</replacement>*/module.exports = Duplex;/*<replacement>*/var util = Object.create(__webpack_require__(5));util.inherits = __webpack_require__(2);/*</replacement>*/var Readable = __webpack_require__(15);var Writable = __webpack_require__(18);util.inherits(Duplex, Readable);{  // avoid scope creep, the keys array can then be collected  var keys = objectKeys(Writable.prototype);  for (var v = 0; v < keys.length; v++) {    var method = keys[v];    if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];  }}function Duplex(options) {  if (!(this instanceof Duplex)) return new Duplex(options);  Readable.call(this, options);  Writable.call(this, options);  if (options && options.readable === false) this.readable = false;  if (options && options.writable === false) this.writable = false;  this.allowHalfOpen = true;  if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;  this.once('end', onend);}Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', {  // making it explicit this property is not enumerable  // because otherwise some prototype manipulation in  // userland will fail  enumerable: false,  get: function () {    return this._writableState.highWaterMark;  }});// the no-half-open enforcerfunction onend() {  // if we allow half-open state, or if the writable side ended,  // then we're ok.  if (this.allowHalfOpen || this._writableState.ended) return;  // no more data can be written.  // But allow more writes to happen in this tick.  pna.nextTick(onEndNT, this);}function onEndNT(self) {  self.end();}Object.defineProperty(Duplex.prototype, 'destroyed', {  get: function () {    if (this._readableState === undefined || this._writableState === undefined) {      return false;    }    return this._readableState.destroyed && this._writableState.destroyed;  },  set: function (value) {    // we ignore the value if the stream    // has not been initialized yet    if (this._readableState === undefined || this._writableState === undefined) {      return;    }    // backward compatibility, the user is explicitly    // managing destroyed    this._readableState.destroyed = value;    this._writableState.destroyed = value;  }});Duplex.prototype._destroy = function (err, cb) {  this.push(null);  this.end();  pna.nextTick(cb, err);};/***/ }),/* 5 *//***/ (function(module, exports, __webpack_require__) {/* WEBPACK VAR INJECTION */(function(Buffer) {// Copyright Joyent, Inc. and other Node contributors.//// Permission is hereby granted, free of charge, to any person obtaining a// copy of this software and associated documentation files (the// "Software"), to deal in the Software without restriction, including// without limitation the rights to use, copy, modify, merge, publish,// distribute, sublicense, and/or sell copies of the Software, and to permit// persons to whom the Software is furnished to do so, subject to the// following conditions://// The above copyright notice and this permission notice shall be included// in all copies or substantial portions of the Software.//// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE// USE OR OTHER DEALINGS IN THE SOFTWARE.// NOTE: These type checking functions intentionally don't use `instanceof`// because it is fragile and can be easily faked with `Object.create()`.function isArray(arg) {  if (Array.isArray) {    return Array.isArray(arg);  }  return objectToString(arg) === '[object Array]';}exports.isArray = isArray;function isBoolean(arg) {  return typeof arg === 'boolean';}exports.isBoolean = isBoolean;function isNull(arg) {  return arg === null;}exports.isNull = isNull;function isNullOrUndefined(arg) {  return arg == null;}exports.isNullOrUndefined = isNullOrUndefined;function isNumber(arg) {  return typeof arg === 'number';}exports.isNumber = isNumber;function isString(arg) {  return typeof arg === 'string';}exports.isString = isString;function isSymbol(arg) {  return typeof arg === 'symbol';}exports.isSymbol = isSymbol;function isUndefined(arg) {  return arg === void 0;}exports.isUndefined = isUndefined;function isRegExp(re) {  return objectToString(re) === '[object RegExp]';}exports.isRegExp = isRegExp;function isObject(arg) {  return typeof arg === 'object' && arg !== null;}exports.isObject = isObject;function isDate(d) {  return objectToString(d) === '[object Date]';}exports.isDate = isDate;function isError(e) {  return (objectToString(e) === '[object Error]' || e instanceof Error);}exports.isError = isError;function isFunction(arg) {  return typeof arg === 'function';}exports.isFunction = isFunction;function isPrimitive(arg) {  return arg === null ||         typeof arg === 'boolean' ||         typeof arg === 'number' ||         typeof arg === 'string' ||         typeof arg === 'symbol' ||  // ES6 symbol         typeof arg === 'undefined';}exports.isPrimitive = isPrimitive;exports.isBuffer = Buffer.isBuffer;function objectToString(o) {  return Object.prototype.toString.call(o);}/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3).Buffer))/***/ }),/* 6 *//***/ (function(module, exports, __webpack_require__) {"use strict";/* WEBPACK VAR INJECTION */(function(process) {if (typeof process === 'undefined' ||    !process.version ||    process.version.indexOf('v0.') === 0 ||    process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {  module.exports = { nextTick: nextTick };} else {  module.exports = process}function nextTick(fn, arg1, arg2, arg3) {  if (typeof fn !== 'function') {    throw new TypeError('"callback" argument must be a function');  }  var len = arguments.length;  var args, i;  switch (len) {  case 0:  case 1:    return process.nextTick(fn);  case 2:    return process.nextTick(function afterTickOne() {      fn.call(null, arg1);    });  case 3:    return process.nextTick(function afterTickTwo() {      fn.call(null, arg1, arg2);    });  case 4:    return process.nextTick(function afterTickThree() {      fn.call(null, arg1, arg2, arg3);    });  default:    args = new Array(len - 1);    i = 0;    while (i < args.length) {      args[i++] = arguments[i];    }    return process.nextTick(function afterTick() {      fn.apply(null, args);    });  }}/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))/***/ }),/* 7 *//***/ (function(module, exports, __webpack_require__) {/* eslint-disable node/no-deprecated-api */var buffer = __webpack_require__(3)var Buffer = buffer.Buffer// alternative to using Object.keys for old browsersfunction copyProps (src, dst) {  for (var key in src) {    dst[key] = src[key]  }}if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {  module.exports = buffer} else {  // Copy properties from require('buffer')  copyProps(buffer, exports)  exports.Buffer = SafeBuffer}function SafeBuffer (arg, encodingOrOffset, length) {  return Buffer(arg, encodingOrOffset, length)}// Copy static methods from BuffercopyProps(Buffer, SafeBuffer)SafeBuffer.from = function (arg, encodingOrOffset, length) {  if (typeof arg === 'number') {    throw new TypeError('Argument must not be a number')  }  return Buffer(arg, encodingOrOffset, length)}SafeBuffer.alloc = function (size, fill, encoding) {  if (typeof size !== 'number') {    throw new TypeError('Argument must be a number')  }  var buf = Buffer(size)  if (fill !== undefined) {    if (typeof encoding === 'string') {      buf.fill(fill, encoding)    } else {      buf.fill(fill)    }  } else {    buf.fill(0)  }  return buf}SafeBuffer.allocUnsafe = function (size) {  if (typeof size !== 'number') {    throw new TypeError('Argument must be a number')  }  return Buffer(size)}SafeBuffer.allocUnsafeSlow = function (size) {  if (typeof size !== 'number') {    throw new TypeError('Argument must be a number')  }  return buffer.SlowBuffer(size)}/***/ }),/* 8 *//***/ (function(module, exports, __webpack_require__) {"use strict";// Copyright Joyent, Inc. and other Node contributors.//// Permission is hereby granted, free of charge, to any person obtaining a// copy of this software and associated documentation files (the// "Software"), to deal in the Software without restriction, including// without limitation the rights to use, copy, modify, merge, publish,// distribute, sublicense, and/or sell copies of the Software, and to permit// persons to whom the Software is furnished to do so, subject to the// following conditions://// The above copyright notice and this permission notice shall be included// in all copies or substantial portions of the Software.//// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE// USE OR OTHER DEALINGS IN THE SOFTWARE.var punycode = __webpack_require__(25);var util = __webpack_require__(27);exports.parse = urlParse;exports.resolve = urlResolve;exports.resolveObject = urlResolveObject;exports.format = urlFormat;exports.Url = Url;function Url() {  this.protocol = null;  this.slashes = null;  this.auth = null;  this.host = null;  this.port = null;  this.hostname = null;  this.hash = null;  this.search = null;  this.query = null;  this.pathname = null;  this.path = null;  this.href = null;}// Reference: RFC 3986, RFC 1808, RFC 2396// define these here so at least they only have to be// compiled once on the first module load.var protocolPattern = /^([a-z0-9.+-]+:)/i,    portPattern = /:[0-9]*$/,    // Special case for a simple path URL    simplePathPattern = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,    // RFC 2396: characters reserved for delimiting URLs.    // We actually just auto-escape these.    delims = ['<', '>', '"', '`', ' ', '\r', '\n', '\t'],    // RFC 2396: characters not allowed for various reasons.    unwise = ['{', '}', '|', '\\', '^', '`'].concat(delims),    // Allowed by RFCs, but cause of XSS attacks.  Always escape these.    autoEscape = ['\''].concat(unwise),    // Characters that are never ever allowed in a hostname.    // Note that any invalid chars are also handled, but these    // are the ones that are *expected* to be seen, so we fast-path    // them.    nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),    hostEndingChars = ['/', '?', '#'],    hostnameMaxLen = 255,    hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,    hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,    // protocols that can allow "unsafe" and "unwise" chars.    unsafeProtocol = {      'javascript': true,      'javascript:': true    },    // protocols that never have a hostname.    hostlessProtocol = {      'javascript': true,      'javascript:': true    },    // protocols that always contain a // bit.    slashedProtocol = {      'http': true,      'https': true,      'ftp': true,      'gopher': true,      'file': true,      'http:': true,      'https:': true,      'ftp:': true,      'gopher:': true,      'file:': true    },    querystring = __webpack_require__(28);function urlParse(url, parseQueryString, slashesDenoteHost) {  if (url && util.isObject(url) && url instanceof Url) return url;  var u = new Url;  u.parse(url, parseQueryString, slashesDenoteHost);  return u;}Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {  if (!util.isString(url)) {    throw new TypeError("Parameter 'url' must be a string, not " + typeof url);  }  // Copy chrome, IE, opera backslash-handling behavior.  // Back slashes before the query string get converted to forward slashes  // See: https://code.google.com/p/chromium/issues/detail?id=25916  var queryIndex = url.indexOf('?'),      splitter =          (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',      uSplit = url.split(splitter),      slashRegex = /\\/g;  uSplit[0] = uSplit[0].replace(slashRegex, '/');  url = uSplit.join(splitter);  var rest = url;  // trim before proceeding.  // This is to support parse stuff like "  http://foo.com  \n"  rest = rest.trim();  if (!slashesDenoteHost && url.split('#').length === 1) {    // Try fast path regexp    var simplePath = simplePathPattern.exec(rest);    if (simplePath) {      this.path = rest;      this.href = rest;      this.pathname = simplePath[1];      if (simplePath[2]) {        this.search = simplePath[2];        if (parseQueryString) {          this.query = querystring.parse(this.search.substr(1));        } else {          this.query = this.search.substr(1);        }      } else if (parseQueryString) {        this.search = '';        this.query = {};      }      return this;    }  }  var proto = protocolPattern.exec(rest);  if (proto) {    proto = proto[0];    var lowerProto = proto.toLowerCase();    this.protocol = lowerProto;    rest = rest.substr(proto.length);  }  // figure out if it's got a host  // user@server is *always* interpreted as a hostname, and url  // resolution will treat //foo/bar as host=foo,path=bar because that's  // how the browser resolves relative URLs.  if (slashesDenoteHost || proto || rest.match(/^\/\/[^@\/]+@[^@\/]+/)) {    var slashes = rest.substr(0, 2) === '//';    if (slashes && !(proto && hostlessProtocol[proto])) {      rest = rest.substr(2);      this.slashes = true;    }  }  if (!hostlessProtocol[proto] &&      (slashes || (proto && !slashedProtocol[proto]))) {    // there's a hostname.    // the first instance of /, ?, ;, or # ends the host.    //    // If there is an @ in the hostname, then non-host chars *are* allowed    // to the left of the last @ sign, unless some host-ending character    // comes *before* the @-sign.    // URLs are obnoxious.    //    // ex:    // http://a@b@c/ => user:a@b host:c    // http://a@b?@c => user:a host:c path:/?@c    // v0.12 TODO(isaacs): This is not quite how Chrome does things.    // Review our test case against browsers more comprehensively.    // find the first instance of any hostEndingChars    var hostEnd = -1;    for (var i = 0; i < hostEndingChars.length; i++) {      var hec = rest.indexOf(hostEndingChars[i]);      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))        hostEnd = hec;    }    // at this point, either we have an explicit point where the    // auth portion cannot go past, or the last @ char is the decider.    var auth, atSign;    if (hostEnd === -1) {      // atSign can be anywhere.      atSign = rest.lastIndexOf('@');    } else {      // atSign must be in auth portion.      // http://a@b/c@d => host:b auth:a path:/c@d      atSign = rest.lastIndexOf('@', hostEnd);    }    // Now we have a portion which is definitely the auth.    // Pull that off.    if (atSign !== -1) {      auth = rest.slice(0, atSign);      rest = rest.slice(atSign + 1);      this.auth = decodeURIComponent(auth);    }    // the host is the remaining to the left of the first non-host char    hostEnd = -1;    for (var i = 0; i < nonHostChars.length; i++) {      var hec = rest.indexOf(nonHostChars[i]);      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))        hostEnd = hec;    }    // if we still have not hit it, then the entire thing is a host.    if (hostEnd === -1)      hostEnd = rest.length;    this.host = rest.slice(0, hostEnd);    rest = rest.slice(hostEnd);    // pull out port.    this.parseHost();    // we've indicated that there is a hostname,    // so even if it's empty, it has to be present.    this.hostname = this.hostname || '';    // if hostname begins with [ and ends with ]    // assume that it's an IPv6 address.    var ipv6Hostname = this.hostname[0] === '[' &&        this.hostname[this.hostname.length - 1] === ']';    // validate a little.    if (!ipv6Hostname) {      var hostparts = this.hostname.split(/\./);      for (var i = 0, l = hostparts.length; i < l; i++) {        var part = hostparts[i];        if (!part) continue;        if (!part.match(hostnamePartPattern)) {          var newpart = '';          for (var j = 0, k = part.length; j < k; j++) {            if (part.charCodeAt(j) > 127) {              // we replace non-ASCII char with a temporary placeholder              // we need this to make sure size of hostname is not              // broken by replacing non-ASCII by nothing              newpart += 'x';            } else {              newpart += part[j];            }          }          // we test again with ASCII char only          if (!newpart.match(hostnamePartPattern)) {            var validParts = hostparts.slice(0, i);            var notHost = hostparts.slice(i + 1);            var bit = part.match(hostnamePartStart);            if (bit) {              validParts.push(bit[1]);              notHost.unshift(bit[2]);            }            if (notHost.length) {              rest = '/' + notHost.join('.') + rest;            }            this.hostname = validParts.join('.');            break;          }        }      }    }    if (this.hostname.length > hostnameMaxLen) {      this.hostname = '';    } else {      // hostnames are always lower case.      this.hostname = this.hostname.toLowerCase();    }    if (!ipv6Hostname) {      // IDNA Support: Returns a punycoded representation of "domain".      // It only converts parts of the domain name that      // have non-ASCII characters, i.e. it doesn't matter if      // you call it with a domain that already is ASCII-only.      this.hostname = punycode.toASCII(this.hostname);    }    var p = this.port ? ':' + this.port : '';    var h = this.hostname || '';    this.host = h + p;    this.href += this.host;    // strip [ and ] from the hostname    // the host field still retains them, though    if (ipv6Hostname) {      this.hostname = this.hostname.substr(1, this.hostname.length - 2);      if (rest[0] !== '/') {        rest = '/' + rest;      }    }  }  // now rest is set to the post-host stuff.  // chop off any delim chars.  if (!unsafeProtocol[lowerProto]) {    // First, make 100% sure that any "autoEscape" chars get    // escaped, even if encodeURIComponent doesn't think they    // need to be.    for (var i = 0, l = autoEscape.length; i < l; i++) {      var ae = autoEscape[i];      if (rest.indexOf(ae) === -1)        continue;      var esc = encodeURIComponent(ae);      if (esc === ae) {        esc = escape(ae);      }      rest = rest.split(ae).join(esc);    }  }  // chop off from the tail first.  var hash = rest.indexOf('#');  if (hash !== -1) {    // got a fragment string.    this.hash = rest.substr(hash);    rest = rest.slice(0, hash);  }  var qm = rest.indexOf('?');  if (qm !== -1) {    this.search = rest.substr(qm);    this.query = rest.substr(qm + 1);    if (parseQueryString) {      this.query = querystring.parse(this.query);    }    rest = rest.slice(0, qm);  } else if (parseQueryString) {    // no query string, but parseQueryString still requested    this.search = '';    this.query = {};  }  if (rest) this.pathname = rest;  if (slashedProtocol[lowerProto] &&      this.hostname && !this.pathname) {    this.pathname = '/';  }  //to support http.request  if (this.pathname || this.search) {    var p = this.pathname || '';    var s = this.search || '';    this.path = p + s;  }  // finally, reconstruct the href based on what has been validated.  this.href = this.format();  return this;};// format a parsed object into a url stringfunction urlFormat(obj) {  // ensure it's an object, and not a string url.  // If it's an obj, this is a no-op.  // this way, you can call url_format() on strings  // to clean up potentially wonky urls.  if (util.isString(obj)) obj = urlParse(obj);  if (!(obj instanceof Url)) return Url.prototype.format.call(obj);  return obj.format();}Url.prototype.format = function() {  var auth = this.auth || '';  if (auth) {    auth = encodeURIComponent(auth);    auth = auth.replace(/%3A/i, ':');    auth += '@';  }  var protocol = this.protocol || '',      pathname = this.pathname || '',      hash = this.hash || '',      host = false,      query = '';  if (this.host) {    host = auth + this.host;  } else if (this.hostname) {    host = auth + (this.hostname.indexOf(':') === -1 ?        this.hostname :        '[' + this.hostname + ']');    if (this.port) {      host += ':' + this.port;    }  }  if (this.query &&      util.isObject(this.query) &&      Object.keys(this.query).length) {    query = querystring.stringify(this.query);  }  var search = this.search || (query && ('?' + query)) || '';  if (protocol && protocol.substr(-1) !== ':') protocol += ':';  // only the slashedProtocols get the //.  Not mailto:, xmpp:, etc.  // unless they had them to begin with.  if (this.slashes ||      (!protocol || slashedProtocol[protocol]) && host !== false) {    host = '//' + (host || '');    if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;  } else if (!host) {    host = '';  }  if (hash && hash.charAt(0) !== '#') hash = '#' + hash;  if (search && search.charAt(0) !== '?') search = '?' + search;  pathname = pathname.replace(/[?#]/g, function(match) {    return encodeURIComponent(match);  });  search = search.replace('#', '%23');  return protocol + host + pathname + search + hash;};function urlResolve(source, relative) {  return urlParse(source, false, true).resolve(relative);}Url.prototype.resolve = function(relative) {  return this.resolveObject(urlParse(relative, false, true)).format();};function urlResolveObject(source, relative) {  if (!source) return relative;  return urlParse(source, false, true).resolveObject(relative);}Url.prototype.resolveObject = function(relative) {  if (util.isString(relative)) {    var rel = new Url();    rel.parse(relative, false, true);    relative = rel;  }  var result = new Url();  var tkeys = Object.keys(this);  for (var tk = 0; tk < tkeys.length; tk++) {    var tkey = tkeys[tk];    result[tkey] = this[tkey];  }  // hash is always overridden, no matter what.  // even href="" will remove it.  result.hash = relative.hash;  // if the relative url is empty, then there's nothing left to do here.  if (relative.href === '') {    result.href = result.format();    return result;  }  // hrefs like //foo/bar always cut to the protocol.  if (relative.slashes && !relative.protocol) {    // take everything except the protocol from relative    var rkeys = Object.keys(relative);    for (var rk = 0; rk < rkeys.length; rk++) {      var rkey = rkeys[rk];      if (rkey !== 'protocol')        result[rkey] = relative[rkey];    }    //urlParse appends trailing / to urls like http://www.example.com    if (slashedProtocol[result.protocol] &&        result.hostname && !result.pathname) {      result.path = result.pathname = '/';    }    result.href = result.format();    return result;  }  if (relative.protocol && relative.protocol !== result.protocol) {    // if it's a known url protocol, then changing    // the protocol does weird things    // first, if it's not file:, then we MUST have a host,    // and if there was a path    // to begin with, then we MUST have a path.    // if it is file:, then the host is dropped,    // because that's known to be hostless.    // anything else is assumed to be absolute.    if (!slashedProtocol[relative.protocol]) {      var keys = Object.keys(relative);      for (var v = 0; v < keys.length; v++) {        var k = keys[v];        result[k] = relative[k];      }      result.href = result.format();      return result;    }    result.protocol = relative.protocol;    if (!relative.host && !hostlessProtocol[relative.protocol]) {      var relPath = (relative.pathname || '').split('/');      while (relPath.length && !(relative.host = relPath.shift()));      if (!relative.host) relative.host = '';      if (!relative.hostname) relative.hostname = '';      if (relPath[0] !== '') relPath.unshift('');      if (relPath.length < 2) relPath.unshift('');      result.pathname = relPath.join('/');    } else {      result.pathname = relative.pathname;    }    result.search = relative.search;    result.query = relative.query;    result.host = relative.host || '';    result.auth = relative.auth;    result.hostname = relative.hostname || relative.host;    result.port = relative.port;    // to support http.request    if (result.pathname || result.search) {      var p = result.pathname || '';      var s = result.search || '';      result.path = p + s;    }    result.slashes = result.slashes || relative.slashes;    result.href = result.format();    return result;  }  var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),      isRelAbs = (          relative.host ||          relative.pathname && relative.pathname.charAt(0) === '/'      ),      mustEndAbs = (isRelAbs || isSourceAbs ||                    (result.host && relative.pathname)),      removeAllDots = mustEndAbs,      srcPath = result.pathname && result.pathname.split('/') || [],      relPath = relative.pathname && relative.pathname.split('/') || [],      psychotic = result.protocol && !slashedProtocol[result.protocol];  // if the url is a non-slashed url, then relative  // links like ../.. should be able  // to crawl up to the hostname, as well.  This is strange.  // result.protocol has already been set by now.  // Later on, put the first path part into the host field.  if (psychotic) {    result.hostname = '';    result.port = null;    if (result.host) {      if (srcPath[0] === '') srcPath[0] = result.host;      else srcPath.unshift(result.host);    }    result.host = '';    if (relative.protocol) {      relative.hostname = null;      relative.port = null;      if (relative.host) {        if (relPath[0] === '') relPath[0] = relative.host;        else relPath.unshift(relative.host);      }      relative.host = null;    }    mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');  }  if (isRelAbs) {    // it's absolute.    result.host = (relative.host || relative.host === '') ?                  relative.host : result.host;    result.hostname = (relative.hostname || relative.hostname === '') ?                      relative.hostname : result.hostname;    result.search = relative.search;    result.query = relative.query;    srcPath = relPath;    // fall through to the dot-handling below.  } else if (relPath.length) {    // it's relative    // throw away the existing file, and take the new path instead.    if (!srcPath) srcPath = [];    srcPath.pop();    srcPath = srcPath.concat(relPath);    result.search = relative.search;    result.query = relative.query;  } else if (!util.isNullOrUndefined(relative.search)) {    // just pull out the search.    // like href='?foo'.    // Put this after the other two cases because it simplifies the booleans    if (psychotic) {      result.hostname = result.host = srcPath.shift();      //occationaly the auth can get stuck only in host      //this especially happens in cases like      //url.resolveObject('mailto:local1@domain1', 'local2@domain2')      var authInHost = result.host && result.host.indexOf('@') > 0 ?                       result.host.split('@') : false;      if (authInHost) {        result.auth = authInHost.shift();        result.host = result.hostname = authInHost.shift();      }    }    result.search = relative.search;    result.query = relative.query;    //to support http.request    if (!util.isNull(result.pathname) || !util.isNull(result.search)) {      result.path = (result.pathname ? result.pathname : '') +                    (result.search ? result.search : '');    }    result.href = result.format();    return result;  }  if (!srcPath.length) {    // no path at all.  easy.    // we've already handled the other stuff above.    result.pathname = null;    //to support http.request    if (result.search) {      result.path = '/' + result.search;    } else {      result.path = null;    }    result.href = result.format();    return result;  }  // if a url ENDs in . or .., then it must get a trailing slash.  // however, if it ends in anything else non-slashy,  // then it must NOT get a trailing slash.  var last = srcPath.slice(-1)[0];  var hasTrailingSlash = (      (result.host || relative.host || srcPath.length > 1) &&      (last === '.' || last === '..') || last === '');  // strip single dots, resolve double dots to parent dir  // if the path tries to go above the root, `up` ends up > 0  var up = 0;  for (var i = srcPath.length; i >= 0; i--) {    last = srcPath[i];    if (last === '.') {      srcPath.splice(i, 1);    } else if (last === '..') {      srcPath.splice(i, 1);      up++;    } else if (up) {      srcPath.splice(i, 1);      up--;    }  }  // if the path is allowed to go above the root, restore leading ..s  if (!mustEndAbs && !removeAllDots) {    for (; up--; up) {      srcPath.unshift('..');    }  }  if (mustEndAbs && srcPath[0] !== '' &&      (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {    srcPath.unshift('');  }  if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {    srcPath.push('');  }  var isAbsolute = srcPath[0] === '' ||      (srcPath[0] && srcPath[0].charAt(0) === '/');  // put the host back  if (psychotic) {    result.hostname = result.host = isAbsolute ? '' :                                    srcPath.length ? srcPath.shift() : '';    //occationaly the auth can get stuck only in host    //this especially happens in cases like    //url.resolveObject('mailto:local1@domain1', 'local2@domain2')    var authInHost = result.host && result.host.indexOf('@') > 0 ?                     result.host.split('@') : false;    if (authInHost) {      result.auth = authInHost.shift();      result.host = result.hostname = authInHost.shift();    }  }  mustEndAbs = mustEndAbs || (result.host && srcPath.length);  if (mustEndAbs && !isAbsolute) {    srcPath.unshift('');  }  if (!srcPath.length) {    result.pathname = null;    result.path = null;  } else {    result.pathname = srcPath.join('/');  }  //to support request.http  if (!util.isNull(result.pathname) || !util.isNull(result.search)) {    result.path = (result.pathname ? result.pathname : '') +                  (result.search ? result.search : '');  }  result.auth = relative.auth || result.auth;  result.slashes = result.slashes || relative.slashes;  result.href = result.format();  return result;};Url.prototype.parseHost = function() {  var host = this.host;  var port = portPattern.exec(host);  if (port) {    port = port[0];    if (port !== ':') {      this.port = port.substr(1);    }    host = host.substr(0, host.length - port.length);  }  if (host) this.hostname = host;};/***/ }),/* 9 *//***/ (function(module, exports, __webpack_require__) {"use strict";// Copyright Joyent, Inc. and other Node contributors.//// Permission is hereby granted, free of charge, to any person obtaining a// copy of this software and associated documentation files (the// "Software"), to deal in the Software without restriction, including// without limitation the rights to use, copy, modify, merge, publish,// distribute, sublicense, and/or sell copies of the Software, and to permit// persons to whom the Software is furnished to do so, subject to the// following conditions://// The above copyright notice and this permission notice shall be included// in all copies or substantial portions of the Software.//// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE// USE OR OTHER DEALINGS IN THE SOFTWARE.var R = typeof Reflect === 'object' ? Reflect : nullvar ReflectApply = R && typeof R.apply === 'function'  ? R.apply  : function ReflectApply(target, receiver, args) {    return Function.prototype.apply.call(target, receiver, args);  }var ReflectOwnKeysif (R && typeof R.ownKeys === 'function') {  ReflectOwnKeys = R.ownKeys} else if (Object.getOwnPropertySymbols) {  ReflectOwnKeys = function ReflectOwnKeys(target) {    return Object.getOwnPropertyNames(target)      .concat(Object.getOwnPropertySymbols(target));  };} else {  ReflectOwnKeys = function ReflectOwnKeys(target) {    return Object.getOwnPropertyNames(target);  };}function ProcessEmitWarning(warning) {  if (console && console.warn) console.warn(warning);}var NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {  return value !== value;}function EventEmitter() {  EventEmitter.init.call(this);}module.exports = EventEmitter;module.exports.once = once;// Backwards-compat with node 0.10.xEventEmitter.EventEmitter = EventEmitter;EventEmitter.prototype._events = undefined;EventEmitter.prototype._eventsCount = 0;EventEmitter.prototype._maxListeners = undefined;// By default EventEmitters will print a warning if more than 10 listeners are// added to it. This is a useful default which helps finding memory leaks.var defaultMaxListeners = 10;function checkListener(listener) {  if (typeof listener !== 'function') {    throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener);  }}Object.defineProperty(EventEmitter, 'defaultMaxListeners', {  enumerable: true,  get: function() {    return defaultMaxListeners;  },  set: function(arg) {    if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {      throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + '.');    }    defaultMaxListeners = arg;  }});EventEmitter.init = function() {  if (this._events === undefined ||      this._events === Object.getPrototypeOf(this)._events) {    this._events = Object.create(null);    this._eventsCount = 0;  }  this._maxListeners = this._maxListeners || undefined;};// Obviously not all Emitters should be limited to 10. This function allows// that to be increased. Set to zero for unlimited.EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {  if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {    throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n + '.');  }  this._maxListeners = n;  return this;};function _getMaxListeners(that) {  if (that._maxListeners === undefined)    return EventEmitter.defaultMaxListeners;  return that._maxListeners;}EventEmitter.prototype.getMaxListeners = function getMaxListeners() {  return _getMaxListeners(this);};EventEmitter.prototype.emit = function emit(type) {  var args = [];  for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);  var doError = (type === 'error');  var events = this._events;  if (events !== undefined)    doError = (doError && events.error === undefined);  else if (!doError)    return false;  // If there is no 'error' event listener then throw.  if (doError) {    var er;    if (args.length > 0)      er = args[0];    if (er instanceof Error) {      // Note: The comments on the `throw` lines are intentional, they show      // up in Node's output if this results in an unhandled exception.      throw er; // Unhandled 'error' event    }    // At least give some kind of context to the user    var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));    err.context = er;    throw err; // Unhandled 'error' event  }  var handler = events[type];  if (handler === undefined)    return false;  if (typeof handler === 'function') {    ReflectApply(handler, this, args);  } else {    var len = handler.length;    var listeners = arrayClone(handler, len);    for (var i = 0; i < len; ++i)      ReflectApply(listeners[i], this, args);  }  return true;};function _addListener(target, type, listener, prepend) {  var m;  var events;  var existing;  checkListener(listener);  events = target._events;  if (events === undefined) {    events = target._events = Object.create(null);    target._eventsCount = 0;  } else {    // To avoid recursion in the case that type === "newListener"! Before    // adding it to the listeners, first emit "newListener".    if (events.newListener !== undefined) {      target.emit('newListener', type,                  listener.listener ? listener.listener : listener);      // Re-assign `events` because a newListener handler could have caused the      // this._events to be assigned to a new object      events = target._events;    }    existing = events[type];  }  if (existing === undefined) {    // Optimize the case of one listener. Don't need the extra array object.    existing = events[type] = listener;    ++target._eventsCount;  } else {    if (typeof existing === 'function') {      // Adding the second element, need to change to array.      existing = events[type] =        prepend ? [listener, existing] : [existing, listener];      // If we've already got an array, just append.    } else if (prepend) {      existing.unshift(listener);    } else {      existing.push(listener);    }    // Check for listener leak    m = _getMaxListeners(target);    if (m > 0 && existing.length > m && !existing.warned) {      existing.warned = true;      // No error code for this since it is a Warning      // eslint-disable-next-line no-restricted-syntax      var w = new Error('Possible EventEmitter memory leak detected. ' +                          existing.length + ' ' + String(type) + ' listeners ' +                          'added. Use emitter.setMaxListeners() to ' +                          'increase limit');      w.name = 'MaxListenersExceededWarning';      w.emitter = target;      w.type = type;      w.count = existing.length;      ProcessEmitWarning(w);    }  }  return target;}EventEmitter.prototype.addListener = function addListener(type, listener) {  return _addListener(this, type, listener, false);};EventEmitter.prototype.on = EventEmitter.prototype.addListener;EventEmitter.prototype.prependListener =    function prependListener(type, listener) {      return _addListener(this, type, listener, true);    };function onceWrapper() {  if (!this.fired) {    this.target.removeListener(this.type, this.wrapFn);    this.fired = true;    if (arguments.length === 0)      return this.listener.call(this.target);    return this.listener.apply(this.target, arguments);  }}function _onceWrap(target, type, listener) {  var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };  var wrapped = onceWrapper.bind(state);  wrapped.listener = listener;  state.wrapFn = wrapped;  return wrapped;}EventEmitter.prototype.once = function once(type, listener) {  checkListener(listener);  this.on(type, _onceWrap(this, type, listener));  return this;};EventEmitter.prototype.prependOnceListener =    function prependOnceListener(type, listener) {      checkListener(listener);      this.prependListener(type, _onceWrap(this, type, listener));      return this;    };// Emits a 'removeListener' event if and only if the listener was removed.EventEmitter.prototype.removeListener =    function removeListener(type, listener) {      var list, events, position, i, originalListener;      checkListener(listener);      events = this._events;      if (events === undefined)        return this;      list = events[type];      if (list === undefined)        return this;      if (list === listener || list.listener === listener) {        if (--this._eventsCount === 0)          this._events = Object.create(null);        else {          delete events[type];          if (events.removeListener)            this.emit('removeListener', type, list.listener || listener);        }      } else if (typeof list !== 'function') {        position = -1;        for (i = list.length - 1; i >= 0; i--) {          if (list[i] === listener || list[i].listener === listener) {            originalListener = list[i].listener;            position = i;            break;          }        }        if (position < 0)          return this;        if (position === 0)          list.shift();        else {          spliceOne(list, position);        }        if (list.length === 1)          events[type] = list[0];        if (events.removeListener !== undefined)          this.emit('removeListener', type, originalListener || listener);      }      return this;    };EventEmitter.prototype.off = EventEmitter.prototype.removeListener;EventEmitter.prototype.removeAllListeners =    function removeAllListeners(type) {      var listeners, events, i;      events = this._events;      if (events === undefined)        return this;      // not listening for removeListener, no need to emit      if (events.removeListener === undefined) {        if (arguments.length === 0) {          this._events = Object.create(null);          this._eventsCount = 0;        } else if (events[type] !== undefined) {          if (--this._eventsCount === 0)            this._events = Object.create(null);          else            delete events[type];        }        return this;      }      // emit removeListener for all listeners on all events      if (arguments.length === 0) {        var keys = Object.keys(events);        var key;        for (i = 0; i < keys.length; ++i) {          key = keys[i];          if (key === 'removeListener') continue;          this.removeAllListeners(key);        }        this.removeAllListeners('removeListener');        this._events = Object.create(null);        this._eventsCount = 0;        return this;      }      listeners = events[type];      if (typeof listeners === 'function') {        this.removeListener(type, listeners);      } else if (listeners !== undefined) {        // LIFO order        for (i = listeners.length - 1; i >= 0; i--) {          this.removeListener(type, listeners[i]);        }      }      return this;    };function _listeners(target, type, unwrap) {  var events = target._events;  if (events === undefined)    return [];  var evlistener = events[type];  if (evlistener === undefined)    return [];  if (typeof evlistener === 'function')    return unwrap ? [evlistener.listener || evlistener] : [evlistener];  return unwrap ?    unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);}EventEmitter.prototype.listeners = function listeners(type) {  return _listeners(this, type, true);};EventEmitter.prototype.rawListeners = function rawListeners(type) {  return _listeners(this, type, false);};EventEmitter.listenerCount = function(emitter, type) {  if (typeof emitter.listenerCount === 'function') {    return emitter.listenerCount(type);  } else {    return listenerCount.call(emitter, type);  }};EventEmitter.prototype.listenerCount = listenerCount;function listenerCount(type) {  var events = this._events;  if (events !== undefined) {    var evlistener = events[type];    if (typeof evlistener === 'function') {      return 1;    } else if (evlistener !== undefined) {      return evlistener.length;    }  }  return 0;}EventEmitter.prototype.eventNames = function eventNames() {  return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];};function arrayClone(arr, n) {  var copy = new Array(n);  for (var i = 0; i < n; ++i)    copy[i] = arr[i];  return copy;}function spliceOne(list, index) {  for (; index + 1 < list.length; index++)    list[index] = list[index + 1];  list.pop();}function unwrapListeners(arr) {  var ret = new Array(arr.length);  for (var i = 0; i < ret.length; ++i) {    ret[i] = arr[i].listener || arr[i];  }  return ret;}function once(emitter, name) {  return new Promise(function (resolve, reject) {    function errorListener(err) {      emitter.removeListener(name, resolver);      reject(err);    }    function resolver() {      if (typeof emitter.removeListener === 'function') {        emitter.removeListener('error', errorListener);      }      resolve([].slice.call(arguments));    };    eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });    if (name !== 'error') {      addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });    }  });}function addErrorHandlerIfEventEmitter(emitter, handler, flags) {  if (typeof emitter.on === 'function') {    eventTargetAgnosticAddListener(emitter, 'error', handler, flags);  }}function eventTargetAgnosticAddListener(emitter, name, listener, flags) {  if (typeof emitter.on === 'function') {    if (flags.once) {      emitter.once(name, listener);    } else {      emitter.on(name, listener);    }  } else if (typeof emitter.addEventListener === 'function') {    // EventTarget does not have `error` event semantics like Node    // EventEmitters, we do not listen for `error` events here.    emitter.addEventListener(name, function wrapListener(arg) {      // IE does not have builtin `{ once: true }` support so we      // have to do it manually.      if (flags.once) {        emitter.removeEventListener(name, wrapListener);      }      listener(arg);    });  } else {    throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof emitter);  }}/***/ }),/* 10 *//***/ (function(module, exports) {var toString = {}.toString;module.exports = Array.isArray || function (arr) {  return toString.call(arr) == '[object Array]';};/***/ }),/* 11 *//***/ (function(module, exports, __webpack_require__) {/* WEBPACK VAR INJECTION */(function(global) {var ClientRequest = __webpack_require__(32)var response = __webpack_require__(13)var extend = __webpack_require__(41)var statusCodes = __webpack_require__(42)var url = __webpack_require__(8)var http = exportshttp.request = function (opts, cb) {	if (typeof opts === 'string')		opts = url.parse(opts)	else		opts = extend(opts)	// Normally, the page is loaded from http or https, so not specifying a protocol	// will result in a (valid) protocol-relative url. However, this won't work if	// the protocol is something else, like 'file:'	var defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : ''	var protocol = opts.protocol || defaultProtocol	var host = opts.hostname || opts.host	var port = opts.port	var path = opts.path || '/'	// Necessary for IPv6 addresses	if (host && host.indexOf(':') !== -1)		host = '[' + host + ']'	// This may be a relative url. The browser should always be able to interpret it correctly.	opts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path	opts.method = (opts.method || 'GET').toUpperCase()	opts.headers = opts.headers || {}	// Also valid opts.auth, opts.mode	var req = new ClientRequest(opts)	if (cb)		req.on('response', cb)	return req}http.get = function get (opts, cb) {	var req = http.request(opts, cb)	req.end()	return req}http.ClientRequest = ClientRequesthttp.IncomingMessage = response.IncomingMessagehttp.Agent = function () {}http.Agent.defaultMaxSockets = 4http.globalAgent = new http.Agent()http.STATUS_CODES = statusCodeshttp.METHODS = [	'CHECKOUT',	'CONNECT',	'COPY',	'DELETE',	'GET',	'HEAD',	'LOCK',	'M-SEARCH',	'MERGE',	'MKACTIVITY',	'MKCOL',	'MOVE',	'NOTIFY',	'OPTIONS',	'PATCH',	'POST',	'PROPFIND',	'PROPPATCH',	'PURGE',	'PUT',	'REPORT',	'SEARCH',	'SUBSCRIBE',	'TRACE',	'UNLOCK',	'UNSUBSCRIBE']/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))/***/ }),/* 12 *//***/ (function(module, exports, __webpack_require__) {/* WEBPACK VAR INJECTION */(function(global) {exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)exports.writableStream = isFunction(global.WritableStream)exports.abortController = isFunction(global.AbortController)exports.blobConstructor = falsetry {	new Blob([new ArrayBuffer(1)])	exports.blobConstructor = true} catch (e) {}// The xhr request to example.com may violate some restrictive CSP configurations,// so if we're running in a browser that supports `fetch`, avoid calling getXHR()// and assume support for certain features below.var xhrfunction getXHR () {	// Cache the xhr value	if (xhr !== undefined) return xhr	if (global.XMLHttpRequest) {		xhr = new global.XMLHttpRequest()		// If XDomainRequest is available (ie only, where xhr might not work		// cross domain), use the page location. Otherwise use example.com		// Note: this doesn't actually make an http request.		try {			xhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')		} catch(e) {			xhr = null		}	} else {		// Service workers don't have XHR		xhr = null	}	return xhr}function checkTypeSupport (type) {	var xhr = getXHR()	if (!xhr) return false	try {		xhr.responseType = type		return xhr.responseType === type	} catch (e) {}	return false}// For some strange reason, Safari 7.0 reports typeof global.ArrayBuffer === 'object'.// Safari 7.1 appears to have fixed this bug.var haveArrayBuffer = typeof global.ArrayBuffer !== 'undefined'var haveSlice = haveArrayBuffer && isFunction(global.ArrayBuffer.prototype.slice)// If fetch is supported, then arraybuffer will be supported too. Skip calling// checkTypeSupport(), since that calls getXHR().exports.arraybuffer = exports.fetch || (haveArrayBuffer && checkTypeSupport('arraybuffer'))// These next two tests unavoidably show warnings in Chrome. Since fetch will always// be used if it's available, just return false for these to avoid the warnings.exports.msstream = !exports.fetch && haveSlice && checkTypeSupport('ms-stream')exports.mozchunkedarraybuffer = !exports.fetch && haveArrayBuffer &&	checkTypeSupport('moz-chunked-arraybuffer')// If fetch is supported, then overrideMimeType will be supported too. Skip calling// getXHR().exports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)exports.vbArray = isFunction(global.VBArray)function isFunction (value) {	return typeof value === 'function'}xhr = null // Help gc/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))/***/ }),/* 13 *//***/ (function(module, exports, __webpack_require__) {/* WEBPACK VAR INJECTION */(function(process, Buffer, global) {var capability = __webpack_require__(12)var inherits = __webpack_require__(2)var stream = __webpack_require__(14)var rStates = exports.readyStates = {	UNSENT: 0,	OPENED: 1,	HEADERS_RECEIVED: 2,	LOADING: 3,	DONE: 4}var IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, fetchTimer) {	var self = this	stream.Readable.call(self)	self._mode = mode	self.headers = {}	self.rawHeaders = []	self.trailers = {}	self.rawTrailers = []	// Fake the 'close' event, but only once 'end' fires	self.on('end', function () {		// The nextTick is necessary to prevent the 'request' module from causing an infinite loop		process.nextTick(function () {			self.emit('close')		})	})	if (mode === 'fetch') {		self._fetchResponse = response		self.url = response.url		self.statusCode = response.status		self.statusMessage = response.statusText				response.headers.forEach(function (header, key){			self.headers[key.toLowerCase()] = header			self.rawHeaders.push(key, header)		})		if (capability.writableStream) {			var writable = new WritableStream({				write: function (chunk) {					return new Promise(function (resolve, reject) {						if (self._destroyed) {							reject()						} else if(self.push(new Buffer(chunk))) {							resolve()						} else {							self._resumeFetch = resolve						}					})				},				close: function () {					global.clearTimeout(fetchTimer)					if (!self._destroyed)						self.push(null)				},				abort: function (err) {					if (!self._destroyed)						self.emit('error', err)				}			})			try {				response.body.pipeTo(writable).catch(function (err) {					global.clearTimeout(fetchTimer)					if (!self._destroyed)						self.emit('error', err)				})				return			} catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this		}		// fallback for when writableStream or pipeTo aren't available		var reader = response.body.getReader()		function read () {			reader.read().then(function (result) {				if (self._destroyed)					return				if (result.done) {					global.clearTimeout(fetchTimer)					self.push(null)					return				}				self.push(new Buffer(result.value))				read()			}).catch(function (err) {				global.clearTimeout(fetchTimer)				if (!self._destroyed)					self.emit('error', err)			})		}		read()	} else {		self._xhr = xhr		self._pos = 0		self.url = xhr.responseURL		self.statusCode = xhr.status		self.statusMessage = xhr.statusText		var headers = xhr.getAllResponseHeaders().split(/\r?\n/)		headers.forEach(function (header) {			var matches = header.match(/^([^:]+):\s*(.*)/)			if (matches) {				var key = matches[1].toLowerCase()				if (key === 'set-cookie') {					if (self.headers[key] === undefined) {						self.headers[key] = []					}					self.headers[key].push(matches[2])				} else if (self.headers[key] !== undefined) {					self.headers[key] += ', ' + matches[2]				} else {					self.headers[key] = matches[2]				}				self.rawHeaders.push(matches[1], matches[2])			}		})		self._charset = 'x-user-defined'		if (!capability.overrideMimeType) {			var mimeType = self.rawHeaders['mime-type']			if (mimeType) {				var charsetMatch = mimeType.match(/;\s*charset=([^;])(;|$)/)				if (charsetMatch) {					self._charset = charsetMatch[1].toLowerCase()				}			}			if (!self._charset)				self._charset = 'utf-8' // best guess		}	}}inherits(IncomingMessage, stream.Readable)IncomingMessage.prototype._read = function () {	var self = this	var resolve = self._resumeFetch	if (resolve) {		self._resumeFetch = null		resolve()	}}IncomingMessage.prototype._onXHRProgress = function () {	var self = this	var xhr = self._xhr	var response = null	switch (self._mode) {		case 'text:vbarray': // For IE9			if (xhr.readyState !== rStates.DONE)				break			try {				// This fails in IE8				response = new global.VBArray(xhr.responseBody).toArray()			} catch (e) {}			if (response !== null) {				self.push(new Buffer(response))				break			}			// Falls through in IE8			case 'text':			try { // This will fail when readyState = 3 in IE9. Switch mode and wait for readyState = 4				response = xhr.responseText			} catch (e) {				self._mode = 'text:vbarray'				break			}			if (response.length > self._pos) {				var newData = response.substr(self._pos)				if (self._charset === 'x-user-defined') {					var buffer = new Buffer(newData.length)					for (var i = 0; i < newData.length; i++)						buffer[i] = newData.charCodeAt(i) & 0xff					self.push(buffer)				} else {					self.push(newData, self._charset)				}				self._pos = response.length			}			break		case 'arraybuffer':			if (xhr.readyState !== rStates.DONE || !xhr.response)				break			response = xhr.response			self.push(new Buffer(new Uint8Array(response)))			break		case 'moz-chunked-arraybuffer': // take whole			response = xhr.response			if (xhr.readyState !== rStates.LOADING || !response)				break			self.push(new Buffer(new Uint8Array(response)))			break		case 'ms-stream':			response = xhr.response			if (xhr.readyState !== rStates.LOADING)				break			var reader = new global.MSStreamReader()			reader.onprogress = function () {				if (reader.result.byteLength > self._pos) {					self.push(new Buffer(new Uint8Array(reader.result.slice(self._pos))))					self._pos = reader.result.byteLength				}			}			reader.onload = function () {				self.push(null)			}			// reader.onerror = ??? // TODO: this			reader.readAsArrayBuffer(response)			break	}	// The ms-stream case handles end separately in reader.onload()	if (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {		self.push(null)	}}/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1), __webpack_require__(3).Buffer, __webpack_require__(0)))/***/ }),/* 14 *//***/ (function(module, exports, __webpack_require__) {exports = module.exports = __webpack_require__(15);exports.Stream = exports;exports.Readable = exports;exports.Writable = __webpack_require__(18);exports.Duplex = __webpack_require__(4);exports.Transform = __webpack_require__(20);exports.PassThrough = __webpack_require__(39);/***/ }),/* 15 *//***/ (function(module, exports, __webpack_require__) {"use strict";/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.//// Permission is hereby granted, free of charge, to any person obtaining a// copy of this software and associated documentation files (the// "Software"), to deal in the Software without restriction, including// without limitation the rights to use, copy, modify, merge, publish,// distribute, sublicense, and/or sell copies of the Software, and to permit// persons to whom the Software is furnished to do so, subject to the// following conditions://// The above copyright notice and this permission notice shall be included// in all copies or substantial portions of the Software.//// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE// USE OR OTHER DEALINGS IN THE SOFTWARE./*<replacement>*/var pna = __webpack_require__(6);/*</replacement>*/module.exports = Readable;/*<replacement>*/var isArray = __webpack_require__(10);/*</replacement>*//*<replacement>*/var Duplex;/*</replacement>*/Readable.ReadableState = ReadableState;/*<replacement>*/var EE = __webpack_require__(9).EventEmitter;var EElistenerCount = function (emitter, type) {  return emitter.listeners(type).length;};/*</replacement>*//*<replacement>*/var Stream = __webpack_require__(16);/*</replacement>*//*<replacement>*/var Buffer = __webpack_require__(7).Buffer;var OurUint8Array = global.Uint8Array || function () {};function _uint8ArrayToBuffer(chunk) {  return Buffer.from(chunk);}function _isUint8Array(obj) {  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;}/*</replacement>*//*<replacement>*/var util = Object.create(__webpack_require__(5));util.inherits = __webpack_require__(2);/*</replacement>*//*<replacement>*/var debugUtil = __webpack_require__(33);var debug = void 0;if (debugUtil && debugUtil.debuglog) {  debug = debugUtil.debuglog('stream');} else {  debug = function () {};}/*</replacement>*/var BufferList = __webpack_require__(34);var destroyImpl = __webpack_require__(17);var StringDecoder;util.inherits(Readable, Stream);var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];function prependListener(emitter, event, fn) {  // Sadly this is not cacheable as some libraries bundle their own  // event emitter implementation with them.  if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);  // This is a hack to make sure that our error handler is attached before any  // userland ones.  NEVER DO THIS. This is here only because this code needs  // to continue to work with older versions of Node.js that do not include  // the prependListener() method. The goal is to eventually remove this hack.  if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];}function ReadableState(options, stream) {  Duplex = Duplex || __webpack_require__(4);  options = options || {};  // Duplex streams are both readable and writable, but share  // the same options object.  // However, some cases require setting options to different  // values for the readable and the writable sides of the duplex stream.  // These options can be provided separately as readableXXX and writableXXX.  var isDuplex = stream instanceof Duplex;  // object stream flag. Used to make read(n) ignore n and to  // make all the buffer merging and length checks go away  this.objectMode = !!options.objectMode;  if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;  // the point at which it stops calling _read() to fill the buffer  // Note: 0 is a valid value, means "don't call _read preemptively ever"  var hwm = options.highWaterMark;  var readableHwm = options.readableHighWaterMark;  var defaultHwm = this.objectMode ? 16 : 16 * 1024;  if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;  // cast to ints.  this.highWaterMark = Math.floor(this.highWaterMark);  // A linked list is used to store data chunks instead of an array because the  // linked list can remove elements from the beginning faster than  // array.shift()  this.buffer = new BufferList();  this.length = 0;  this.pipes = null;  this.pipesCount = 0;  this.flowing = null;  this.ended = false;  this.endEmitted = false;  this.reading = false;  // a flag to be able to tell if the event 'readable'/'data' is emitted  // immediately, or on a later tick.  We set this to true at first, because  // any actions that shouldn't happen until "later" should generally also  // not happen before the first read call.  this.sync = true;  // whenever we return null, then we set a flag to say  // that we're awaiting a 'readable' event emission.  this.needReadable = false;  this.emittedReadable = false;  this.readableListening = false;  this.resumeScheduled = false;  // has it been destroyed  this.destroyed = false;  // Crypto is kind of old and crusty.  Historically, its default string  // encoding is 'binary' so we have to make this configurable.  // Everything else in the universe uses 'utf8', though.  this.defaultEncoding = options.defaultEncoding || 'utf8';  // the number of writers that are awaiting a drain event in .pipe()s  this.awaitDrain = 0;  // if true, a maybeReadMore has been scheduled  this.readingMore = false;  this.decoder = null;  this.encoding = null;  if (options.encoding) {    if (!StringDecoder) StringDecoder = __webpack_require__(19).StringDecoder;    this.decoder = new StringDecoder(options.encoding);    this.encoding = options.encoding;  }}function Readable(options) {  Duplex = Duplex || __webpack_require__(4);  if (!(this instanceof Readable)) return new Readable(options);  this._readableState = new ReadableState(options, this);  // legacy  this.readable = true;  if (options) {    if (typeof options.read === 'function') this._read = options.read;    if (typeof options.destroy === 'function') this._destroy = options.destroy;  }  Stream.call(this);}Object.defineProperty(Readable.prototype, 'destroyed', {  get: function () {    if (this._readableState === undefined) {      return false;    }    return this._readableState.destroyed;  },  set: function (value) {    // we ignore the value if the stream    // has not been initialized yet    if (!this._readableState) {      return;    }    // backward compatibility, the user is explicitly    // managing destroyed    this._readableState.destroyed = value;  }});Readable.prototype.destroy = destroyImpl.destroy;Readable.prototype._undestroy = destroyImpl.undestroy;Readable.prototype._destroy = function (err, cb) {  this.push(null);  cb(err);};// Manually shove something into the read() buffer.// This returns true if the highWaterMark has not been hit yet,// similar to how Writable.write() returns true if you should// write() some more.Readable.prototype.push = function (chunk, encoding) {  var state = this._readableState;  var skipChunkCheck;  if (!state.objectMode) {    if (typeof chunk === 'string') {      encoding = encoding || state.defaultEncoding;      if (encoding !== state.encoding) {        chunk = Buffer.from(chunk, encoding);        encoding = '';      }      skipChunkCheck = true;    }  } else {    skipChunkCheck = true;  }  return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);};// Unshift should *always* be something directly out of read()Readable.prototype.unshift = function (chunk) {  return readableAddChunk(this, chunk, null, true, false);};function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {  var state = stream._readableState;  if (chunk === null) {    state.reading = false;    onEofChunk(stream, state);  } else {    var er;    if (!skipChunkCheck) er = chunkInvalid(state, chunk);    if (er) {      stream.emit('error', er);    } else if (state.objectMode || chunk && chunk.length > 0) {      if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {        chunk = _uint8ArrayToBuffer(chunk);      }      if (addToFront) {        if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);      } else if (state.ended) {        stream.emit('error', new Error('stream.push() after EOF'));      } else {        state.reading = false;        if (state.decoder && !encoding) {          chunk = state.decoder.write(chunk);          if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);        } else {          addChunk(stream, state, chunk, false);        }      }    } else if (!addToFront) {      state.reading = false;    }  }  return needMoreData(state);}function addChunk(stream, state, chunk, addToFront) {  if (state.flowing && state.length === 0 && !state.sync) {    stream.emit('data', chunk);    stream.read(0);  } else {    // update the buffer info.    state.length += state.objectMode ? 1 : chunk.length;    if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);    if (state.needReadable) emitReadable(stream);  }  maybeReadMore(stream, state);}function chunkInvalid(state, chunk) {  var er;  if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {    er = new TypeError('Invalid non-string/buffer chunk');  }  return er;}// if it's past the high water mark, we can push in some more.// Also, if we have no data yet, we can stand some// more bytes.  This is to work around cases where hwm=0,// such as the repl.  Also, if the push() triggered a// readable event, and the user called read(largeNumber) such that// needReadable was set, then we ought to push more, so that another// 'readable' event will be triggered.function needMoreData(state) {  return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);}Readable.prototype.isPaused = function () {  return this._readableState.flowing === false;};// backwards compatibility.Readable.prototype.setEncoding = function (enc) {  if (!StringDecoder) StringDecoder = __webpack_require__(19).StringDecoder;  this._readableState.decoder = new StringDecoder(enc);  this._readableState.encoding = enc;  return this;};// Don't raise the hwm > 8MBvar MAX_HWM = 0x800000;function computeNewHighWaterMark(n) {  if (n >= MAX_HWM) {    n = MAX_HWM;  } else {    // Get the next highest power of 2 to prevent increasing hwm excessively in    // tiny amounts    n--;    n |= n >>> 1;    n |= n >>> 2;    n |= n >>> 4;    n |= n >>> 8;    n |= n >>> 16;    n++;  }  return n;}// This function is designed to be inlinable, so please take care when making// changes to the function body.function howMuchToRead(n, state) {  if (n <= 0 || state.length === 0 && state.ended) return 0;  if (state.objectMode) return 1;  if (n !== n) {    // Only flow one buffer at a time    if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;  }  // If we're asking for more than the current hwm, then raise the hwm.  if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);  if (n <= state.length) return n;  // Don't have enough  if (!state.ended) {    state.needReadable = true;    return 0;  }  return state.length;}// you can override either this method, or the async _read(n) below.Readable.prototype.read = function (n) {  debug('read', n);  n = parseInt(n, 10);  var state = this._readableState;  var nOrig = n;  if (n !== 0) state.emittedReadable = false;  // if we're doing read(0) to trigger a readable event, but we  // already have a bunch of data in the buffer, then just trigger  // the 'readable' event and move on.  if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {    debug('read: emitReadable', state.length, state.ended);    if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);    return null;  }  n = howMuchToRead(n, state);  // if we've ended, and we're now clear, then finish it up.  if (n === 0 && state.ended) {    if (state.length === 0) endReadable(this);    return null;  }  // All the actual chunk generation logic needs to be  // *below* the call to _read.  The reason is that in certain  // synthetic stream cases, such as passthrough streams, _read  // may be a completely synchronous operation which may change  // the state of the read buffer, providing enough data when  // before there was *not* enough.  //  // So, the steps are:  // 1. Figure out what the state of things will be after we do  // a read from the buffer.  //  // 2. If that resulting state will trigger a _read, then call _read.  // Note that this may be asynchronous, or synchronous.  Yes, it is  // deeply ugly to write APIs this way, but that still doesn't mean  // that the Readable class should behave improperly, as streams are  // designed to be sync/async agnostic.  // Take note if the _read call is sync or async (ie, if the read call  // has returned yet), so that we know whether or not it's safe to emit  // 'readable' etc.  //  // 3. Actually pull the requested chunks out of the buffer and return.  // if we need a readable event, then we need to do some reading.  var doRead = state.needReadable;  debug('need readable', doRead);  // if we currently have less than the highWaterMark, then also read some  if (state.length === 0 || state.length - n < state.highWaterMark) {    doRead = true;    debug('length less than watermark', doRead);  }  // however, if we've ended, then there's no point, and if we're already  // reading, then it's unnecessary.  if (state.ended || state.reading) {    doRead = false;    debug('reading or ended', doRead);  } else if (doRead) {    debug('do read');    state.reading = true;    state.sync = true;    // if the length is currently zero, then we *need* a readable event.    if (state.length === 0) state.needReadable = true;    // call internal read method    this._read(state.highWaterMark);    state.sync = false;    // If _read pushed data synchronously, then `reading` will be false,    // and we need to re-evaluate how much data we can return to the user.    if (!state.reading) n = howMuchToRead(nOrig, state);  }  var ret;  if (n > 0) ret = fromList(n, state);else ret = null;  if (ret === null) {    state.needReadable = true;    n = 0;  } else {    state.length -= n;  }  if (state.length === 0) {    // If we have nothing in the buffer, then we want to know    // as soon as we *do* get something into the buffer.    if (!state.ended) state.needReadable = true;    // If we tried to read() past the EOF, then emit end on the next tick.    if (nOrig !== n && state.ended) endReadable(this);  }  if (ret !== null) this.emit('data', ret);  return ret;};function onEofChunk(stream, state) {  if (state.ended) return;  if (state.decoder) {    var chunk = state.decoder.end();    if (chunk && chunk.length) {      state.buffer.push(chunk);      state.length += state.objectMode ? 1 : chunk.length;    }  }  state.ended = true;  // emit 'readable' now to make sure it gets picked up.  emitReadable(stream);}// Don't emit readable right away in sync mode, because this can trigger// another read() call => stack overflow.  This way, it might trigger// a nextTick recursion warning, but that's not so bad.function emitReadable(stream) {  var state = stream._readableState;  state.needReadable = false;  if (!state.emittedReadable) {    debug('emitReadable', state.flowing);    state.emittedReadable = true;    if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);  }}function emitReadable_(stream) {  debug('emit readable');  stream.emit('readable');  flow(stream);}// at this point, the user has presumably seen the 'readable' event,// and called read() to consume some data.  that may have triggered// in turn another _read(n) call, in which case reading = true if// it's in progress.// However, if we're not ended, or reading, and the length < hwm,// then go ahead and try to read some more preemptively.function maybeReadMore(stream, state) {  if (!state.readingMore) {    state.readingMore = true;    pna.nextTick(maybeReadMore_, stream, state);  }}function maybeReadMore_(stream, state) {  var len = state.length;  while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {    debug('maybeReadMore read 0');    stream.read(0);    if (len === state.length)      // didn't get any data, stop spinning.      break;else len = state.length;  }  state.readingMore = false;}// abstract method.  to be overridden in specific implementation classes.// call cb(er, data) where data is <= n in length.// for virtual (non-string, non-buffer) streams, "length" is somewhat// arbitrary, and perhaps not very meaningful.Readable.prototype._read = function (n) {  this.emit('error', new Error('_read() is not implemented'));};Readable.prototype.pipe = function (dest, pipeOpts) {  var src = this;  var state = this._readableState;  switch (state.pipesCount) {    case 0:      state.pipes = dest;      break;    case 1:      state.pipes = [state.pipes, dest];      break;    default:      state.pipes.push(dest);      break;  }  state.pipesCount += 1;  debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);  var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;  var endFn = doEnd ? onend : unpipe;  if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);  dest.on('unpipe', onunpipe);  function onunpipe(readable, unpipeInfo) {    debug('onunpipe');    if (readable === src) {      if (unpipeInfo && unpipeInfo.hasUnpiped === false) {        unpipeInfo.hasUnpiped = true;        cleanup();      }    }  }  function onend() {    debug('onend');    dest.end();  }  // when the dest drains, it reduces the awaitDrain counter  // on the source.  This would be more elegant with a .once()  // handler in flow(), but adding and removing repeatedly is  // too slow.  var ondrain = pipeOnDrain(src);  dest.on('drain', ondrain);  var cleanedUp = false;  function cleanup() {    debug('cleanup');    // cleanup event handlers once the pipe is broken    dest.removeListener('close', onclose);    dest.removeListener('finish', onfinish);    dest.removeListener('drain', ondrain);    dest.removeListener('error', onerror);    dest.removeListener('unpipe', onunpipe);    src.removeListener('end', onend);    src.removeListener('end', unpipe);    src.removeListener('data', ondata);    cleanedUp = true;    // if the reader is waiting for a drain event from this    // specific writer, then it would cause it to never start    // flowing again.    // So, if this is awaiting a drain, then we just call it now.    // If we don't know, then assume that we are waiting for one.    if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();  }  // If the user pushes more data while we're writing to dest then we'll end up  // in ondata again. However, we only want to increase awaitDrain once because  // dest will only emit one 'drain' event for the multiple writes.  // => Introduce a guard on increasing awaitDrain.  var increasedAwaitDrain = false;  src.on('data', ondata);  function ondata(chunk) {    debug('ondata');    increasedAwaitDrain = false;    var ret = dest.write(chunk);    if (false === ret && !increasedAwaitDrain) {      // If the user unpiped during `dest.write()`, it is possible      // to get stuck in a permanently paused state if that write      // also returned false.      // => Check whether `dest` is still a piping destination.      if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {        debug('false write response, pause', src._readableState.awaitDrain);        src._readableState.awaitDrain++;        increasedAwaitDrain = true;      }      src.pause();    }  }  // if the dest has an error, then stop piping into it.  // however, don't suppress the throwing behavior for this.  function onerror(er) {    debug('onerror', er);    unpipe();    dest.removeListener('error', onerror);    if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);  }  // Make sure our error handler is attached before userland ones.  prependListener(dest, 'error', onerror);  // Both close and finish should trigger unpipe, but only once.  function onclose() {    dest.removeListener('finish', onfinish);    unpipe();  }  dest.once('close', onclose);  function onfinish() {    debug('onfinish');    dest.removeListener('close', onclose);    unpipe();  }  dest.once('finish', onfinish);  function unpipe() {    debug('unpipe');    src.unpipe(dest);  }  // tell the dest that it's being piped to  dest.emit('pipe', src);  // start the flow if it hasn't been started already.  if (!state.flowing) {    debug('pipe resume');    src.resume();  }  return dest;};function pipeOnDrain(src) {  return function () {    var state = src._readableState;    debug('pipeOnDrain', state.awaitDrain);    if (state.awaitDrain) state.awaitDrain--;    if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {      state.flowing = true;      flow(src);    }  };}Readable.prototype.unpipe = function (dest) {  var state = this._readableState;  var unpipeInfo = { hasUnpiped: false };  // if we're not piping anywhere, then do nothing.  if (state.pipesCount === 0) return this;  // just one destination.  most common case.  if (state.pipesCount === 1) {    // passed in one, but it's not the right one.    if (dest && dest !== state.pipes) return this;    if (!dest) dest = state.pipes;    // got a match.    state.pipes = null;    state.pipesCount = 0;    state.flowing = false;    if (dest) dest.emit('unpipe', this, unpipeInfo);    return this;  }  // slow case. multiple pipe destinations.  if (!dest) {    // remove all.    var dests = state.pipes;    var len = state.pipesCount;    state.pipes = null;    state.pipesCount = 0;    state.flowing = false;    for (var i = 0; i < len; i++) {      dests[i].emit('unpipe', this, unpipeInfo);    }return this;  }  // try to find the right one.  var index = indexOf(state.pipes, dest);  if (index === -1) return this;  state.pipes.splice(index, 1);  state.pipesCount -= 1;  if (state.pipesCount === 1) state.pipes = state.pipes[0];  dest.emit('unpipe', this, unpipeInfo);  return this;};// set up data events if they are asked for// Ensure readable listeners eventually get somethingReadable.prototype.on = function (ev, fn) {  var res = Stream.prototype.on.call(this, ev, fn);  if (ev === 'data') {    // Start flowing on next tick if stream isn't explicitly paused    if (this._readableState.flowing !== false) this.resume();  } else if (ev === 'readable') {    var state = this._readableState;    if (!state.endEmitted && !state.readableListening) {      state.readableListening = state.needReadable = true;      state.emittedReadable = false;      if (!state.reading) {        pna.nextTick(nReadingNextTick, this);      } else if (state.length) {        emitReadable(this);      }    }  }  return res;};Readable.prototype.addListener = Readable.prototype.on;function nReadingNextTick(self) {  debug('readable nexttick read 0');  self.read(0);}// pause() and resume() are remnants of the legacy readable stream API// If the user uses them, then switch into old mode.Readable.prototype.resume = function () {  var state = this._readableState;  if (!state.flowing) {    debug('resume');    state.flowing = true;    resume(this, state);  }  return this;};function resume(stream, state) {  if (!state.resumeScheduled) {    state.resumeScheduled = true;    pna.nextTick(resume_, stream, state);  }}function resume_(stream, state) {  if (!state.reading) {    debug('resume read 0');    stream.read(0);  }  state.resumeScheduled = false;  state.awaitDrain = 0;  stream.emit('resume');  flow(stream);  if (state.flowing && !state.reading) stream.read(0);}Readable.prototype.pause = function () {  debug('call pause flowing=%j', this._readableState.flowing);  if (false !== this._readableState.flowing) {    debug('pause');    this._readableState.flowing = false;    this.emit('pause');  }  return this;};function flow(stream) {  var state = stream._readableState;  debug('flow', state.flowing);  while (state.flowing && stream.read() !== null) {}}// wrap an old-style stream as the async data source.// This is *not* part of the readable stream interface.// It is an ugly unfortunate mess of history.Readable.prototype.wrap = function (stream) {  var _this = this;  var state = this._readableState;  var paused = false;  stream.on('end', function () {    debug('wrapped end');    if (state.decoder && !state.ended) {      var chunk = state.decoder.end();      if (chunk && chunk.length) _this.push(chunk);    }    _this.push(null);  });  stream.on('data', function (chunk) {    debug('wrapped data');    if (state.decoder) chunk = state.decoder.write(chunk);    // don't skip over falsy values in objectMode    if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;    var ret = _this.push(chunk);    if (!ret) {      paused = true;      stream.pause();    }  });  // proxy all the other methods.  // important when wrapping filters and duplexes.  for (var i in stream) {    if (this[i] === undefined && typeof stream[i] === 'function') {      this[i] = function (method) {        return function () {          return stream[method].apply(stream, arguments);        };      }(i);    }  }  // proxy certain important events.  for (var n = 0; n < kProxyEvents.length; n++) {    stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));  }  // when we try to consume some more bytes, simply unpause the  // underlying stream.  this._read = function (n) {    debug('wrapped _read', n);    if (paused) {      paused = false;      stream.resume();    }  };  return this;};Object.defineProperty(Readable.prototype, 'readableHighWaterMark', {  // making it explicit this property is not enumerable  // because otherwise some prototype manipulation in  // userland will fail  enumerable: false,  get: function () {    return this._readableState.highWaterMark;  }});// exposed for testing purposes only.Readable._fromList = fromList;// Pluck off n bytes from an array of buffers.// Length is the combined lengths of all the buffers in the list.// This function is designed to be inlinable, so please take care when making// changes to the function body.function fromList(n, state) {  // nothing buffered  if (state.length === 0) return null;  var ret;  if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {    // read it all, truncate the list    if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);    state.buffer.clear();  } else {    // read part of list    ret = fromListPartial(n, state.buffer, state.decoder);  }  return ret;}// Extracts only enough buffered data to satisfy the amount requested.// This function is designed to be inlinable, so please take care when making// changes to the function body.function fromListPartial(n, list, hasStrings) {  var ret;  if (n < list.head.data.length) {    // slice is the same for buffers and strings    ret = list.head.data.slice(0, n);    list.head.data = list.head.data.slice(n);  } else if (n === list.head.data.length) {    // first chunk is a perfect match    ret = list.shift();  } else {    // result spans more than one buffer    ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);  }  return ret;}// Copies a specified amount of characters from the list of buffered data// chunks.// This function is designed to be inlinable, so please take care when making// changes to the function body.function copyFromBufferString(n, list) {  var p = list.head;  var c = 1;  var ret = p.data;  n -= ret.length;  while (p = p.next) {    var str = p.data;    var nb = n > str.length ? str.length : n;    if (nb === str.length) ret += str;else ret += str.slice(0, n);    n -= nb;    if (n === 0) {      if (nb === str.length) {        ++c;        if (p.next) list.head = p.next;else list.head = list.tail = null;      } else {        list.head = p;        p.data = str.slice(nb);      }      break;    }    ++c;  }  list.length -= c;  return ret;}// Copies a specified amount of bytes from the list of buffered data chunks.// This function is designed to be inlinable, so please take care when making// changes to the function body.function copyFromBuffer(n, list) {  var ret = Buffer.allocUnsafe(n);  var p = list.head;  var c = 1;  p.data.copy(ret);  n -= p.data.length;  while (p = p.next) {    var buf = p.data;    var nb = n > buf.length ? buf.length : n;    buf.copy(ret, ret.length - n, 0, nb);    n -= nb;    if (n === 0) {      if (nb === buf.length) {        ++c;        if (p.next) list.head = p.next;else list.head = list.tail = null;      } else {        list.head = p;        p.data = buf.slice(nb);      }      break;    }    ++c;  }  list.length -= c;  return ret;}function endReadable(stream) {  var state = stream._readableState;  // If we get here before consuming all the bytes, then that is a  // bug in node.  Should never happen.  if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream');  if (!state.endEmitted) {    state.ended = true;    pna.nextTick(endReadableNT, state, stream);  }}function endReadableNT(state, stream) {  // Check that we didn't get one last unshift.  if (!state.endEmitted && state.length === 0) {    state.endEmitted = true;    stream.readable = false;    stream.emit('end');  }}function indexOf(xs, x) {  for (var i = 0, l = xs.length; i < l; i++) {    if (xs[i] === x) return i;  }  return -1;}/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0), __webpack_require__(1)))/***/ }),/* 16 *//***/ (function(module, exports, __webpack_require__) {module.exports = __webpack_require__(9).EventEmitter;/***/ }),/* 17 *//***/ (function(module, exports, __webpack_require__) {"use strict";/*<replacement>*/var pna = __webpack_require__(6);/*</replacement>*/// undocumented cb() API, needed for core, not for public APIfunction destroy(err, cb) {  var _this = this;  var readableDestroyed = this._readableState && this._readableState.destroyed;  var writableDestroyed = this._writableState && this._writableState.destroyed;  if (readableDestroyed || writableDestroyed) {    if (cb) {      cb(err);    } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {      pna.nextTick(emitErrorNT, this, err);    }    return this;  }  // we set destroyed to true before firing error callbacks in order  // to make it re-entrance safe in case destroy() is called within callbacks  if (this._readableState) {    this._readableState.destroyed = true;  }  // if this is a duplex stream mark the writable part as destroyed as well  if (this._writableState) {    this._writableState.destroyed = true;  }  this._destroy(err || null, function (err) {    if (!cb && err) {      pna.nextTick(emitErrorNT, _this, err);      if (_this._writableState) {        _this._writableState.errorEmitted = true;      }    } else if (cb) {      cb(err);    }  });  return this;}function undestroy() {  if (this._readableState) {    this._readableState.destroyed = false;    this._readableState.reading = false;    this._readableState.ended = false;    this._readableState.endEmitted = false;  }  if (this._writableState) {    this._writableState.destroyed = false;    this._writableState.ended = false;    this._writableState.ending = false;    this._writableState.finished = false;    this._writableState.errorEmitted = false;  }}function emitErrorNT(self, err) {  self.emit('error', err);}module.exports = {  destroy: destroy,  undestroy: undestroy};/***/ }),/* 18 *//***/ (function(module, exports, __webpack_require__) {"use strict";/* WEBPACK VAR INJECTION */(function(process, setImmediate, global) {// Copyright Joyent, Inc. and other Node contributors.//// Permission is hereby granted, free of charge, to any person obtaining a// copy of this software and associated documentation files (the// "Software"), to deal in the Software without restriction, including// without limitation the rights to use, copy, modify, merge, publish,// distribute, sublicense, and/or sell copies of the Software, and to permit// persons to whom the Software is furnished to do so, subject to the// following conditions://// The above copyright notice and this permission notice shall be included// in all copies or substantial portions of the Software.//// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE// USE OR OTHER DEALINGS IN THE SOFTWARE.// A bit simpler than readable streams.// Implement an async ._write(chunk, encoding, cb), and it'll handle all// the drain event emission and buffering./*<replacement>*/var pna = __webpack_require__(6);/*</replacement>*/module.exports = Writable;/* <replacement> */function WriteReq(chunk, encoding, cb) {  this.chunk = chunk;  this.encoding = encoding;  this.callback = cb;  this.next = null;}// It seems a linked list but it is not// there will be only 2 of these for each streamfunction CorkedRequest(state) {  var _this = this;  this.next = null;  this.entry = null;  this.finish = function () {    onCorkedFinish(_this, state);  };}/* </replacement> *//*<replacement>*/var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;/*</replacement>*//*<replacement>*/var Duplex;/*</replacement>*/Writable.WritableState = WritableState;/*<replacement>*/var util = Object.create(__webpack_require__(5));util.inherits = __webpack_require__(2);/*</replacement>*//*<replacement>*/var internalUtil = {  deprecate: __webpack_require__(38)};/*</replacement>*//*<replacement>*/var Stream = __webpack_require__(16);/*</replacement>*//*<replacement>*/var Buffer = __webpack_require__(7).Buffer;var OurUint8Array = global.Uint8Array || function () {};function _uint8ArrayToBuffer(chunk) {  return Buffer.from(chunk);}function _isUint8Array(obj) {  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;}/*</replacement>*/var destroyImpl = __webpack_require__(17);util.inherits(Writable, Stream);function nop() {}function WritableState(options, stream) {  Duplex = Duplex || __webpack_require__(4);  options = options || {};  // Duplex streams are both readable and writable, but share  // the same options object.  // However, some cases require setting options to different  // values for the readable and the writable sides of the duplex stream.  // These options can be provided separately as readableXXX and writableXXX.  var isDuplex = stream instanceof Duplex;  // object stream flag to indicate whether or not this stream  // contains buffers or objects.  this.objectMode = !!options.objectMode;  if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;  // the point at which write() starts returning false  // Note: 0 is a valid value, means that we always return false if  // the entire buffer is not flushed immediately on write()  var hwm = options.highWaterMark;  var writableHwm = options.writableHighWaterMark;  var defaultHwm = this.objectMode ? 16 : 16 * 1024;  if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;  // cast to ints.  this.highWaterMark = Math.floor(this.highWaterMark);  // if _final has been called  this.finalCalled = false;  // drain event flag.  this.needDrain = false;  // at the start of calling end()  this.ending = false;  // when end() has been called, and returned  this.ended = false;  // when 'finish' is emitted  this.finished = false;  // has it been destroyed  this.destroyed = false;  // should we decode strings into buffers before passing to _write?  // this is here so that some node-core streams can optimize string  // handling at a lower level.  var noDecode = options.decodeStrings === false;  this.decodeStrings = !noDecode;  // Crypto is kind of old and crusty.  Historically, its default string  // encoding is 'binary' so we have to make this configurable.  // Everything else in the universe uses 'utf8', though.  this.defaultEncoding = options.defaultEncoding || 'utf8';  // not an actual buffer we keep track of, but a measurement  // of how much we're waiting to get pushed to some underlying  // socket or file.  this.length = 0;  // a flag to see when we're in the middle of a write.  this.writing = false;  // when true all writes will be buffered until .uncork() call  this.corked = 0;  // a flag to be able to tell if the onwrite cb is called immediately,  // or on a later tick.  We set this to true at first, because any  // actions that shouldn't happen until "later" should generally also  // not happen before the first write call.  this.sync = true;  // a flag to know if we're processing previously buffered items, which  // may call the _write() callback in the same tick, so that we don't  // end up in an overlapped onwrite situation.  this.bufferProcessing = false;  // the callback that's passed to _write(chunk,cb)  this.onwrite = function (er) {    onwrite(stream, er);  };  // the callback that the user supplies to write(chunk,encoding,cb)  this.writecb = null;  // the amount that is being written when _write is called.  this.writelen = 0;  this.bufferedRequest = null;  this.lastBufferedRequest = null;  // number of pending user-supplied write callbacks  // this must be 0 before 'finish' can be emitted  this.pendingcb = 0;  // emit prefinish if the only thing we're waiting for is _write cbs  // This is relevant for synchronous Transform streams  this.prefinished = false;  // True if the error was already emitted and should not be thrown again  this.errorEmitted = false;  // count buffered requests  this.bufferedRequestCount = 0;  // allocate the first CorkedRequest, there is always  // one allocated and free to use, and we maintain at most two  this.corkedRequestsFree = new CorkedRequest(this);}WritableState.prototype.getBuffer = function getBuffer() {  var current = this.bufferedRequest;  var out = [];  while (current) {    out.push(current);    current = current.next;  }  return out;};(function () {  try {    Object.defineProperty(WritableState.prototype, 'buffer', {      get: internalUtil.deprecate(function () {        return this.getBuffer();      }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')    });  } catch (_) {}})();// Test _writableState for inheritance to account for Duplex streams,// whose prototype chain only points to Readable.var realHasInstance;if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {  realHasInstance = Function.prototype[Symbol.hasInstance];  Object.defineProperty(Writable, Symbol.hasInstance, {    value: function (object) {      if (realHasInstance.call(this, object)) return true;      if (this !== Writable) return false;      return object && object._writableState instanceof WritableState;    }  });} else {  realHasInstance = function (object) {    return object instanceof this;  };}function Writable(options) {  Duplex = Duplex || __webpack_require__(4);  // Writable ctor is applied to Duplexes, too.  // `realHasInstance` is necessary because using plain `instanceof`  // would return false, as no `_writableState` property is attached.  // Trying to use the custom `instanceof` for Writable here will also break the  // Node.js LazyTransform implementation, which has a non-trivial getter for  // `_writableState` that would lead to infinite recursion.  if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {    return new Writable(options);  }  this._writableState = new WritableState(options, this);  // legacy.  this.writable = true;  if (options) {    if (typeof options.write === 'function') this._write = options.write;    if (typeof options.writev === 'function') this._writev = options.writev;    if (typeof options.destroy === 'function') this._destroy = options.destroy;    if (typeof options.final === 'function') this._final = options.final;  }  Stream.call(this);}// Otherwise people can pipe Writable streams, which is just wrong.Writable.prototype.pipe = function () {  this.emit('error', new Error('Cannot pipe, not readable'));};function writeAfterEnd(stream, cb) {  var er = new Error('write after end');  // TODO: defer error events consistently everywhere, not just the cb  stream.emit('error', er);  pna.nextTick(cb, er);}// Checks that a user-supplied chunk is valid, especially for the particular// mode the stream is in. Currently this means that `null` is never accepted// and undefined/non-string values are only allowed in object mode.function validChunk(stream, state, chunk, cb) {  var valid = true;  var er = false;  if (chunk === null) {    er = new TypeError('May not write null values to stream');  } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {    er = new TypeError('Invalid non-string/buffer chunk');  }  if (er) {    stream.emit('error', er);    pna.nextTick(cb, er);    valid = false;  }  return valid;}Writable.prototype.write = function (chunk, encoding, cb) {  var state = this._writableState;  var ret = false;  var isBuf = !state.objectMode && _isUint8Array(chunk);  if (isBuf && !Buffer.isBuffer(chunk)) {    chunk = _uint8ArrayToBuffer(chunk);  }  if (typeof encoding === 'function') {    cb = encoding;    encoding = null;  }  if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;  if (typeof cb !== 'function') cb = nop;  if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {    state.pendingcb++;    ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);  }  return ret;};Writable.prototype.cork = function () {  var state = this._writableState;  state.corked++;};Writable.prototype.uncork = function () {  var state = this._writableState;  if (state.corked) {    state.corked--;    if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);  }};Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {  // node::ParseEncoding() requires lower case.  if (typeof encoding === 'string') encoding = encoding.toLowerCase();  if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);  this._writableState.defaultEncoding = encoding;  return this;};function decodeChunk(state, chunk, encoding) {  if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {    chunk = Buffer.from(chunk, encoding);  }  return chunk;}Object.defineProperty(Writable.prototype, 'writableHighWaterMark', {  // making it explicit this property is not enumerable  // because otherwise some prototype manipulation in  // userland will fail  enumerable: false,  get: function () {    return this._writableState.highWaterMark;  }});// if we're already writing something, then just put this// in the queue, and wait our turn.  Otherwise, call _write// If we return false, then we need a drain event, so set that flag.function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {  if (!isBuf) {    var newChunk = decodeChunk(state, chunk, encoding);    if (chunk !== newChunk) {      isBuf = true;      encoding = 'buffer';      chunk = newChunk;    }  }  var len = state.objectMode ? 1 : chunk.length;  state.length += len;  var ret = state.length < state.highWaterMark;  // we must ensure that previous needDrain will not be reset to false.  if (!ret) state.needDrain = true;  if (state.writing || state.corked) {    var last = state.lastBufferedRequest;    state.lastBufferedRequest = {      chunk: chunk,      encoding: encoding,      isBuf: isBuf,      callback: cb,      next: null    };    if (last) {      last.next = state.lastBufferedRequest;    } else {      state.bufferedRequest = state.lastBufferedRequest;    }    state.bufferedRequestCount += 1;  } else {    doWrite(stream, state, false, len, chunk, encoding, cb);  }  return ret;}function doWrite(stream, state, writev, len, chunk, encoding, cb) {  state.writelen = len;  state.writecb = cb;  state.writing = true;  state.sync = true;  if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);  state.sync = false;}function onwriteError(stream, state, sync, er, cb) {  --state.pendingcb;  if (sync) {    // defer the callback if we are being called synchronously    // to avoid piling up things on the stack    pna.nextTick(cb, er);    // this can emit finish, and it will always happen    // after error    pna.nextTick(finishMaybe, stream, state);    stream._writableState.errorEmitted = true;    stream.emit('error', er);  } else {    // the caller expect this to happen before if    // it is async    cb(er);    stream._writableState.errorEmitted = true;    stream.emit('error', er);    // this can emit finish, but finish must    // always follow error    finishMaybe(stream, state);  }}function onwriteStateUpdate(state) {  state.writing = false;  state.writecb = null;  state.length -= state.writelen;  state.writelen = 0;}function onwrite(stream, er) {  var state = stream._writableState;  var sync = state.sync;  var cb = state.writecb;  onwriteStateUpdate(state);  if (er) onwriteError(stream, state, sync, er, cb);else {    // Check if we're actually ready to finish, but don't emit yet    var finished = needFinish(state);    if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {      clearBuffer(stream, state);    }    if (sync) {      /*<replacement>*/      asyncWrite(afterWrite, stream, state, finished, cb);      /*</replacement>*/    } else {      afterWrite(stream, state, finished, cb);    }  }}function afterWrite(stream, state, finished, cb) {  if (!finished) onwriteDrain(stream, state);  state.pendingcb--;  cb();  finishMaybe(stream, state);}// Must force callback to be called on nextTick, so that we don't// emit 'drain' before the write() consumer gets the 'false' return// value, and has a chance to attach a 'drain' listener.function onwriteDrain(stream, state) {  if (state.length === 0 && state.needDrain) {    state.needDrain = false;    stream.emit('drain');  }}// if there's something in the buffer waiting, then process itfunction clearBuffer(stream, state) {  state.bufferProcessing = true;  var entry = state.bufferedRequest;  if (stream._writev && entry && entry.next) {    // Fast case, write everything using _writev()    var l = state.bufferedRequestCount;    var buffer = new Array(l);    var holder = state.corkedRequestsFree;    holder.entry = entry;    var count = 0;    var allBuffers = true;    while (entry) {      buffer[count] = entry;      if (!entry.isBuf) allBuffers = false;      entry = entry.next;      count += 1;    }    buffer.allBuffers = allBuffers;    doWrite(stream, state, true, state.length, buffer, '', holder.finish);    // doWrite is almost always async, defer these to save a bit of time    // as the hot path ends with doWrite    state.pendingcb++;    state.lastBufferedRequest = null;    if (holder.next) {      state.corkedRequestsFree = holder.next;      holder.next = null;    } else {      state.corkedRequestsFree = new CorkedRequest(state);    }    state.bufferedRequestCount = 0;  } else {    // Slow case, write chunks one-by-one    while (entry) {      var chunk = entry.chunk;      var encoding = entry.encoding;      var cb = entry.callback;      var len = state.objectMode ? 1 : chunk.length;      doWrite(stream, state, false, len, chunk, encoding, cb);      entry = entry.next;      state.bufferedRequestCount--;      // if we didn't call the onwrite immediately, then      // it means that we need to wait until it does.      // also, that means that the chunk and cb are currently      // being processed, so move the buffer counter past them.      if (state.writing) {        break;      }    }    if (entry === null) state.lastBufferedRequest = null;  }  state.bufferedRequest = entry;  state.bufferProcessing = false;}Writable.prototype._write = function (chunk, encoding, cb) {  cb(new Error('_write() is not implemented'));};Writable.prototype._writev = null;Writable.prototype.end = function (chunk, encoding, cb) {  var state = this._writableState;  if (typeof chunk === 'function') {    cb = chunk;    chunk = null;    encoding = null;  } else if (typeof encoding === 'function') {    cb = encoding;    encoding = null;  }  if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);  // .end() fully uncorks  if (state.corked) {    state.corked = 1;    this.uncork();  }  // ignore unnecessary end() calls.  if (!state.ending && !state.finished) endWritable(this, state, cb);};function needFinish(state) {  return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;}function callFinal(stream, state) {  stream._final(function (err) {    state.pendingcb--;    if (err) {      stream.emit('error', err);    }    state.prefinished = true;    stream.emit('prefinish');    finishMaybe(stream, state);  });}function prefinish(stream, state) {  if (!state.prefinished && !state.finalCalled) {    if (typeof stream._final === 'function') {      state.pendingcb++;      state.finalCalled = true;      pna.nextTick(callFinal, stream, state);    } else {      state.prefinished = true;      stream.emit('prefinish');    }  }}function finishMaybe(stream, state) {  var need = needFinish(state);  if (need) {    prefinish(stream, state);    if (state.pendingcb === 0) {      state.finished = true;      stream.emit('finish');    }  }  return need;}function endWritable(stream, state, cb) {  state.ending = true;  finishMaybe(stream, state);  if (cb) {    if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);  }  state.ended = true;  stream.writable = false;}function onCorkedFinish(corkReq, state, err) {  var entry = corkReq.entry;  corkReq.entry = null;  while (entry) {    var cb = entry.callback;    state.pendingcb--;    cb(err);    entry = entry.next;  }  if (state.corkedRequestsFree) {    state.corkedRequestsFree.next = corkReq;  } else {    state.corkedRequestsFree = corkReq;  }}Object.defineProperty(Writable.prototype, 'destroyed', {  get: function () {    if (this._writableState === undefined) {      return false;    }    return this._writableState.destroyed;  },  set: function (value) {    // we ignore the value if the stream    // has not been initialized yet    if (!this._writableState) {      return;    }    // backward compatibility, the user is explicitly    // managing destroyed    this._writableState.destroyed = value;  }});Writable.prototype.destroy = destroyImpl.destroy;Writable.prototype._undestroy = destroyImpl.undestroy;Writable.prototype._destroy = function (err, cb) {  this.end();  cb(err);};/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1), __webpack_require__(36).setImmediate, __webpack_require__(0)))/***/ }),/* 19 *//***/ (function(module, exports, __webpack_require__) {"use strict";// Copyright Joyent, Inc. and other Node contributors.//// Permission is hereby granted, free of charge, to any person obtaining a// copy of this software and associated documentation files (the// "Software"), to deal in the Software without restriction, including// without limitation the rights to use, copy, modify, merge, publish,// distribute, sublicense, and/or sell copies of the Software, and to permit// persons to whom the Software is furnished to do so, subject to the// following conditions://// The above copyright notice and this permission notice shall be included// in all copies or substantial portions of the Software.//// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE// USE OR OTHER DEALINGS IN THE SOFTWARE./*<replacement>*/var Buffer = __webpack_require__(7).Buffer;/*</replacement>*/var isEncoding = Buffer.isEncoding || function (encoding) {  encoding = '' + encoding;  switch (encoding && encoding.toLowerCase()) {    case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':      return true;    default:      return false;  }};function _normalizeEncoding(enc) {  if (!enc) return 'utf8';  var retried;  while (true) {    switch (enc) {      case 'utf8':      case 'utf-8':        return 'utf8';      case 'ucs2':      case 'ucs-2':      case 'utf16le':      case 'utf-16le':        return 'utf16le';      case 'latin1':      case 'binary':        return 'latin1';      case 'base64':      case 'ascii':      case 'hex':        return enc;      default:        if (retried) return; // undefined        enc = ('' + enc).toLowerCase();        retried = true;    }  }};// Do not cache `Buffer.isEncoding` when checking encoding names as some// modules monkey-patch it to support additional encodingsfunction normalizeEncoding(enc) {  var nenc = _normalizeEncoding(enc);  if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);  return nenc || enc;}// StringDecoder provides an interface for efficiently splitting a series of// buffers into a series of JS strings without breaking apart multi-byte// characters.exports.StringDecoder = StringDecoder;function StringDecoder(encoding) {  this.encoding = normalizeEncoding(encoding);  var nb;  switch (this.encoding) {    case 'utf16le':      this.text = utf16Text;      this.end = utf16End;      nb = 4;      break;    case 'utf8':      this.fillLast = utf8FillLast;      nb = 4;      break;    case 'base64':      this.text = base64Text;      this.end = base64End;      nb = 3;      break;    default:      this.write = simpleWrite;      this.end = simpleEnd;      return;  }  this.lastNeed = 0;  this.lastTotal = 0;  this.lastChar = Buffer.allocUnsafe(nb);}StringDecoder.prototype.write = function (buf) {  if (buf.length === 0) return '';  var r;  var i;  if (this.lastNeed) {    r = this.fillLast(buf);    if (r === undefined) return '';    i = this.lastNeed;    this.lastNeed = 0;  } else {    i = 0;  }  if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);  return r || '';};StringDecoder.prototype.end = utf8End;// Returns only complete characters in a BufferStringDecoder.prototype.text = utf8Text;// Attempts to complete a partial non-UTF-8 character using bytes from a BufferStringDecoder.prototype.fillLast = function (buf) {  if (this.lastNeed <= buf.length) {    buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);    return this.lastChar.toString(this.encoding, 0, this.lastTotal);  }  buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);  this.lastNeed -= buf.length;};// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a// continuation byte. If an invalid byte is detected, -2 is returned.function utf8CheckByte(byte) {  if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;  return byte >> 6 === 0x02 ? -1 : -2;}// Checks at most 3 bytes at the end of a Buffer in order to detect an// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)// needed to complete the UTF-8 character (if applicable) are returned.function utf8CheckIncomplete(self, buf, i) {  var j = buf.length - 1;  if (j < i) return 0;  var nb = utf8CheckByte(buf[j]);  if (nb >= 0) {    if (nb > 0) self.lastNeed = nb - 1;    return nb;  }  if (--j < i || nb === -2) return 0;  nb = utf8CheckByte(buf[j]);  if (nb >= 0) {    if (nb > 0) self.lastNeed = nb - 2;    return nb;  }  if (--j < i || nb === -2) return 0;  nb = utf8CheckByte(buf[j]);  if (nb >= 0) {    if (nb > 0) {      if (nb === 2) nb = 0;else self.lastNeed = nb - 3;    }    return nb;  }  return 0;}// Validates as many continuation bytes for a multi-byte UTF-8 character as// needed or are available. If we see a non-continuation byte where we expect// one, we "replace" the validated continuation bytes we've seen so far with// a single UTF-8 replacement character ('\ufffd'), to match v8's UTF-8 decoding// behavior. The continuation byte check is included three times in the case// where all of the continuation bytes for a character exist in the same buffer.// It is also done this way as a slight performance increase instead of using a// loop.function utf8CheckExtraBytes(self, buf, p) {  if ((buf[0] & 0xC0) !== 0x80) {    self.lastNeed = 0;    return '\ufffd';  }  if (self.lastNeed > 1 && buf.length > 1) {    if ((buf[1] & 0xC0) !== 0x80) {      self.lastNeed = 1;      return '\ufffd';    }    if (self.lastNeed > 2 && buf.length > 2) {      if ((buf[2] & 0xC0) !== 0x80) {        self.lastNeed = 2;        return '\ufffd';      }    }  }}// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.function utf8FillLast(buf) {  var p = this.lastTotal - this.lastNeed;  var r = utf8CheckExtraBytes(this, buf, p);  if (r !== undefined) return r;  if (this.lastNeed <= buf.length) {    buf.copy(this.lastChar, p, 0, this.lastNeed);    return this.lastChar.toString(this.encoding, 0, this.lastTotal);  }  buf.copy(this.lastChar, p, 0, buf.length);  this.lastNeed -= buf.length;}// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a// partial character, the character's bytes are buffered until the required// number of bytes are available.function utf8Text(buf, i) {  var total = utf8CheckIncomplete(this, buf, i);  if (!this.lastNeed) return buf.toString('utf8', i);  this.lastTotal = total;  var end = buf.length - (total - this.lastNeed);  buf.copy(this.lastChar, 0, end);  return buf.toString('utf8', i, end);}// For UTF-8, a replacement character is added when ending on a partial// character.function utf8End(buf) {  var r = buf && buf.length ? this.write(buf) : '';  if (this.lastNeed) return r + '\ufffd';  return r;}// UTF-16LE typically needs two bytes per character, but even if we have an even// number of bytes available, we need to check if we end on a leading/high// surrogate. In that case, we need to wait for the next two bytes in order to// decode the last character properly.function utf16Text(buf, i) {  if ((buf.length - i) % 2 === 0) {    var r = buf.toString('utf16le', i);    if (r) {      var c = r.charCodeAt(r.length - 1);      if (c >= 0xD800 && c <= 0xDBFF) {        this.lastNeed = 2;        this.lastTotal = 4;        this.lastChar[0] = buf[buf.length - 2];        this.lastChar[1] = buf[buf.length - 1];        return r.slice(0, -1);      }    }    return r;  }  this.lastNeed = 1;  this.lastTotal = 2;  this.lastChar[0] = buf[buf.length - 1];  return buf.toString('utf16le', i, buf.length - 1);}// For UTF-16LE we do not explicitly append special replacement characters if we// end on a partial character, we simply let v8 handle that.function utf16End(buf) {  var r = buf && buf.length ? this.write(buf) : '';  if (this.lastNeed) {    var end = this.lastTotal - this.lastNeed;    return r + this.lastChar.toString('utf16le', 0, end);  }  return r;}function base64Text(buf, i) {  var n = (buf.length - i) % 3;  if (n === 0) return buf.toString('base64', i);  this.lastNeed = 3 - n;  this.lastTotal = 3;  if (n === 1) {    this.lastChar[0] = buf[buf.length - 1];  } else {    this.lastChar[0] = buf[buf.length - 2];    this.lastChar[1] = buf[buf.length - 1];  }  return buf.toString('base64', i, buf.length - n);}function base64End(buf) {  var r = buf && buf.length ? this.write(buf) : '';  if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);  return r;}// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)function simpleWrite(buf) {  return buf.toString(this.encoding);}function simpleEnd(buf) {  return buf && buf.length ? this.write(buf) : '';}/***/ }),/* 20 *//***/ (function(module, exports, __webpack_require__) {"use strict";// Copyright Joyent, Inc. and other Node contributors.//// Permission is hereby granted, free of charge, to any person obtaining a// copy of this software and associated documentation files (the// "Software"), to deal in the Software without restriction, including// without limitation the rights to use, copy, modify, merge, publish,// distribute, sublicense, and/or sell copies of the Software, and to permit// persons to whom the Software is furnished to do so, subject to the// following conditions://// The above copyright notice and this permission notice shall be included// in all copies or substantial portions of the Software.//// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE// USE OR OTHER DEALINGS IN THE SOFTWARE.// a transform stream is a readable/writable stream where you do// something with the data.  Sometimes it's called a "filter",// but that's not a great name for it, since that implies a thing where// some bits pass through, and others are simply ignored.  (That would// be a valid example of a transform, of course.)//// While the output is causally related to the input, it's not a// necessarily symmetric or synchronous transformation.  For example,// a zlib stream might take multiple plain-text writes(), and then// emit a single compressed chunk some time in the future.//// Here's how this works://// The Transform stream has all the aspects of the readable and writable// stream classes.  When you write(chunk), that calls _write(chunk,cb)// internally, and returns false if there's a lot of pending writes// buffered up.  When you call read(), that calls _read(n) until// there's enough pending readable data buffered up.//// In a transform stream, the written data is placed in a buffer.  When// _read(n) is called, it transforms the queued up data, calling the// buffered _write cb's as it consumes chunks.  If consuming a single// written chunk would result in multiple output chunks, then the first// outputted bit calls the readcb, and subsequent chunks just go into// the read buffer, and will cause it to emit 'readable' if necessary.//// This way, back-pressure is actually determined by the reading side,// since _read has to be called to start processing a new chunk.  However,// a pathological inflate type of transform can cause excessive buffering// here.  For example, imagine a stream where every byte of input is// interpreted as an integer from 0-255, and then results in that many// bytes of output.  Writing the 4 bytes {ff,ff,ff,ff} would result in// 1kb of data being output.  In this case, you could write a very small// amount of input, and end up with a very large amount of output.  In// such a pathological inflating mechanism, there'd be no way to tell// the system to stop doing the transform.  A single 4MB write could// cause the system to run out of memory.//// However, even in such a pathological case, only a single written chunk// would be consumed, and then the rest would wait (un-transformed) until// the results of the previous transformed chunk were consumed.module.exports = Transform;var Duplex = __webpack_require__(4);/*<replacement>*/var util = Object.create(__webpack_require__(5));util.inherits = __webpack_require__(2);/*</replacement>*/util.inherits(Transform, Duplex);function afterTransform(er, data) {  var ts = this._transformState;  ts.transforming = false;  var cb = ts.writecb;  if (!cb) {    return this.emit('error', new Error('write callback called multiple times'));  }  ts.writechunk = null;  ts.writecb = null;  if (data != null) // single equals check for both `null` and `undefined`    this.push(data);  cb(er);  var rs = this._readableState;  rs.reading = false;  if (rs.needReadable || rs.length < rs.highWaterMark) {    this._read(rs.highWaterMark);  }}function Transform(options) {  if (!(this instanceof Transform)) return new Transform(options);  Duplex.call(this, options);  this._transformState = {    afterTransform: afterTransform.bind(this),    needTransform: false,    transforming: false,    writecb: null,    writechunk: null,    writeencoding: null  };  // start out asking for a readable event once data is transformed.  this._readableState.needReadable = true;  // we have implemented the _read method, and done the other things  // that Readable wants before the first _read call, so unset the  // sync guard flag.  this._readableState.sync = false;  if (options) {    if (typeof options.transform === 'function') this._transform = options.transform;    if (typeof options.flush === 'function') this._flush = options.flush;  }  // When the writable side finishes, then flush out anything remaining.  this.on('prefinish', prefinish);}function prefinish() {  var _this = this;  if (typeof this._flush === 'function') {    this._flush(function (er, data) {      done(_this, er, data);    });  } else {    done(this, null, null);  }}Transform.prototype.push = function (chunk, encoding) {  this._transformState.needTransform = false;  return Duplex.prototype.push.call(this, chunk, encoding);};// This is the part where you do stuff!// override this function in implementation classes.// 'chunk' is an input chunk.//// Call `push(newChunk)` to pass along transformed output// to the readable side.  You may call 'push' zero or more times.//// Call `cb(err)` when you are done with this chunk.  If you pass// an error, then that'll put the hurt on the whole operation.  If you// never call cb(), then you'll never get another chunk.Transform.prototype._transform = function (chunk, encoding, cb) {  throw new Error('_transform() is not implemented');};Transform.prototype._write = function (chunk, encoding, cb) {  var ts = this._transformState;  ts.writecb = cb;  ts.writechunk = chunk;  ts.writeencoding = encoding;  if (!ts.transforming) {    var rs = this._readableState;    if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);  }};// Doesn't matter what the args are here.// _transform does all the work.// That we got here means that the readable side wants more data.Transform.prototype._read = function (n) {  var ts = this._transformState;  if (ts.writechunk !== null && ts.writecb && !ts.transforming) {    ts.transforming = true;    this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);  } else {    // mark that we need a transform, so that any data that comes in    // will get processed, now that we've asked for it.    ts.needTransform = true;  }};Transform.prototype._destroy = function (err, cb) {  var _this2 = this;  Duplex.prototype._destroy.call(this, err, function (err2) {    cb(err2);    _this2.emit('close');  });};function done(stream, er, data) {  if (er) return stream.emit('error', er);  if (data != null) // single equals check for both `null` and `undefined`    stream.push(data);  // if there's nothing in the write buffer, then that means  // that nothing more will ever be provided  if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');  if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');  return stream.push(null);}/***/ }),/* 21 *//***/ (function(module, exports, __webpack_require__) {var EventSource = __webpack_require__(22)if (typeof window === 'object') {  window.EventSourcePolyfill = EventSource  if (!window.EventSource) window.EventSource = EventSource  module.exports = window.EventSource} else {  module.exports = EventSource}/***/ }),/* 22 *//***/ (function(module, exports, __webpack_require__) {/* WEBPACK VAR INJECTION */(function(process, Buffer) {var parse = __webpack_require__(8).parsevar events = __webpack_require__(9)var https = __webpack_require__(31)var http = __webpack_require__(11)var util = __webpack_require__(43)var httpsOptions = [  'pfx', 'key', 'passphrase', 'cert', 'ca', 'ciphers',  'rejectUnauthorized', 'secureProtocol', 'servername', 'checkServerIdentity']var bom = [239, 187, 191]var colon = 58var space = 32var lineFeed = 10var carriageReturn = 13// Beyond 256KB we could not observe any gain in performancevar maxBufferAheadAllocation = 1024 * 256// Headers matching the pattern should be removed when redirecting to different originvar reUnsafeHeader = /^(cookie|authorization)$/ifunction hasBom (buf) {  return bom.every(function (charCode, index) {    return buf[index] === charCode  })}/** * Creates a new EventSource object * * @param {String} url the URL to which to connect * @param {Object} [eventSourceInitDict] extra init params. See README for details. * @api public **/function EventSource (url, eventSourceInitDict) {  var readyState = EventSource.CONNECTING  var headers = eventSourceInitDict && eventSourceInitDict.headers  var hasNewOrigin = false  Object.defineProperty(this, 'readyState', {    get: function () {      return readyState    }  })  Object.defineProperty(this, 'url', {    get: function () {      return url    }  })  var self = this  self.reconnectInterval = 1000  self.connectionInProgress = false  function onConnectionClosed (message) {    if (readyState === EventSource.CLOSED) return    readyState = EventSource.CONNECTING    _emit('error', new Event('error', {message: message}))    // The url may have been changed by a temporary redirect. If that's the case,    // revert it now, and flag that we are no longer pointing to a new origin    if (reconnectUrl) {      url = reconnectUrl      reconnectUrl = null      hasNewOrigin = false    }    setTimeout(function () {      if (readyState !== EventSource.CONNECTING || self.connectionInProgress) {        return      }      self.connectionInProgress = true      connect()    }, self.reconnectInterval)  }  var req  var lastEventId = ''  if (headers && headers['Last-Event-ID']) {    lastEventId = headers['Last-Event-ID']    delete headers['Last-Event-ID']  }  var discardTrailingNewline = false  var data = ''  var eventName = ''  var reconnectUrl = null  function connect () {    var options = parse(url)    var isSecure = options.protocol === 'https:'    options.headers = { 'Cache-Control': 'no-cache', 'Accept': 'text/event-stream' }    if (lastEventId) options.headers['Last-Event-ID'] = lastEventId    if (headers) {      var reqHeaders = hasNewOrigin ? removeUnsafeHeaders(headers) : headers      for (var i in reqHeaders) {        var header = reqHeaders[i]        if (header) {          options.headers[i] = header        }      }    }    // Legacy: this should be specified as `eventSourceInitDict.https.rejectUnauthorized`,    // but for now exists as a backwards-compatibility layer    options.rejectUnauthorized = !(eventSourceInitDict && !eventSourceInitDict.rejectUnauthorized)    if (eventSourceInitDict && eventSourceInitDict.createConnection !== undefined) {      options.createConnection = eventSourceInitDict.createConnection    }    // If specify http proxy, make the request to sent to the proxy server,    // and include the original url in path and Host headers    var useProxy = eventSourceInitDict && eventSourceInitDict.proxy    if (useProxy) {      var proxy = parse(eventSourceInitDict.proxy)      isSecure = proxy.protocol === 'https:'      options.protocol = isSecure ? 'https:' : 'http:'      options.path = url      options.headers.Host = options.host      options.hostname = proxy.hostname      options.host = proxy.host      options.port = proxy.port    }    // If https options are specified, merge them into the request options    if (eventSourceInitDict && eventSourceInitDict.https) {      for (var optName in eventSourceInitDict.https) {        if (httpsOptions.indexOf(optName) === -1) {          continue        }        var option = eventSourceInitDict.https[optName]        if (option !== undefined) {          options[optName] = option        }      }    }    // Pass this on to the XHR    if (eventSourceInitDict && eventSourceInitDict.withCredentials !== undefined) {      options.withCredentials = eventSourceInitDict.withCredentials    }    req = (isSecure ? https : http).request(options, function (res) {      self.connectionInProgress = false      // Handle HTTP errors      if (res.statusCode === 500 || res.statusCode === 502 || res.statusCode === 503 || res.statusCode === 504) {        _emit('error', new Event('error', {status: res.statusCode, message: res.statusMessage}))        onConnectionClosed()        return      }      // Handle HTTP redirects      if (res.statusCode === 301 || res.statusCode === 302 || res.statusCode === 307) {        var location = res.headers.location        if (!location) {          // Server sent redirect response without Location header.          _emit('error', new Event('error', {status: res.statusCode, message: res.statusMessage}))          return        }        var prevOrigin = new URL(url).origin        var nextOrigin = new URL(location).origin        hasNewOrigin = prevOrigin !== nextOrigin        if (res.statusCode === 307) reconnectUrl = url        url = location        process.nextTick(connect)        return      }      if (res.statusCode !== 200) {        _emit('error', new Event('error', {status: res.statusCode, message: res.statusMessage}))        return self.close()      }      readyState = EventSource.OPEN      res.on('close', function () {        res.removeAllListeners('close')        res.removeAllListeners('end')        onConnectionClosed()      })      res.on('end', function () {        res.removeAllListeners('close')        res.removeAllListeners('end')        onConnectionClosed()      })      _emit('open', new Event('open'))      // text/event-stream parser adapted from webkit's      // Source/WebCore/page/EventSource.cpp      var buf      var newBuffer      var startingPos = 0      var startingFieldLength = -1      var newBufferSize = 0      var bytesUsed = 0      res.on('data', function (chunk) {        if (!buf) {          buf = chunk          if (hasBom(buf)) {            buf = buf.slice(bom.length)          }          bytesUsed = buf.length        } else {          if (chunk.length > buf.length - bytesUsed) {            newBufferSize = (buf.length * 2) + chunk.length            if (newBufferSize > maxBufferAheadAllocation) {              newBufferSize = buf.length + chunk.length + maxBufferAheadAllocation            }            newBuffer = Buffer.alloc(newBufferSize)            buf.copy(newBuffer, 0, 0, bytesUsed)            buf = newBuffer          }          chunk.copy(buf, bytesUsed)          bytesUsed += chunk.length        }        var pos = 0        var length = bytesUsed        while (pos < length) {          if (discardTrailingNewline) {            if (buf[pos] === lineFeed) {              ++pos            }            discardTrailingNewline = false          }          var lineLength = -1          var fieldLength = startingFieldLength          var c          for (var i = startingPos; lineLength < 0 && i < length; ++i) {            c = buf[i]            if (c === colon) {              if (fieldLength < 0) {                fieldLength = i - pos              }            } else if (c === carriageReturn) {              discardTrailingNewline = true              lineLength = i - pos            } else if (c === lineFeed) {              lineLength = i - pos            }          }          if (lineLength < 0) {            startingPos = length - pos            startingFieldLength = fieldLength            break          } else {            startingPos = 0            startingFieldLength = -1          }          parseEventStreamLine(buf, pos, fieldLength, lineLength)          pos += lineLength + 1        }        if (pos === length) {          buf = void 0          bytesUsed = 0        } else if (pos > 0) {          buf = buf.slice(pos, bytesUsed)          bytesUsed = buf.length        }      })    })    req.on('error', function (err) {      self.connectionInProgress = false      onConnectionClosed(err.message)    })    if (req.setNoDelay) req.setNoDelay(true)    req.end()  }  connect()  function _emit () {    if (self.listeners(arguments[0]).length > 0) {      self.emit.apply(self, arguments)    }  }  this._close = function () {    if (readyState === EventSource.CLOSED) return    readyState = EventSource.CLOSED    if (req.abort) req.abort()    if (req.xhr && req.xhr.abort) req.xhr.abort()  }  function parseEventStreamLine (buf, pos, fieldLength, lineLength) {    if (lineLength === 0) {      if (data.length > 0) {        var type = eventName || 'message'        _emit(type, new MessageEvent(type, {          data: data.slice(0, -1), // remove trailing newline          lastEventId: lastEventId,          origin: new URL(url).origin        }))        data = ''      }      eventName = void 0    } else if (fieldLength > 0) {      var noValue = fieldLength < 0      var step = 0      var field = buf.slice(pos, pos + (noValue ? lineLength : fieldLength)).toString()      if (noValue) {        step = lineLength      } else if (buf[pos + fieldLength + 1] !== space) {        step = fieldLength + 1      } else {        step = fieldLength + 2      }      pos += step      var valueLength = lineLength - step      var value = buf.slice(pos, pos + valueLength).toString()      if (field === 'data') {        data += value + '\n'      } else if (field === 'event') {        eventName = value      } else if (field === 'id') {        lastEventId = value      } else if (field === 'retry') {        var retry = parseInt(value, 10)        if (!Number.isNaN(retry)) {          self.reconnectInterval = retry        }      }    }  }}module.exports = EventSourceutil.inherits(EventSource, events.EventEmitter)EventSource.prototype.constructor = EventSource; // make stacktraces readable['open', 'error', 'message'].forEach(function (method) {  Object.defineProperty(EventSource.prototype, 'on' + method, {    /**     * Returns the current listener     *     * @return {Mixed} the set function or undefined     * @api private     */    get: function get () {      var listener = this.listeners(method)[0]      return listener ? (listener._listener ? listener._listener : listener) : undefined    },    /**     * Start listening for events     *     * @param {Function} listener the listener     * @return {Mixed} the set function or undefined     * @api private     */    set: function set (listener) {      this.removeAllListeners(method)      this.addEventListener(method, listener)    }  })})/** * Ready states */Object.defineProperty(EventSource, 'CONNECTING', {enumerable: true, value: 0})Object.defineProperty(EventSource, 'OPEN', {enumerable: true, value: 1})Object.defineProperty(EventSource, 'CLOSED', {enumerable: true, value: 2})EventSource.prototype.CONNECTING = 0EventSource.prototype.OPEN = 1EventSource.prototype.CLOSED = 2/** * Closes the connection, if one is made, and sets the readyState attribute to 2 (closed) * * @see https://developer.mozilla.org/en-US/docs/Web/API/EventSource/close * @api public */EventSource.prototype.close = function () {  this._close()}/** * Emulates the W3C Browser based WebSocket interface using addEventListener. * * @param {String} type A string representing the event type to listen out for * @param {Function} listener callback * @see https://developer.mozilla.org/en/DOM/element.addEventListener * @see http://dev.w3.org/html5/websockets/#the-websocket-interface * @api public */EventSource.prototype.addEventListener = function addEventListener (type, listener) {  if (typeof listener === 'function') {    // store a reference so we can return the original function again    listener._listener = listener    this.on(type, listener)  }}/** * Emulates the W3C Browser based WebSocket interface using dispatchEvent. * * @param {Event} event An event to be dispatched * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/dispatchEvent * @api public */EventSource.prototype.dispatchEvent = function dispatchEvent (event) {  if (!event.type) {    throw new Error('UNSPECIFIED_EVENT_TYPE_ERR')  }  // if event is instance of an CustomEvent (or has 'details' property),  // send the detail object as the payload for the event  this.emit(event.type, event.detail)}/** * Emulates the W3C Browser based WebSocket interface using removeEventListener. * * @param {String} type A string representing the event type to remove * @param {Function} listener callback * @see https://developer.mozilla.org/en/DOM/element.removeEventListener * @see http://dev.w3.org/html5/websockets/#the-websocket-interface * @api public */EventSource.prototype.removeEventListener = function removeEventListener (type, listener) {  if (typeof listener === 'function') {    listener._listener = undefined    this.removeListener(type, listener)  }}/** * W3C Event * * @see http://www.w3.org/TR/DOM-Level-3-Events/#interface-Event * @api private */function Event (type, optionalProperties) {  Object.defineProperty(this, 'type', { writable: false, value: type, enumerable: true })  if (optionalProperties) {    for (var f in optionalProperties) {      if (optionalProperties.hasOwnProperty(f)) {        Object.defineProperty(this, f, { writable: false, value: optionalProperties[f], enumerable: true })      }    }  }}/** * W3C MessageEvent * * @see http://www.w3.org/TR/webmessaging/#event-definitions * @api private */function MessageEvent (type, eventInitDict) {  Object.defineProperty(this, 'type', { writable: false, value: type, enumerable: true })  for (var f in eventInitDict) {    if (eventInitDict.hasOwnProperty(f)) {      Object.defineProperty(this, f, { writable: false, value: eventInitDict[f], enumerable: true })    }  }}/** * Returns a new object of headers that does not include any authorization and cookie headers * * @param {Object} headers An object of headers ({[headerName]: headerValue}) * @return {Object} a new object of headers * @api private */function removeUnsafeHeaders (headers) {  var safe = {}  for (var key in headers) {    if (reUnsafeHeader.test(key)) {      continue    }    safe[key] = headers[key]  }  return safe}/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1), __webpack_require__(3).Buffer))/***/ }),/* 23 *//***/ (function(module, exports, __webpack_require__) {"use strict";exports.byteLength = byteLengthexports.toByteArray = toByteArrayexports.fromByteArray = fromByteArrayvar lookup = []var revLookup = []var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Arrayvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'for (var i = 0, len = code.length; i < len; ++i) {  lookup[i] = code[i]  revLookup[code.charCodeAt(i)] = i}// Support decoding URL-safe base64 strings, as Node.js does.// See: https://en.wikipedia.org/wiki/Base64#URL_applicationsrevLookup['-'.charCodeAt(0)] = 62revLookup['_'.charCodeAt(0)] = 63function getLens (b64) {  var len = b64.length  if (len % 4 > 0) {    throw new Error('Invalid string. Length must be a multiple of 4')  }  // Trim off extra bytes after placeholder bytes are found  // See: https://github.com/beatgammit/base64-js/issues/42  var validLen = b64.indexOf('=')  if (validLen === -1) validLen = len  var placeHoldersLen = validLen === len    ? 0    : 4 - (validLen % 4)  return [validLen, placeHoldersLen]}// base64 is 4/3 + up to two characters of the original datafunction byteLength (b64) {  var lens = getLens(b64)  var validLen = lens[0]  var placeHoldersLen = lens[1]  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen}function _byteLength (b64, validLen, placeHoldersLen) {  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen}function toByteArray (b64) {  var tmp  var lens = getLens(b64)  var validLen = lens[0]  var placeHoldersLen = lens[1]  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))  var curByte = 0  // if there are placeholders, only get up to the last complete 4 chars  var len = placeHoldersLen > 0    ? validLen - 4    : validLen  var i  for (i = 0; i < len; i += 4) {    tmp =      (revLookup[b64.charCodeAt(i)] << 18) |      (revLookup[b64.charCodeAt(i + 1)] << 12) |      (revLookup[b64.charCodeAt(i + 2)] << 6) |      revLookup[b64.charCodeAt(i + 3)]    arr[curByte++] = (tmp >> 16) & 0xFF    arr[curByte++] = (tmp >> 8) & 0xFF    arr[curByte++] = tmp & 0xFF  }  if (placeHoldersLen === 2) {    tmp =      (revLookup[b64.charCodeAt(i)] << 2) |      (revLookup[b64.charCodeAt(i + 1)] >> 4)    arr[curByte++] = tmp & 0xFF  }  if (placeHoldersLen === 1) {    tmp =      (revLookup[b64.charCodeAt(i)] << 10) |      (revLookup[b64.charCodeAt(i + 1)] << 4) |      (revLookup[b64.charCodeAt(i + 2)] >> 2)    arr[curByte++] = (tmp >> 8) & 0xFF    arr[curByte++] = tmp & 0xFF  }  return arr}function tripletToBase64 (num) {  return lookup[num >> 18 & 0x3F] +    lookup[num >> 12 & 0x3F] +    lookup[num >> 6 & 0x3F] +    lookup[num & 0x3F]}function encodeChunk (uint8, start, end) {  var tmp  var output = []  for (var i = start; i < end; i += 3) {    tmp =      ((uint8[i] << 16) & 0xFF0000) +      ((uint8[i + 1] << 8) & 0xFF00) +      (uint8[i + 2] & 0xFF)    output.push(tripletToBase64(tmp))  }  return output.join('')}function fromByteArray (uint8) {  var tmp  var len = uint8.length  var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes  var parts = []  var maxChunkLength = 16383 // must be multiple of 3  // go through the array every three bytes, we'll deal with trailing stuff later  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {    parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))  }  // pad the end with zeros, but make sure to not forget the extra bytes  if (extraBytes === 1) {    tmp = uint8[len - 1]    parts.push(      lookup[tmp >> 2] +      lookup[(tmp << 4) & 0x3F] +      '=='    )  } else if (extraBytes === 2) {    tmp = (uint8[len - 2] << 8) + uint8[len - 1]    parts.push(      lookup[tmp >> 10] +      lookup[(tmp >> 4) & 0x3F] +      lookup[(tmp << 2) & 0x3F] +      '='    )  }  return parts.join('')}/***/ }),/* 24 *//***/ (function(module, exports) {/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */exports.read = function (buffer, offset, isLE, mLen, nBytes) {  var e, m  var eLen = (nBytes * 8) - mLen - 1  var eMax = (1 << eLen) - 1  var eBias = eMax >> 1  var nBits = -7  var i = isLE ? (nBytes - 1) : 0  var d = isLE ? -1 : 1  var s = buffer[offset + i]  i += d  e = s & ((1 << (-nBits)) - 1)  s >>= (-nBits)  nBits += eLen  for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}  m = e & ((1 << (-nBits)) - 1)  e >>= (-nBits)  nBits += mLen  for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}  if (e === 0) {    e = 1 - eBias  } else if (e === eMax) {    return m ? NaN : ((s ? -1 : 1) * Infinity)  } else {    m = m + Math.pow(2, mLen)    e = e - eBias  }  return (s ? -1 : 1) * m * Math.pow(2, e - mLen)}exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {  var e, m, c  var eLen = (nBytes * 8) - mLen - 1  var eMax = (1 << eLen) - 1  var eBias = eMax >> 1  var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)  var i = isLE ? 0 : (nBytes - 1)  var d = isLE ? 1 : -1  var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0  value = Math.abs(value)  if (isNaN(value) || value === Infinity) {    m = isNaN(value) ? 1 : 0    e = eMax  } else {    e = Math.floor(Math.log(value) / Math.LN2)    if (value * (c = Math.pow(2, -e)) < 1) {      e--      c *= 2    }    if (e + eBias >= 1) {      value += rt / c    } else {      value += rt * Math.pow(2, 1 - eBias)    }    if (value * c >= 2) {      e++      c /= 2    }    if (e + eBias >= eMax) {      m = 0      e = eMax    } else if (e + eBias >= 1) {      m = ((value * c) - 1) * Math.pow(2, mLen)      e = e + eBias    } else {      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)      e = 0    }  }  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}  e = (e << mLen) | m  eLen += mLen  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}  buffer[offset + i - d] |= s * 128}/***/ }),/* 25 *//***/ (function(module, exports, __webpack_require__) {/* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;/*! https://mths.be/punycode v1.4.1 by @mathias */;(function(root) {	/** Detect free variables */	var freeExports = typeof exports == 'object' && exports &&		!exports.nodeType && exports;	var freeModule = typeof module == 'object' && module &&		!module.nodeType && module;	var freeGlobal = typeof global == 'object' && global;	if (		freeGlobal.global === freeGlobal ||		freeGlobal.window === freeGlobal ||		freeGlobal.self === freeGlobal	) {		root = freeGlobal;	}	/**	 * The `punycode` object.	 * @name punycode	 * @type Object	 */	var punycode,	/** Highest positive signed 32-bit float value */	maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1	/** Bootstring parameters */	base = 36,	tMin = 1,	tMax = 26,	skew = 38,	damp = 700,	initialBias = 72,	initialN = 128, // 0x80	delimiter = '-', // '\x2D'	/** Regular expressions */	regexPunycode = /^xn--/,	regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars	regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators	/** Error messages */	errors = {		'overflow': 'Overflow: input needs wider integers to process',		'not-basic': 'Illegal input >= 0x80 (not a basic code point)',		'invalid-input': 'Invalid input'	},	/** Convenience shortcuts */	baseMinusTMin = base - tMin,	floor = Math.floor,	stringFromCharCode = String.fromCharCode,	/** Temporary variable */	key;	/*--------------------------------------------------------------------------*/	/**	 * A generic error utility function.	 * @private	 * @param {String} type The error type.	 * @returns {Error} Throws a `RangeError` with the applicable error message.	 */	function error(type) {		throw new RangeError(errors[type]);	}	/**	 * A generic `Array#map` utility function.	 * @private	 * @param {Array} array The array to iterate over.	 * @param {Function} callback The function that gets called for every array	 * item.	 * @returns {Array} A new array of values returned by the callback function.	 */	function map(array, fn) {		var length = array.length;		var result = [];		while (length--) {			result[length] = fn(array[length]);		}		return result;	}	/**	 * A simple `Array#map`-like wrapper to work with domain name strings or email	 * addresses.	 * @private	 * @param {String} domain The domain name or email address.	 * @param {Function} callback The function that gets called for every	 * character.	 * @returns {Array} A new string of characters returned by the callback	 * function.	 */	function mapDomain(string, fn) {		var parts = string.split('@');		var result = '';		if (parts.length > 1) {			// In email addresses, only the domain name should be punycoded. Leave			// the local part (i.e. everything up to `@`) intact.			result = parts[0] + '@';			string = parts[1];		}		// Avoid `split(regex)` for IE8 compatibility. See #17.		string = string.replace(regexSeparators, '\x2E');		var labels = string.split('.');		var encoded = map(labels, fn).join('.');		return result + encoded;	}	/**	 * Creates an array containing the numeric code points of each Unicode	 * character in the string. While JavaScript uses UCS-2 internally,	 * this function will convert a pair of surrogate halves (each of which	 * UCS-2 exposes as separate characters) into a single code point,	 * matching UTF-16.	 * @see `punycode.ucs2.encode`	 * @see <https://mathiasbynens.be/notes/javascript-encoding>	 * @memberOf punycode.ucs2	 * @name decode	 * @param {String} string The Unicode input string (UCS-2).	 * @returns {Array} The new array of code points.	 */	function ucs2decode(string) {		var output = [],		    counter = 0,		    length = string.length,		    value,		    extra;		while (counter < length) {			value = string.charCodeAt(counter++);			if (value >= 0xD800 && value <= 0xDBFF && counter < length) {				// high surrogate, and there is a next character				extra = string.charCodeAt(counter++);				if ((extra & 0xFC00) == 0xDC00) { // low surrogate					output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);				} else {					// unmatched surrogate; only append this code unit, in case the next					// code unit is the high surrogate of a surrogate pair					output.push(value);					counter--;				}			} else {				output.push(value);			}		}		return output;	}	/**	 * Creates a string based on an array of numeric code points.	 * @see `punycode.ucs2.decode`	 * @memberOf punycode.ucs2	 * @name encode	 * @param {Array} codePoints The array of numeric code points.	 * @returns {String} The new Unicode string (UCS-2).	 */	function ucs2encode(array) {		return map(array, function(value) {			var output = '';			if (value > 0xFFFF) {				value -= 0x10000;				output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);				value = 0xDC00 | value & 0x3FF;			}			output += stringFromCharCode(value);			return output;		}).join('');	}	/**	 * Converts a basic code point into a digit/integer.	 * @see `digitToBasic()`	 * @private	 * @param {Number} codePoint The basic numeric code point value.	 * @returns {Number} The numeric value of a basic code point (for use in	 * representing integers) in the range `0` to `base - 1`, or `base` if	 * the code point does not represent a value.	 */	function basicToDigit(codePoint) {		if (codePoint - 48 < 10) {			return codePoint - 22;		}		if (codePoint - 65 < 26) {			return codePoint - 65;		}		if (codePoint - 97 < 26) {			return codePoint - 97;		}		return base;	}	/**	 * Converts a digit/integer into a basic code point.	 * @see `basicToDigit()`	 * @private	 * @param {Number} digit The numeric value of a basic code point.	 * @returns {Number} The basic code point whose value (when used for	 * representing integers) is `digit`, which needs to be in the range	 * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is	 * used; else, the lowercase form is used. The behavior is undefined	 * if `flag` is non-zero and `digit` has no uppercase form.	 */	function digitToBasic(digit, flag) {		//  0..25 map to ASCII a..z or A..Z		// 26..35 map to ASCII 0..9		return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);	}	/**	 * Bias adaptation function as per section 3.4 of RFC 3492.	 * https://tools.ietf.org/html/rfc3492#section-3.4	 * @private	 */	function adapt(delta, numPoints, firstTime) {		var k = 0;		delta = firstTime ? floor(delta / damp) : delta >> 1;		delta += floor(delta / numPoints);		for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {			delta = floor(delta / baseMinusTMin);		}		return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));	}	/**	 * Converts a Punycode string of ASCII-only symbols to a string of Unicode	 * symbols.	 * @memberOf punycode	 * @param {String} input The Punycode string of ASCII-only symbols.	 * @returns {String} The resulting string of Unicode symbols.	 */	function decode(input) {		// Don't use UCS-2		var output = [],		    inputLength = input.length,		    out,		    i = 0,		    n = initialN,		    bias = initialBias,		    basic,		    j,		    index,		    oldi,		    w,		    k,		    digit,		    t,		    /** Cached calculation results */		    baseMinusT;		// Handle the basic code points: let `basic` be the number of input code		// points before the last delimiter, or `0` if there is none, then copy		// the first basic code points to the output.		basic = input.lastIndexOf(delimiter);		if (basic < 0) {			basic = 0;		}		for (j = 0; j < basic; ++j) {			// if it's not a basic code point			if (input.charCodeAt(j) >= 0x80) {				error('not-basic');			}			output.push(input.charCodeAt(j));		}		// Main decoding loop: start just after the last delimiter if any basic code		// points were copied; start at the beginning otherwise.		for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {			// `index` is the index of the next character to be consumed.			// Decode a generalized variable-length integer into `delta`,			// which gets added to `i`. The overflow checking is easier			// if we increase `i` as we go, then subtract off its starting			// value at the end to obtain `delta`.			for (oldi = i, w = 1, k = base; /* no condition */; k += base) {				if (index >= inputLength) {					error('invalid-input');				}				digit = basicToDigit(input.charCodeAt(index++));				if (digit >= base || digit > floor((maxInt - i) / w)) {					error('overflow');				}				i += digit * w;				t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);				if (digit < t) {					break;				}				baseMinusT = base - t;				if (w > floor(maxInt / baseMinusT)) {					error('overflow');				}				w *= baseMinusT;			}			out = output.length + 1;			bias = adapt(i - oldi, out, oldi == 0);			// `i` was supposed to wrap around from `out` to `0`,			// incrementing `n` each time, so we'll fix that now:			if (floor(i / out) > maxInt - n) {				error('overflow');			}			n += floor(i / out);			i %= out;			// Insert `n` at position `i` of the output			output.splice(i++, 0, n);		}		return ucs2encode(output);	}	/**	 * Converts a string of Unicode symbols (e.g. a domain name label) to a	 * Punycode string of ASCII-only symbols.	 * @memberOf punycode	 * @param {String} input The string of Unicode symbols.	 * @returns {String} The resulting Punycode string of ASCII-only symbols.	 */	function encode(input) {		var n,		    delta,		    handledCPCount,		    basicLength,		    bias,		    j,		    m,		    q,		    k,		    t,		    currentValue,		    output = [],		    /** `inputLength` will hold the number of code points in `input`. */		    inputLength,		    /** Cached calculation results */		    handledCPCountPlusOne,		    baseMinusT,		    qMinusT;		// Convert the input in UCS-2 to Unicode		input = ucs2decode(input);		// Cache the length		inputLength = input.length;		// Initialize the state		n = initialN;		delta = 0;		bias = initialBias;		// Handle the basic code points		for (j = 0; j < inputLength; ++j) {			currentValue = input[j];			if (currentValue < 0x80) {				output.push(stringFromCharCode(currentValue));			}		}		handledCPCount = basicLength = output.length;		// `handledCPCount` is the number of code points that have been handled;		// `basicLength` is the number of basic code points.		// Finish the basic string - if it is not empty - with a delimiter		if (basicLength) {			output.push(delimiter);		}		// Main encoding loop:		while (handledCPCount < inputLength) {			// All non-basic code points < n have been handled already. Find the next			// larger one:			for (m = maxInt, j = 0; j < inputLength; ++j) {				currentValue = input[j];				if (currentValue >= n && currentValue < m) {					m = currentValue;				}			}			// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,			// but guard against overflow			handledCPCountPlusOne = handledCPCount + 1;			if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {				error('overflow');			}			delta += (m - n) * handledCPCountPlusOne;			n = m;			for (j = 0; j < inputLength; ++j) {				currentValue = input[j];				if (currentValue < n && ++delta > maxInt) {					error('overflow');				}				if (currentValue == n) {					// Represent delta as a generalized variable-length integer					for (q = delta, k = base; /* no condition */; k += base) {						t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);						if (q < t) {							break;						}						qMinusT = q - t;						baseMinusT = base - t;						output.push(							stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))						);						q = floor(qMinusT / baseMinusT);					}					output.push(stringFromCharCode(digitToBasic(q, 0)));					bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);					delta = 0;					++handledCPCount;				}			}			++delta;			++n;		}		return output.join('');	}	/**	 * Converts a Punycode string representing a domain name or an email address	 * to Unicode. Only the Punycoded parts of the input will be converted, i.e.	 * it doesn't matter if you call it on a string that has already been	 * converted to Unicode.	 * @memberOf punycode	 * @param {String} input The Punycoded domain name or email address to	 * convert to Unicode.	 * @returns {String} The Unicode representation of the given Punycode	 * string.	 */	function toUnicode(input) {		return mapDomain(input, function(string) {			return regexPunycode.test(string)				? decode(string.slice(4).toLowerCase())				: string;		});	}	/**	 * Converts a Unicode string representing a domain name or an email address to	 * Punycode. Only the non-ASCII parts of the domain name will be converted,	 * i.e. it doesn't matter if you call it with a domain that's already in	 * ASCII.	 * @memberOf punycode	 * @param {String} input The domain name or email address to convert, as a	 * Unicode string.	 * @returns {String} The Punycode representation of the given domain name or	 * email address.	 */	function toASCII(input) {		return mapDomain(input, function(string) {			return regexNonASCII.test(string)				? 'xn--' + encode(string)				: string;		});	}	/*--------------------------------------------------------------------------*/	/** Define the public API */	punycode = {		/**		 * A string representing the current Punycode.js version number.		 * @memberOf punycode		 * @type String		 */		'version': '1.4.1',		/**		 * An object of methods to convert from JavaScript's internal character		 * representation (UCS-2) to Unicode code points, and back.		 * @see <https://mathiasbynens.be/notes/javascript-encoding>		 * @memberOf punycode		 * @type Object		 */		'ucs2': {			'decode': ucs2decode,			'encode': ucs2encode		},		'decode': decode,		'encode': encode,		'toASCII': toASCII,		'toUnicode': toUnicode	};	/** Expose `punycode` */	// Some AMD build optimizers, like r.js, check for specific condition patterns	// like the following:	if (		true	) {		!(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {			return punycode;		}).call(exports, __webpack_require__, exports, module),				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));	} else if (freeExports && freeModule) {		if (module.exports == freeExports) {			// in Node.js, io.js, or RingoJS v0.8.0+			freeModule.exports = punycode;		} else {			// in Narwhal or RingoJS v0.7.0-			for (key in punycode) {				punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);			}		}	} else {		// in Rhino or a web browser		root.punycode = punycode;	}}(this));/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(26)(module), __webpack_require__(0)))/***/ }),/* 26 *//***/ (function(module, exports) {module.exports = function(module) {	if(!module.webpackPolyfill) {		module.deprecate = function() {};		module.paths = [];		// module.parent = undefined by default		if(!module.children) module.children = [];		Object.defineProperty(module, "loaded", {			enumerable: true,			get: function() {				return module.l;			}		});		Object.defineProperty(module, "id", {			enumerable: true,			get: function() {				return module.i;			}		});		module.webpackPolyfill = 1;	}	return module;};/***/ }),/* 27 *//***/ (function(module, exports, __webpack_require__) {"use strict";module.exports = {  isString: function(arg) {    return typeof(arg) === 'string';  },  isObject: function(arg) {    return typeof(arg) === 'object' && arg !== null;  },  isNull: function(arg) {    return arg === null;  },  isNullOrUndefined: function(arg) {    return arg == null;  }};/***/ }),/* 28 *//***/ (function(module, exports, __webpack_require__) {"use strict";exports.decode = exports.parse = __webpack_require__(29);exports.encode = exports.stringify = __webpack_require__(30);/***/ }),/* 29 *//***/ (function(module, exports, __webpack_require__) {"use strict";// Copyright Joyent, Inc. and other Node contributors.//// Permission is hereby granted, free of charge, to any person obtaining a// copy of this software and associated documentation files (the// "Software"), to deal in the Software without restriction, including// without limitation the rights to use, copy, modify, merge, publish,// distribute, sublicense, and/or sell copies of the Software, and to permit// persons to whom the Software is furnished to do so, subject to the// following conditions://// The above copyright notice and this permission notice shall be included// in all copies or substantial portions of the Software.//// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE// USE OR OTHER DEALINGS IN THE SOFTWARE.// If obj.hasOwnProperty has been overridden, then calling// obj.hasOwnProperty(prop) will break.// See: https://github.com/joyent/node/issues/1707function hasOwnProperty(obj, prop) {  return Object.prototype.hasOwnProperty.call(obj, prop);}module.exports = function(qs, sep, eq, options) {  sep = sep || '&';  eq = eq || '=';  var obj = {};  if (typeof qs !== 'string' || qs.length === 0) {    return obj;  }  var regexp = /\+/g;  qs = qs.split(sep);  var maxKeys = 1000;  if (options && typeof options.maxKeys === 'number') {    maxKeys = options.maxKeys;  }  var len = qs.length;  // maxKeys <= 0 means that we should not limit keys count  if (maxKeys > 0 && len > maxKeys) {    len = maxKeys;  }  for (var i = 0; i < len; ++i) {    var x = qs[i].replace(regexp, '%20'),        idx = x.indexOf(eq),        kstr, vstr, k, v;    if (idx >= 0) {      kstr = x.substr(0, idx);      vstr = x.substr(idx + 1);    } else {      kstr = x;      vstr = '';    }    k = decodeURIComponent(kstr);    v = decodeURIComponent(vstr);    if (!hasOwnProperty(obj, k)) {      obj[k] = v;    } else if (isArray(obj[k])) {      obj[k].push(v);    } else {      obj[k] = [obj[k], v];    }  }  return obj;};var isArray = Array.isArray || function (xs) {  return Object.prototype.toString.call(xs) === '[object Array]';};/***/ }),/* 30 *//***/ (function(module, exports, __webpack_require__) {"use strict";// Copyright Joyent, Inc. and other Node contributors.//// Permission is hereby granted, free of charge, to any person obtaining a// copy of this software and associated documentation files (the// "Software"), to deal in the Software without restriction, including// without limitation the rights to use, copy, modify, merge, publish,// distribute, sublicense, and/or sell copies of the Software, and to permit// persons to whom the Software is furnished to do so, subject to the// following conditions://// The above copyright notice and this permission notice shall be included// in all copies or substantial portions of the Software.//// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE// USE OR OTHER DEALINGS IN THE SOFTWARE.var stringifyPrimitive = function(v) {  switch (typeof v) {    case 'string':      return v;    case 'boolean':      return v ? 'true' : 'false';    case 'number':      return isFinite(v) ? v : '';    default:      return '';  }};module.exports = function(obj, sep, eq, name) {  sep = sep || '&';  eq = eq || '=';  if (obj === null) {    obj = undefined;  }  if (typeof obj === 'object') {    return map(objectKeys(obj), function(k) {      var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;      if (isArray(obj[k])) {        return map(obj[k], function(v) {          return ks + encodeURIComponent(stringifyPrimitive(v));        }).join(sep);      } else {        return ks + encodeURIComponent(stringifyPrimitive(obj[k]));      }    }).join(sep);  }  if (!name) return '';  return encodeURIComponent(stringifyPrimitive(name)) + eq +         encodeURIComponent(stringifyPrimitive(obj));};var isArray = Array.isArray || function (xs) {  return Object.prototype.toString.call(xs) === '[object Array]';};function map (xs, f) {  if (xs.map) return xs.map(f);  var res = [];  for (var i = 0; i < xs.length; i++) {    res.push(f(xs[i], i));  }  return res;}var objectKeys = Object.keys || function (obj) {  var res = [];  for (var key in obj) {    if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);  }  return res;};/***/ }),/* 31 *//***/ (function(module, exports, __webpack_require__) {var http = __webpack_require__(11)var url = __webpack_require__(8)var https = module.exportsfor (var key in http) {  if (http.hasOwnProperty(key)) https[key] = http[key]}https.request = function (params, cb) {  params = validateParams(params)  return http.request.call(this, params, cb)}https.get = function (params, cb) {  params = validateParams(params)  return http.get.call(this, params, cb)}function validateParams (params) {  if (typeof params === 'string') {    params = url.parse(params)  }  if (!params.protocol) {    params.protocol = 'https:'  }  if (params.protocol !== 'https:') {    throw new Error('Protocol "' + params.protocol + '" not supported. Expected "https:"')  }  return params}/***/ }),/* 32 *//***/ (function(module, exports, __webpack_require__) {/* WEBPACK VAR INJECTION */(function(Buffer, global, process) {var capability = __webpack_require__(12)var inherits = __webpack_require__(2)var response = __webpack_require__(13)var stream = __webpack_require__(14)var toArrayBuffer = __webpack_require__(40)var IncomingMessage = response.IncomingMessagevar rStates = response.readyStatesfunction decideMode (preferBinary, useFetch) {	if (capability.fetch && useFetch) {		return 'fetch'	} else if (capability.mozchunkedarraybuffer) {		return 'moz-chunked-arraybuffer'	} else if (capability.msstream) {		return 'ms-stream'	} else if (capability.arraybuffer && preferBinary) {		return 'arraybuffer'	} else if (capability.vbArray && preferBinary) {		return 'text:vbarray'	} else {		return 'text'	}}var ClientRequest = module.exports = function (opts) {	var self = this	stream.Writable.call(self)	self._opts = opts	self._body = []	self._headers = {}	if (opts.auth)		self.setHeader('Authorization', 'Basic ' + new Buffer(opts.auth).toString('base64'))	Object.keys(opts.headers).forEach(function (name) {		self.setHeader(name, opts.headers[name])	})	var preferBinary	var useFetch = true	if (opts.mode === 'disable-fetch' || ('requestTimeout' in opts && !capability.abortController)) {		// If the use of XHR should be preferred. Not typically needed.		useFetch = false		preferBinary = true	} else if (opts.mode === 'prefer-streaming') {		// If streaming is a high priority but binary compatibility and		// the accuracy of the 'content-type' header aren't		preferBinary = false	} else if (opts.mode === 'allow-wrong-content-type') {		// If streaming is more important than preserving the 'content-type' header		preferBinary = !capability.overrideMimeType	} else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {		// Use binary if text streaming may corrupt data or the content-type header, or for speed		preferBinary = true	} else {		throw new Error('Invalid value for opts.mode')	}	self._mode = decideMode(preferBinary, useFetch)	self._fetchTimer = null	self.on('finish', function () {		self._onFinish()	})}inherits(ClientRequest, stream.Writable)ClientRequest.prototype.setHeader = function (name, value) {	var self = this	var lowerName = name.toLowerCase()	// This check is not necessary, but it prevents warnings from browsers about setting unsafe	// headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but	// http-browserify did it, so I will too.	if (unsafeHeaders.indexOf(lowerName) !== -1)		return	self._headers[lowerName] = {		name: name,		value: value	}}ClientRequest.prototype.getHeader = function (name) {	var header = this._headers[name.toLowerCase()]	if (header)		return header.value	return null}ClientRequest.prototype.removeHeader = function (name) {	var self = this	delete self._headers[name.toLowerCase()]}ClientRequest.prototype._onFinish = function () {	var self = this	if (self._destroyed)		return	var opts = self._opts	var headersObj = self._headers	var body = null	if (opts.method !== 'GET' && opts.method !== 'HEAD') {		if (capability.arraybuffer) {			body = toArrayBuffer(Buffer.concat(self._body))		} else if (capability.blobConstructor) {			body = new global.Blob(self._body.map(function (buffer) {				return toArrayBuffer(buffer)			}), {				type: (headersObj['content-type'] || {}).value || ''			})		} else {			// get utf8 string			body = Buffer.concat(self._body).toString()		}	}	// create flattened list of headers	var headersList = []	Object.keys(headersObj).forEach(function (keyName) {		var name = headersObj[keyName].name		var value = headersObj[keyName].value		if (Array.isArray(value)) {			value.forEach(function (v) {				headersList.push([name, v])			})		} else {			headersList.push([name, value])		}	})	if (self._mode === 'fetch') {		var signal = null		var fetchTimer = null		if (capability.abortController) {			var controller = new AbortController()			signal = controller.signal			self._fetchAbortController = controller			if ('requestTimeout' in opts && opts.requestTimeout !== 0) {				self._fetchTimer = global.setTimeout(function () {					self.emit('requestTimeout')					if (self._fetchAbortController)						self._fetchAbortController.abort()				}, opts.requestTimeout)			}		}		global.fetch(self._opts.url, {			method: self._opts.method,			headers: headersList,			body: body || undefined,			mode: 'cors',			credentials: opts.withCredentials ? 'include' : 'same-origin',			signal: signal		}).then(function (response) {			self._fetchResponse = response			self._connect()		}, function (reason) {			global.clearTimeout(self._fetchTimer)			if (!self._destroyed)				self.emit('error', reason)		})	} else {		var xhr = self._xhr = new global.XMLHttpRequest()		try {			xhr.open(self._opts.method, self._opts.url, true)		} catch (err) {			process.nextTick(function () {				self.emit('error', err)			})			return		}		// Can't set responseType on really old browsers		if ('responseType' in xhr)			xhr.responseType = self._mode.split(':')[0]		if ('withCredentials' in xhr)			xhr.withCredentials = !!opts.withCredentials		if (self._mode === 'text' && 'overrideMimeType' in xhr)			xhr.overrideMimeType('text/plain; charset=x-user-defined')		if ('requestTimeout' in opts) {			xhr.timeout = opts.requestTimeout			xhr.ontimeout = function () {				self.emit('requestTimeout')			}		}		headersList.forEach(function (header) {			xhr.setRequestHeader(header[0], header[1])		})		self._response = null		xhr.onreadystatechange = function () {			switch (xhr.readyState) {				case rStates.LOADING:				case rStates.DONE:					self._onXHRProgress()					break			}		}		// Necessary for streaming in Firefox, since xhr.response is ONLY defined		// in onprogress, not in onreadystatechange with xhr.readyState = 3		if (self._mode === 'moz-chunked-arraybuffer') {			xhr.onprogress = function () {				self._onXHRProgress()			}		}		xhr.onerror = function () {			if (self._destroyed)				return			self.emit('error', new Error('XHR error'))		}		try {			xhr.send(body)		} catch (err) {			process.nextTick(function () {				self.emit('error', err)			})			return		}	}}/** * Checks if xhr.status is readable and non-zero, indicating no error. * Even though the spec says it should be available in readyState 3, * accessing it throws an exception in IE8 */function statusValid (xhr) {	try {		var status = xhr.status		return (status !== null && status !== 0)	} catch (e) {		return false	}}ClientRequest.prototype._onXHRProgress = function () {	var self = this	if (!statusValid(self._xhr) || self._destroyed)		return	if (!self._response)		self._connect()	self._response._onXHRProgress()}ClientRequest.prototype._connect = function () {	var self = this	if (self._destroyed)		return	self._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode, self._fetchTimer)	self._response.on('error', function(err) {		self.emit('error', err)	})	self.emit('response', self._response)}ClientRequest.prototype._write = function (chunk, encoding, cb) {	var self = this	self._body.push(chunk)	cb()}ClientRequest.prototype.abort = ClientRequest.prototype.destroy = function () {	var self = this	self._destroyed = true	global.clearTimeout(self._fetchTimer)	if (self._response)		self._response._destroyed = true	if (self._xhr)		self._xhr.abort()	else if (self._fetchAbortController)		self._fetchAbortController.abort()}ClientRequest.prototype.end = function (data, encoding, cb) {	var self = this	if (typeof data === 'function') {		cb = data		data = undefined	}	stream.Writable.prototype.end.call(self, data, encoding, cb)}ClientRequest.prototype.flushHeaders = function () {}ClientRequest.prototype.setTimeout = function () {}ClientRequest.prototype.setNoDelay = function () {}ClientRequest.prototype.setSocketKeepAlive = function () {}// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-methodvar unsafeHeaders = [	'accept-charset',	'accept-encoding',	'access-control-request-headers',	'access-control-request-method',	'connection',	'content-length',	'cookie',	'cookie2',	'date',	'dnt',	'expect',	'host',	'keep-alive',	'origin',	'referer',	'te',	'trailer',	'transfer-encoding',	'upgrade',	'via']/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3).Buffer, __webpack_require__(0), __webpack_require__(1)))/***/ }),/* 33 *//***/ (function(module, exports) {/* (ignored) *//***/ }),/* 34 *//***/ (function(module, exports, __webpack_require__) {"use strict";function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }var Buffer = __webpack_require__(7).Buffer;var util = __webpack_require__(35);function copyBuffer(src, target, offset) {  src.copy(target, offset);}module.exports = function () {  function BufferList() {    _classCallCheck(this, BufferList);    this.head = null;    this.tail = null;    this.length = 0;  }  BufferList.prototype.push = function push(v) {    var entry = { data: v, next: null };    if (this.length > 0) this.tail.next = entry;else this.head = entry;    this.tail = entry;    ++this.length;  };  BufferList.prototype.unshift = function unshift(v) {    var entry = { data: v, next: this.head };    if (this.length === 0) this.tail = entry;    this.head = entry;    ++this.length;  };  BufferList.prototype.shift = function shift() {    if (this.length === 0) return;    var ret = this.head.data;    if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;    --this.length;    return ret;  };  BufferList.prototype.clear = function clear() {    this.head = this.tail = null;    this.length = 0;  };  BufferList.prototype.join = function join(s) {    if (this.length === 0) return '';    var p = this.head;    var ret = '' + p.data;    while (p = p.next) {      ret += s + p.data;    }return ret;  };  BufferList.prototype.concat = function concat(n) {    if (this.length === 0) return Buffer.alloc(0);    if (this.length === 1) return this.head.data;    var ret = Buffer.allocUnsafe(n >>> 0);    var p = this.head;    var i = 0;    while (p) {      copyBuffer(p.data, ret, i);      i += p.data.length;      p = p.next;    }    return ret;  };  return BufferList;}();if (util && util.inspect && util.inspect.custom) {  module.exports.prototype[util.inspect.custom] = function () {    var obj = util.inspect({ length: this.length });    return this.constructor.name + ' ' + obj;  };}/***/ }),/* 35 *//***/ (function(module, exports) {/* (ignored) *//***/ }),/* 36 *//***/ (function(module, exports, __webpack_require__) {/* WEBPACK VAR INJECTION */(function(global) {var scope = (typeof global !== "undefined" && global) ||            (typeof self !== "undefined" && self) ||            window;var apply = Function.prototype.apply;// DOM APIs, for completenessexports.setTimeout = function() {  return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);};exports.setInterval = function() {  return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);};exports.clearTimeout =exports.clearInterval = function(timeout) {  if (timeout) {    timeout.close();  }};function Timeout(id, clearFn) {  this._id = id;  this._clearFn = clearFn;}Timeout.prototype.unref = Timeout.prototype.ref = function() {};Timeout.prototype.close = function() {  this._clearFn.call(scope, this._id);};// Does not start the time, just sets up the members needed.exports.enroll = function(item, msecs) {  clearTimeout(item._idleTimeoutId);  item._idleTimeout = msecs;};exports.unenroll = function(item) {  clearTimeout(item._idleTimeoutId);  item._idleTimeout = -1;};exports._unrefActive = exports.active = function(item) {  clearTimeout(item._idleTimeoutId);  var msecs = item._idleTimeout;  if (msecs >= 0) {    item._idleTimeoutId = setTimeout(function onTimeout() {      if (item._onTimeout)        item._onTimeout();    }, msecs);  }};// setimmediate attaches itself to the global object__webpack_require__(37);// On some exotic environments, it's not clear which object `setimmediate` was// able to install onto.  Search each possibility in the same order as the// `setimmediate` library.exports.setImmediate = (typeof self !== "undefined" && self.setImmediate) ||                       (typeof global !== "undefined" && global.setImmediate) ||                       (this && this.setImmediate);exports.clearImmediate = (typeof self !== "undefined" && self.clearImmediate) ||                         (typeof global !== "undefined" && global.clearImmediate) ||                         (this && this.clearImmediate);/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))/***/ }),/* 37 *//***/ (function(module, exports, __webpack_require__) {/* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) {    "use strict";    if (global.setImmediate) {        return;    }    var nextHandle = 1; // Spec says greater than zero    var tasksByHandle = {};    var currentlyRunningATask = false;    var doc = global.document;    var registerImmediate;    function setImmediate(callback) {      // Callback can either be a function or a string      if (typeof callback !== "function") {        callback = new Function("" + callback);      }      // Copy function arguments      var args = new Array(arguments.length - 1);      for (var i = 0; i < args.length; i++) {          args[i] = arguments[i + 1];      }      // Store and register the task      var task = { callback: callback, args: args };      tasksByHandle[nextHandle] = task;      registerImmediate(nextHandle);      return nextHandle++;    }    function clearImmediate(handle) {        delete tasksByHandle[handle];    }    function run(task) {        var callback = task.callback;        var args = task.args;        switch (args.length) {        case 0:            callback();            break;        case 1:            callback(args[0]);            break;        case 2:            callback(args[0], args[1]);            break;        case 3:            callback(args[0], args[1], args[2]);            break;        default:            callback.apply(undefined, args);            break;        }    }    function runIfPresent(handle) {        // From the spec: "Wait until any invocations of this algorithm started before this one have completed."        // So if we're currently running a task, we'll need to delay this invocation.        if (currentlyRunningATask) {            // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a            // "too much recursion" error.            setTimeout(runIfPresent, 0, handle);        } else {            var task = tasksByHandle[handle];            if (task) {                currentlyRunningATask = true;                try {                    run(task);                } finally {                    clearImmediate(handle);                    currentlyRunningATask = false;                }            }        }    }    function installNextTickImplementation() {        registerImmediate = function(handle) {            process.nextTick(function () { runIfPresent(handle); });        };    }    function canUsePostMessage() {        // The test against `importScripts` prevents this implementation from being installed inside a web worker,        // where `global.postMessage` means something completely different and can't be used for this purpose.        if (global.postMessage && !global.importScripts) {            var postMessageIsAsynchronous = true;            var oldOnMessage = global.onmessage;            global.onmessage = function() {                postMessageIsAsynchronous = false;            };            global.postMessage("", "*");            global.onmessage = oldOnMessage;            return postMessageIsAsynchronous;        }    }    function installPostMessageImplementation() {        // Installs an event handler on `global` for the `message` event: see        // * https://developer.mozilla.org/en/DOM/window.postMessage        // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages        var messagePrefix = "setImmediate$" + Math.random() + "$";        var onGlobalMessage = function(event) {            if (event.source === global &&                typeof event.data === "string" &&                event.data.indexOf(messagePrefix) === 0) {                runIfPresent(+event.data.slice(messagePrefix.length));            }        };        if (global.addEventListener) {            global.addEventListener("message", onGlobalMessage, false);        } else {            global.attachEvent("onmessage", onGlobalMessage);        }        registerImmediate = function(handle) {            global.postMessage(messagePrefix + handle, "*");        };    }    function installMessageChannelImplementation() {        var channel = new MessageChannel();        channel.port1.onmessage = function(event) {            var handle = event.data;            runIfPresent(handle);        };        registerImmediate = function(handle) {            channel.port2.postMessage(handle);        };    }    function installReadyStateChangeImplementation() {        var html = doc.documentElement;        registerImmediate = function(handle) {            // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted            // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.            var script = doc.createElement("script");            script.onreadystatechange = function () {                runIfPresent(handle);                script.onreadystatechange = null;                html.removeChild(script);                script = null;            };            html.appendChild(script);        };    }    function installSetTimeoutImplementation() {        registerImmediate = function(handle) {            setTimeout(runIfPresent, 0, handle);        };    }    // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.    var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);    attachTo = attachTo && attachTo.setTimeout ? attachTo : global;    // Don't get fooled by e.g. browserify environments.    if ({}.toString.call(global.process) === "[object process]") {        // For Node.js before 0.9        installNextTickImplementation();    } else if (canUsePostMessage()) {        // For non-IE10 modern browsers        installPostMessageImplementation();    } else if (global.MessageChannel) {        // For web workers, where supported        installMessageChannelImplementation();    } else if (doc && "onreadystatechange" in doc.createElement("script")) {        // For IE 6–8        installReadyStateChangeImplementation();    } else {        // For older browsers        installSetTimeoutImplementation();    }    attachTo.setImmediate = setImmediate;    attachTo.clearImmediate = clearImmediate;}(typeof self === "undefined" ? typeof global === "undefined" ? this : global : self));/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0), __webpack_require__(1)))/***/ }),/* 38 *//***/ (function(module, exports, __webpack_require__) {/* WEBPACK VAR INJECTION */(function(global) {/** * Module exports. */module.exports = deprecate;/** * Mark that a method should not be used. * Returns a modified function which warns once by default. * * If `localStorage.noDeprecation = true` is set, then it is a no-op. * * If `localStorage.throwDeprecation = true` is set, then deprecated functions * will throw an Error when invoked. * * If `localStorage.traceDeprecation = true` is set, then deprecated functions * will invoke `console.trace()` instead of `console.error()`. * * @param {Function} fn - the function to deprecate * @param {String} msg - the string to print to the console when `fn` is invoked * @returns {Function} a new "deprecated" version of `fn` * @api public */function deprecate (fn, msg) {  if (config('noDeprecation')) {    return fn;  }  var warned = false;  function deprecated() {    if (!warned) {      if (config('throwDeprecation')) {        throw new Error(msg);      } else if (config('traceDeprecation')) {        console.trace(msg);      } else {        console.warn(msg);      }      warned = true;    }    return fn.apply(this, arguments);  }  return deprecated;}/** * Checks `localStorage` for boolean values for the given `name`. * * @param {String} name * @returns {Boolean} * @api private */function config (name) {  // accessing global.localStorage can trigger a DOMException in sandboxed iframes  try {    if (!global.localStorage) return false;  } catch (_) {    return false;  }  var val = global.localStorage[name];  if (null == val) return false;  return String(val).toLowerCase() === 'true';}/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))/***/ }),/* 39 *//***/ (function(module, exports, __webpack_require__) {"use strict";// Copyright Joyent, Inc. and other Node contributors.//// Permission is hereby granted, free of charge, to any person obtaining a// copy of this software and associated documentation files (the// "Software"), to deal in the Software without restriction, including// without limitation the rights to use, copy, modify, merge, publish,// distribute, sublicense, and/or sell copies of the Software, and to permit// persons to whom the Software is furnished to do so, subject to the// following conditions://// The above copyright notice and this permission notice shall be included// in all copies or substantial portions of the Software.//// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE// USE OR OTHER DEALINGS IN THE SOFTWARE.// a passthrough stream.// basically just the most minimal sort of Transform stream.// Every written chunk gets output as-is.module.exports = PassThrough;var Transform = __webpack_require__(20);/*<replacement>*/var util = Object.create(__webpack_require__(5));util.inherits = __webpack_require__(2);/*</replacement>*/util.inherits(PassThrough, Transform);function PassThrough(options) {  if (!(this instanceof PassThrough)) return new PassThrough(options);  Transform.call(this, options);}PassThrough.prototype._transform = function (chunk, encoding, cb) {  cb(null, chunk);};/***/ }),/* 40 *//***/ (function(module, exports, __webpack_require__) {var Buffer = __webpack_require__(3).Buffermodule.exports = function (buf) {	// If the buffer is backed by a Uint8Array, a faster version will work	if (buf instanceof Uint8Array) {		// If the buffer isn't a subarray, return the underlying ArrayBuffer		if (buf.byteOffset === 0 && buf.byteLength === buf.buffer.byteLength) {			return buf.buffer		} else if (typeof buf.buffer.slice === 'function') {			// Otherwise we need to get a proper copy			return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength)		}	}	if (Buffer.isBuffer(buf)) {		// This is the slow version that will work with any Buffer		// implementation (even in old browsers)		var arrayCopy = new Uint8Array(buf.length)		var len = buf.length		for (var i = 0; i < len; i++) {			arrayCopy[i] = buf[i]		}		return arrayCopy.buffer	} else {		throw new Error('Argument must be a Buffer')	}}/***/ }),/* 41 *//***/ (function(module, exports) {module.exports = extendvar hasOwnProperty = Object.prototype.hasOwnProperty;function extend() {    var target = {}    for (var i = 0; i < arguments.length; i++) {        var source = arguments[i]        for (var key in source) {            if (hasOwnProperty.call(source, key)) {                target[key] = source[key]            }        }    }    return target}/***/ }),/* 42 *//***/ (function(module, exports) {module.exports = {  "100": "Continue",  "101": "Switching Protocols",  "102": "Processing",  "200": "OK",  "201": "Created",  "202": "Accepted",  "203": "Non-Authoritative Information",  "204": "No Content",  "205": "Reset Content",  "206": "Partial Content",  "207": "Multi-Status",  "208": "Already Reported",  "226": "IM Used",  "300": "Multiple Choices",  "301": "Moved Permanently",  "302": "Found",  "303": "See Other",  "304": "Not Modified",  "305": "Use Proxy",  "307": "Temporary Redirect",  "308": "Permanent Redirect",  "400": "Bad Request",  "401": "Unauthorized",  "402": "Payment Required",  "403": "Forbidden",  "404": "Not Found",  "405": "Method Not Allowed",  "406": "Not Acceptable",  "407": "Proxy Authentication Required",  "408": "Request Timeout",  "409": "Conflict",  "410": "Gone",  "411": "Length Required",  "412": "Precondition Failed",  "413": "Payload Too Large",  "414": "URI Too Long",  "415": "Unsupported Media Type",  "416": "Range Not Satisfiable",  "417": "Expectation Failed",  "418": "I'm a teapot",  "421": "Misdirected Request",  "422": "Unprocessable Entity",  "423": "Locked",  "424": "Failed Dependency",  "425": "Unordered Collection",  "426": "Upgrade Required",  "428": "Precondition Required",  "429": "Too Many Requests",  "431": "Request Header Fields Too Large",  "451": "Unavailable For Legal Reasons",  "500": "Internal Server Error",  "501": "Not Implemented",  "502": "Bad Gateway",  "503": "Service Unavailable",  "504": "Gateway Timeout",  "505": "HTTP Version Not Supported",  "506": "Variant Also Negotiates",  "507": "Insufficient Storage",  "508": "Loop Detected",  "509": "Bandwidth Limit Exceeded",  "510": "Not Extended",  "511": "Network Authentication Required"}/***/ }),/* 43 *//***/ (function(module, exports, __webpack_require__) {/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.//// Permission is hereby granted, free of charge, to any person obtaining a// copy of this software and associated documentation files (the// "Software"), to deal in the Software without restriction, including// without limitation the rights to use, copy, modify, merge, publish,// distribute, sublicense, and/or sell copies of the Software, and to permit// persons to whom the Software is furnished to do so, subject to the// following conditions://// The above copyright notice and this permission notice shall be included// in all copies or substantial portions of the Software.//// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE// USE OR OTHER DEALINGS IN THE SOFTWARE.var getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||  function getOwnPropertyDescriptors(obj) {    var keys = Object.keys(obj);    var descriptors = {};    for (var i = 0; i < keys.length; i++) {      descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);    }    return descriptors;  };var formatRegExp = /%[sdj%]/g;exports.format = function(f) {  if (!isString(f)) {    var objects = [];    for (var i = 0; i < arguments.length; i++) {      objects.push(inspect(arguments[i]));    }    return objects.join(' ');  }  var i = 1;  var args = arguments;  var len = args.length;  var str = String(f).replace(formatRegExp, function(x) {    if (x === '%%') return '%';    if (i >= len) return x;    switch (x) {      case '%s': return String(args[i++]);      case '%d': return Number(args[i++]);      case '%j':        try {          return JSON.stringify(args[i++]);        } catch (_) {          return '[Circular]';        }      default:        return x;    }  });  for (var x = args[i]; i < len; x = args[++i]) {    if (isNull(x) || !isObject(x)) {      str += ' ' + x;    } else {      str += ' ' + inspect(x);    }  }  return str;};// Mark that a method should not be used.// Returns a modified function which warns once by default.// If --no-deprecation is set, then it is a no-op.exports.deprecate = function(fn, msg) {  if (typeof process !== 'undefined' && process.noDeprecation === true) {    return fn;  }  // Allow for deprecating things in the process of starting up.  if (typeof process === 'undefined') {    return function() {      return exports.deprecate(fn, msg).apply(this, arguments);    };  }  var warned = false;  function deprecated() {    if (!warned) {      if (process.throwDeprecation) {        throw new Error(msg);      } else if (process.traceDeprecation) {        console.trace(msg);      } else {        console.error(msg);      }      warned = true;    }    return fn.apply(this, arguments);  }  return deprecated;};var debugs = {};var debugEnviron;exports.debuglog = function(set) {  if (isUndefined(debugEnviron))    debugEnviron = process.env.NODE_DEBUG || '';  set = set.toUpperCase();  if (!debugs[set]) {    if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {      var pid = process.pid;      debugs[set] = function() {        var msg = exports.format.apply(exports, arguments);        console.error('%s %d: %s', set, pid, msg);      };    } else {      debugs[set] = function() {};    }  }  return debugs[set];};/** * Echos the value of a value. Trys to print the value out * in the best way possible given the different types. * * @param {Object} obj The object to print out. * @param {Object} opts Optional options object that alters the output. *//* legacy: obj, showHidden, depth, colors*/function inspect(obj, opts) {  // default options  var ctx = {    seen: [],    stylize: stylizeNoColor  };  // legacy...  if (arguments.length >= 3) ctx.depth = arguments[2];  if (arguments.length >= 4) ctx.colors = arguments[3];  if (isBoolean(opts)) {    // legacy...    ctx.showHidden = opts;  } else if (opts) {    // got an "options" object    exports._extend(ctx, opts);  }  // set default options  if (isUndefined(ctx.showHidden)) ctx.showHidden = false;  if (isUndefined(ctx.depth)) ctx.depth = 2;  if (isUndefined(ctx.colors)) ctx.colors = false;  if (isUndefined(ctx.customInspect)) ctx.customInspect = true;  if (ctx.colors) ctx.stylize = stylizeWithColor;  return formatValue(ctx, obj, ctx.depth);}exports.inspect = inspect;// http://en.wikipedia.org/wiki/ANSI_escape_code#graphicsinspect.colors = {  'bold' : [1, 22],  'italic' : [3, 23],  'underline' : [4, 24],  'inverse' : [7, 27],  'white' : [37, 39],  'grey' : [90, 39],  'black' : [30, 39],  'blue' : [34, 39],  'cyan' : [36, 39],  'green' : [32, 39],  'magenta' : [35, 39],  'red' : [31, 39],  'yellow' : [33, 39]};// Don't use 'blue' not visible on cmd.exeinspect.styles = {  'special': 'cyan',  'number': 'yellow',  'boolean': 'yellow',  'undefined': 'grey',  'null': 'bold',  'string': 'green',  'date': 'magenta',  // "name": intentionally not styling  'regexp': 'red'};function stylizeWithColor(str, styleType) {  var style = inspect.styles[styleType];  if (style) {    return '\u001b[' + inspect.colors[style][0] + 'm' + str +           '\u001b[' + inspect.colors[style][1] + 'm';  } else {    return str;  }}function stylizeNoColor(str, styleType) {  return str;}function arrayToHash(array) {  var hash = {};  array.forEach(function(val, idx) {    hash[val] = true;  });  return hash;}function formatValue(ctx, value, recurseTimes) {  // Provide a hook for user-specified inspect functions.  // Check that value is an object with an inspect function on it  if (ctx.customInspect &&      value &&      isFunction(value.inspect) &&      // Filter out the util module, it's inspect function is special      value.inspect !== exports.inspect &&      // Also filter out any prototype objects using the circular check.      !(value.constructor && value.constructor.prototype === value)) {    var ret = value.inspect(recurseTimes, ctx);    if (!isString(ret)) {      ret = formatValue(ctx, ret, recurseTimes);    }    return ret;  }  // Primitive types cannot have properties  var primitive = formatPrimitive(ctx, value);  if (primitive) {    return primitive;  }  // Look up the keys of the object.  var keys = Object.keys(value);  var visibleKeys = arrayToHash(keys);  if (ctx.showHidden) {    keys = Object.getOwnPropertyNames(value);  }  // IE doesn't make error fields non-enumerable  // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx  if (isError(value)      && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {    return formatError(value);  }  // Some type of object without properties can be shortcutted.  if (keys.length === 0) {    if (isFunction(value)) {      var name = value.name ? ': ' + value.name : '';      return ctx.stylize('[Function' + name + ']', 'special');    }    if (isRegExp(value)) {      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');    }    if (isDate(value)) {      return ctx.stylize(Date.prototype.toString.call(value), 'date');    }    if (isError(value)) {      return formatError(value);    }  }  var base = '', array = false, braces = ['{', '}'];  // Make Array say that they are Array  if (isArray(value)) {    array = true;    braces = ['[', ']'];  }  // Make functions say that they are functions  if (isFunction(value)) {    var n = value.name ? ': ' + value.name : '';    base = ' [Function' + n + ']';  }  // Make RegExps say that they are RegExps  if (isRegExp(value)) {    base = ' ' + RegExp.prototype.toString.call(value);  }  // Make dates with properties first say the date  if (isDate(value)) {    base = ' ' + Date.prototype.toUTCString.call(value);  }  // Make error with message first say the error  if (isError(value)) {    base = ' ' + formatError(value);  }  if (keys.length === 0 && (!array || value.length == 0)) {    return braces[0] + base + braces[1];  }  if (recurseTimes < 0) {    if (isRegExp(value)) {      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');    } else {      return ctx.stylize('[Object]', 'special');    }  }  ctx.seen.push(value);  var output;  if (array) {    output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);  } else {    output = keys.map(function(key) {      return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);    });  }  ctx.seen.pop();  return reduceToSingleString(output, base, braces);}function formatPrimitive(ctx, value) {  if (isUndefined(value))    return ctx.stylize('undefined', 'undefined');  if (isString(value)) {    var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')                                             .replace(/'/g, "\\'")                                             .replace(/\\"/g, '"') + '\'';    return ctx.stylize(simple, 'string');  }  if (isNumber(value))    return ctx.stylize('' + value, 'number');  if (isBoolean(value))    return ctx.stylize('' + value, 'boolean');  // For some reason typeof null is "object", so special case here.  if (isNull(value))    return ctx.stylize('null', 'null');}function formatError(value) {  return '[' + Error.prototype.toString.call(value) + ']';}function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {  var output = [];  for (var i = 0, l = value.length; i < l; ++i) {    if (hasOwnProperty(value, String(i))) {      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,          String(i), true));    } else {      output.push('');    }  }  keys.forEach(function(key) {    if (!key.match(/^\d+$/)) {      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,          key, true));    }  });  return output;}function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {  var name, str, desc;  desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };  if (desc.get) {    if (desc.set) {      str = ctx.stylize('[Getter/Setter]', 'special');    } else {      str = ctx.stylize('[Getter]', 'special');    }  } else {    if (desc.set) {      str = ctx.stylize('[Setter]', 'special');    }  }  if (!hasOwnProperty(visibleKeys, key)) {    name = '[' + key + ']';  }  if (!str) {    if (ctx.seen.indexOf(desc.value) < 0) {      if (isNull(recurseTimes)) {        str = formatValue(ctx, desc.value, null);      } else {        str = formatValue(ctx, desc.value, recurseTimes - 1);      }      if (str.indexOf('\n') > -1) {        if (array) {          str = str.split('\n').map(function(line) {            return '  ' + line;          }).join('\n').substr(2);        } else {          str = '\n' + str.split('\n').map(function(line) {            return '   ' + line;          }).join('\n');        }      }    } else {      str = ctx.stylize('[Circular]', 'special');    }  }  if (isUndefined(name)) {    if (array && key.match(/^\d+$/)) {      return str;    }    name = JSON.stringify('' + key);    if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {      name = name.substr(1, name.length - 2);      name = ctx.stylize(name, 'name');    } else {      name = name.replace(/'/g, "\\'")                 .replace(/\\"/g, '"')                 .replace(/(^"|"$)/g, "'");      name = ctx.stylize(name, 'string');    }  }  return name + ': ' + str;}function reduceToSingleString(output, base, braces) {  var numLinesEst = 0;  var length = output.reduce(function(prev, cur) {    numLinesEst++;    if (cur.indexOf('\n') >= 0) numLinesEst++;    return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1;  }, 0);  if (length > 60) {    return braces[0] +           (base === '' ? '' : base + '\n ') +           ' ' +           output.join(',\n  ') +           ' ' +           braces[1];  }  return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];}// NOTE: These type checking functions intentionally don't use `instanceof`// because it is fragile and can be easily faked with `Object.create()`.function isArray(ar) {  return Array.isArray(ar);}exports.isArray = isArray;function isBoolean(arg) {  return typeof arg === 'boolean';}exports.isBoolean = isBoolean;function isNull(arg) {  return arg === null;}exports.isNull = isNull;function isNullOrUndefined(arg) {  return arg == null;}exports.isNullOrUndefined = isNullOrUndefined;function isNumber(arg) {  return typeof arg === 'number';}exports.isNumber = isNumber;function isString(arg) {  return typeof arg === 'string';}exports.isString = isString;function isSymbol(arg) {  return typeof arg === 'symbol';}exports.isSymbol = isSymbol;function isUndefined(arg) {  return arg === void 0;}exports.isUndefined = isUndefined;function isRegExp(re) {  return isObject(re) && objectToString(re) === '[object RegExp]';}exports.isRegExp = isRegExp;function isObject(arg) {  return typeof arg === 'object' && arg !== null;}exports.isObject = isObject;function isDate(d) {  return isObject(d) && objectToString(d) === '[object Date]';}exports.isDate = isDate;function isError(e) {  return isObject(e) &&      (objectToString(e) === '[object Error]' || e instanceof Error);}exports.isError = isError;function isFunction(arg) {  return typeof arg === 'function';}exports.isFunction = isFunction;function isPrimitive(arg) {  return arg === null ||         typeof arg === 'boolean' ||         typeof arg === 'number' ||         typeof arg === 'string' ||         typeof arg === 'symbol' ||  // ES6 symbol         typeof arg === 'undefined';}exports.isPrimitive = isPrimitive;exports.isBuffer = __webpack_require__(44);function objectToString(o) {  return Object.prototype.toString.call(o);}function pad(n) {  return n < 10 ? '0' + n.toString(10) : n.toString(10);}var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',              'Oct', 'Nov', 'Dec'];// 26 Feb 16:19:34function timestamp() {  var d = new Date();  var time = [pad(d.getHours()),              pad(d.getMinutes()),              pad(d.getSeconds())].join(':');  return [d.getDate(), months[d.getMonth()], time].join(' ');}// log is just a thin wrapper to console.log that prepends a timestampexports.log = function() {  console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));};/** * Inherit the prototype methods from one constructor into another. * * The Function.prototype.inherits from lang.js rewritten as a standalone * function (not on Function.prototype). NOTE: If this file is to be loaded * during bootstrapping this function needs to be rewritten using some native * functions as prototype setup using normal JavaScript does not work as * expected during bootstrapping (see mirror.js in r114903). * * @param {function} ctor Constructor function which needs to inherit the *     prototype. * @param {function} superCtor Constructor function to inherit prototype from. */exports.inherits = __webpack_require__(2);exports._extend = function(origin, add) {  // Don't do anything if add isn't an object  if (!add || !isObject(add)) return origin;  var keys = Object.keys(add);  var i = keys.length;  while (i--) {    origin[keys[i]] = add[keys[i]];  }  return origin;};function hasOwnProperty(obj, prop) {  return Object.prototype.hasOwnProperty.call(obj, prop);}var kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;exports.promisify = function promisify(original) {  if (typeof original !== 'function')    throw new TypeError('The "original" argument must be of type Function');  if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {    var fn = original[kCustomPromisifiedSymbol];    if (typeof fn !== 'function') {      throw new TypeError('The "util.promisify.custom" argument must be of type Function');    }    Object.defineProperty(fn, kCustomPromisifiedSymbol, {      value: fn, enumerable: false, writable: false, configurable: true    });    return fn;  }  function fn() {    var promiseResolve, promiseReject;    var promise = new Promise(function (resolve, reject) {      promiseResolve = resolve;      promiseReject = reject;    });    var args = [];    for (var i = 0; i < arguments.length; i++) {      args.push(arguments[i]);    }    args.push(function (err, value) {      if (err) {        promiseReject(err);      } else {        promiseResolve(value);      }    });    try {      original.apply(this, args);    } catch (err) {      promiseReject(err);    }    return promise;  }  Object.setPrototypeOf(fn, Object.getPrototypeOf(original));  if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {    value: fn, enumerable: false, writable: false, configurable: true  });  return Object.defineProperties(    fn,    getOwnPropertyDescriptors(original)  );}exports.promisify.custom = kCustomPromisifiedSymbolfunction callbackifyOnRejected(reason, cb) {  // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).  // Because `null` is a special error value in callbacks which means "no error  // occurred", we error-wrap so the callback consumer can distinguish between  // "the promise rejected with null" or "the promise fulfilled with undefined".  if (!reason) {    var newReason = new Error('Promise was rejected with a falsy value');    newReason.reason = reason;    reason = newReason;  }  return cb(reason);}function callbackify(original) {  if (typeof original !== 'function') {    throw new TypeError('The "original" argument must be of type Function');  }  // We DO NOT return the promise as it gives the user a false sense that  // the promise is actually somehow related to the callback's execution  // and that the callback throwing will reject the promise.  function callbackified() {    var args = [];    for (var i = 0; i < arguments.length; i++) {      args.push(arguments[i]);    }    var maybeCb = args.pop();    if (typeof maybeCb !== 'function') {      throw new TypeError('The last argument must be of type Function');    }    var self = this;    var cb = function() {      return maybeCb.apply(self, arguments);    };    // In true node style we process the callback on `nextTick` with all the    // implications (stack, `uncaughtException`, `async_hooks`)    original.apply(this, args)      .then(function(ret) { process.nextTick(cb, null, ret) },            function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });  }  Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));  Object.defineProperties(callbackified,                          getOwnPropertyDescriptors(original));  return callbackified;}exports.callbackify = callbackify;/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))/***/ }),/* 44 *//***/ (function(module, exports) {module.exports = function isBuffer(arg) {  return arg && typeof arg === 'object'    && typeof arg.copy === 'function'    && typeof arg.fill === 'function'    && typeof arg.readUInt8 === 'function';}/***/ })/******/ ]);
 |