| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828 | 
							- import require$$0$1, { format } from 'util';
 
- import { normalize as normalize$1, resolve } from 'path';
 
- import { readFileSync } from 'fs';
 
- import path$1 from 'node:path';
 
- import process$2 from 'node:process';
 
- import { fileURLToPath } from 'node:url';
 
- import fs$1 from 'node:fs';
 
- import require$$0$2 from 'os';
 
- import require$$0 from 'url';
 
- function camelCase$1(str) {
 
-     const isCamelCase = str !== str.toLowerCase() && str !== str.toUpperCase();
 
-     if (!isCamelCase) {
 
-         str = str.toLowerCase();
 
-     }
 
-     if (str.indexOf('-') === -1 && str.indexOf('_') === -1) {
 
-         return str;
 
-     }
 
-     else {
 
-         let camelcase = '';
 
-         let nextChrUpper = false;
 
-         const leadingHyphens = str.match(/^-+/);
 
-         for (let i = leadingHyphens ? leadingHyphens[0].length : 0; i < str.length; i++) {
 
-             let chr = str.charAt(i);
 
-             if (nextChrUpper) {
 
-                 nextChrUpper = false;
 
-                 chr = chr.toUpperCase();
 
-             }
 
-             if (i !== 0 && (chr === '-' || chr === '_')) {
 
-                 nextChrUpper = true;
 
-             }
 
-             else if (chr !== '-' && chr !== '_') {
 
-                 camelcase += chr;
 
-             }
 
-         }
 
-         return camelcase;
 
-     }
 
- }
 
- function decamelize$1(str, joinString) {
 
-     const lowercase = str.toLowerCase();
 
-     joinString = joinString || '-';
 
-     let notCamelcase = '';
 
-     for (let i = 0; i < str.length; i++) {
 
-         const chrLower = lowercase.charAt(i);
 
-         const chrString = str.charAt(i);
 
-         if (chrLower !== chrString && i > 0) {
 
-             notCamelcase += `${joinString}${lowercase.charAt(i)}`;
 
-         }
 
-         else {
 
-             notCamelcase += chrString;
 
-         }
 
-     }
 
-     return notCamelcase;
 
- }
 
- function looksLikeNumber(x) {
 
-     if (x === null || x === undefined)
 
-         return false;
 
-     if (typeof x === 'number')
 
-         return true;
 
-     if (/^0x[0-9a-f]+$/i.test(x))
 
-         return true;
 
-     if (/^0[^.]/.test(x))
 
-         return false;
 
-     return /^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x);
 
- }
 
- function tokenizeArgString(argString) {
 
-     if (Array.isArray(argString)) {
 
-         return argString.map(e => typeof e !== 'string' ? e + '' : e);
 
-     }
 
-     argString = argString.trim();
 
-     let i = 0;
 
-     let prevC = null;
 
-     let c = null;
 
-     let opening = null;
 
-     const args = [];
 
-     for (let ii = 0; ii < argString.length; ii++) {
 
-         prevC = c;
 
-         c = argString.charAt(ii);
 
-         if (c === ' ' && !opening) {
 
-             if (!(prevC === ' ')) {
 
-                 i++;
 
-             }
 
-             continue;
 
-         }
 
-         if (c === opening) {
 
-             opening = null;
 
-         }
 
-         else if ((c === "'" || c === '"') && !opening) {
 
-             opening = c;
 
-         }
 
-         if (!args[i])
 
-             args[i] = '';
 
-         args[i] += c;
 
-     }
 
-     return args;
 
- }
 
- var DefaultValuesForTypeKey;
 
- (function (DefaultValuesForTypeKey) {
 
-     DefaultValuesForTypeKey["BOOLEAN"] = "boolean";
 
-     DefaultValuesForTypeKey["STRING"] = "string";
 
-     DefaultValuesForTypeKey["NUMBER"] = "number";
 
-     DefaultValuesForTypeKey["ARRAY"] = "array";
 
- })(DefaultValuesForTypeKey || (DefaultValuesForTypeKey = {}));
 
- let mixin;
 
- class YargsParser {
 
-     constructor(_mixin) {
 
-         mixin = _mixin;
 
-     }
 
-     parse(argsInput, options) {
 
-         const opts = Object.assign({
 
-             alias: undefined,
 
-             array: undefined,
 
-             boolean: undefined,
 
-             config: undefined,
 
-             configObjects: undefined,
 
-             configuration: undefined,
 
-             coerce: undefined,
 
-             count: undefined,
 
-             default: undefined,
 
-             envPrefix: undefined,
 
-             narg: undefined,
 
-             normalize: undefined,
 
-             string: undefined,
 
-             number: undefined,
 
-             __: undefined,
 
-             key: undefined
 
-         }, options);
 
-         const args = tokenizeArgString(argsInput);
 
-         const inputIsString = typeof argsInput === 'string';
 
-         const aliases = combineAliases(Object.assign(Object.create(null), opts.alias));
 
-         const configuration = Object.assign({
 
-             'boolean-negation': true,
 
-             'camel-case-expansion': true,
 
-             'combine-arrays': false,
 
-             'dot-notation': true,
 
-             'duplicate-arguments-array': true,
 
-             'flatten-duplicate-arrays': true,
 
-             'greedy-arrays': true,
 
-             'halt-at-non-option': false,
 
-             'nargs-eats-options': false,
 
-             'negation-prefix': 'no-',
 
-             'parse-numbers': true,
 
-             'parse-positional-numbers': true,
 
-             'populate--': false,
 
-             'set-placeholder-key': false,
 
-             'short-option-groups': true,
 
-             'strip-aliased': false,
 
-             'strip-dashed': false,
 
-             'unknown-options-as-args': false
 
-         }, opts.configuration);
 
-         const defaults = Object.assign(Object.create(null), opts.default);
 
-         const configObjects = opts.configObjects || [];
 
-         const envPrefix = opts.envPrefix;
 
-         const notFlagsOption = configuration['populate--'];
 
-         const notFlagsArgv = notFlagsOption ? '--' : '_';
 
-         const newAliases = Object.create(null);
 
-         const defaulted = Object.create(null);
 
-         const __ = opts.__ || mixin.format;
 
-         const flags = {
 
-             aliases: Object.create(null),
 
-             arrays: Object.create(null),
 
-             bools: Object.create(null),
 
-             strings: Object.create(null),
 
-             numbers: Object.create(null),
 
-             counts: Object.create(null),
 
-             normalize: Object.create(null),
 
-             configs: Object.create(null),
 
-             nargs: Object.create(null),
 
-             coercions: Object.create(null),
 
-             keys: []
 
-         };
 
-         const negative = /^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/;
 
-         const negatedBoolean = new RegExp('^--' + configuration['negation-prefix'] + '(.+)');
 
-         [].concat(opts.array || []).filter(Boolean).forEach(function (opt) {
 
-             const key = typeof opt === 'object' ? opt.key : opt;
 
-             const assignment = Object.keys(opt).map(function (key) {
 
-                 const arrayFlagKeys = {
 
-                     boolean: 'bools',
 
-                     string: 'strings',
 
-                     number: 'numbers'
 
-                 };
 
-                 return arrayFlagKeys[key];
 
-             }).filter(Boolean).pop();
 
-             if (assignment) {
 
-                 flags[assignment][key] = true;
 
-             }
 
-             flags.arrays[key] = true;
 
-             flags.keys.push(key);
 
-         });
 
-         [].concat(opts.boolean || []).filter(Boolean).forEach(function (key) {
 
-             flags.bools[key] = true;
 
-             flags.keys.push(key);
 
-         });
 
-         [].concat(opts.string || []).filter(Boolean).forEach(function (key) {
 
-             flags.strings[key] = true;
 
-             flags.keys.push(key);
 
-         });
 
-         [].concat(opts.number || []).filter(Boolean).forEach(function (key) {
 
-             flags.numbers[key] = true;
 
-             flags.keys.push(key);
 
-         });
 
-         [].concat(opts.count || []).filter(Boolean).forEach(function (key) {
 
-             flags.counts[key] = true;
 
-             flags.keys.push(key);
 
-         });
 
-         [].concat(opts.normalize || []).filter(Boolean).forEach(function (key) {
 
-             flags.normalize[key] = true;
 
-             flags.keys.push(key);
 
-         });
 
-         if (typeof opts.narg === 'object') {
 
-             Object.entries(opts.narg).forEach(([key, value]) => {
 
-                 if (typeof value === 'number') {
 
-                     flags.nargs[key] = value;
 
-                     flags.keys.push(key);
 
-                 }
 
-             });
 
-         }
 
-         if (typeof opts.coerce === 'object') {
 
-             Object.entries(opts.coerce).forEach(([key, value]) => {
 
-                 if (typeof value === 'function') {
 
-                     flags.coercions[key] = value;
 
-                     flags.keys.push(key);
 
-                 }
 
-             });
 
-         }
 
-         if (typeof opts.config !== 'undefined') {
 
-             if (Array.isArray(opts.config) || typeof opts.config === 'string') {
 
-                 [].concat(opts.config).filter(Boolean).forEach(function (key) {
 
-                     flags.configs[key] = true;
 
-                 });
 
-             }
 
-             else if (typeof opts.config === 'object') {
 
-                 Object.entries(opts.config).forEach(([key, value]) => {
 
-                     if (typeof value === 'boolean' || typeof value === 'function') {
 
-                         flags.configs[key] = value;
 
-                     }
 
-                 });
 
-             }
 
-         }
 
-         extendAliases(opts.key, aliases, opts.default, flags.arrays);
 
-         Object.keys(defaults).forEach(function (key) {
 
-             (flags.aliases[key] || []).forEach(function (alias) {
 
-                 defaults[alias] = defaults[key];
 
-             });
 
-         });
 
-         let error = null;
 
-         checkConfiguration();
 
-         let notFlags = [];
 
-         const argv = Object.assign(Object.create(null), { _: [] });
 
-         const argvReturn = {};
 
-         for (let i = 0; i < args.length; i++) {
 
-             const arg = args[i];
 
-             const truncatedArg = arg.replace(/^-{3,}/, '---');
 
-             let broken;
 
-             let key;
 
-             let letters;
 
-             let m;
 
-             let next;
 
-             let value;
 
-             if (arg !== '--' && /^-/.test(arg) && isUnknownOptionAsArg(arg)) {
 
-                 pushPositional(arg);
 
-             }
 
-             else if (truncatedArg.match(/^---+(=|$)/)) {
 
-                 pushPositional(arg);
 
-                 continue;
 
-             }
 
-             else if (arg.match(/^--.+=/) || (!configuration['short-option-groups'] && arg.match(/^-.+=/))) {
 
-                 m = arg.match(/^--?([^=]+)=([\s\S]*)$/);
 
-                 if (m !== null && Array.isArray(m) && m.length >= 3) {
 
-                     if (checkAllAliases(m[1], flags.arrays)) {
 
-                         i = eatArray(i, m[1], args, m[2]);
 
-                     }
 
-                     else if (checkAllAliases(m[1], flags.nargs) !== false) {
 
-                         i = eatNargs(i, m[1], args, m[2]);
 
-                     }
 
-                     else {
 
-                         setArg(m[1], m[2], true);
 
-                     }
 
-                 }
 
-             }
 
-             else if (arg.match(negatedBoolean) && configuration['boolean-negation']) {
 
-                 m = arg.match(negatedBoolean);
 
-                 if (m !== null && Array.isArray(m) && m.length >= 2) {
 
-                     key = m[1];
 
-                     setArg(key, checkAllAliases(key, flags.arrays) ? [false] : false);
 
-                 }
 
-             }
 
-             else if (arg.match(/^--.+/) || (!configuration['short-option-groups'] && arg.match(/^-[^-]+/))) {
 
-                 m = arg.match(/^--?(.+)/);
 
-                 if (m !== null && Array.isArray(m) && m.length >= 2) {
 
-                     key = m[1];
 
-                     if (checkAllAliases(key, flags.arrays)) {
 
-                         i = eatArray(i, key, args);
 
-                     }
 
-                     else if (checkAllAliases(key, flags.nargs) !== false) {
 
-                         i = eatNargs(i, key, args);
 
-                     }
 
-                     else {
 
-                         next = args[i + 1];
 
-                         if (next !== undefined && (!next.match(/^-/) ||
 
-                             next.match(negative)) &&
 
-                             !checkAllAliases(key, flags.bools) &&
 
-                             !checkAllAliases(key, flags.counts)) {
 
-                             setArg(key, next);
 
-                             i++;
 
-                         }
 
-                         else if (/^(true|false)$/.test(next)) {
 
-                             setArg(key, next);
 
-                             i++;
 
-                         }
 
-                         else {
 
-                             setArg(key, defaultValue(key));
 
-                         }
 
-                     }
 
-                 }
 
-             }
 
-             else if (arg.match(/^-.\..+=/)) {
 
-                 m = arg.match(/^-([^=]+)=([\s\S]*)$/);
 
-                 if (m !== null && Array.isArray(m) && m.length >= 3) {
 
-                     setArg(m[1], m[2]);
 
-                 }
 
-             }
 
-             else if (arg.match(/^-.\..+/) && !arg.match(negative)) {
 
-                 next = args[i + 1];
 
-                 m = arg.match(/^-(.\..+)/);
 
-                 if (m !== null && Array.isArray(m) && m.length >= 2) {
 
-                     key = m[1];
 
-                     if (next !== undefined && !next.match(/^-/) &&
 
-                         !checkAllAliases(key, flags.bools) &&
 
-                         !checkAllAliases(key, flags.counts)) {
 
-                         setArg(key, next);
 
-                         i++;
 
-                     }
 
-                     else {
 
-                         setArg(key, defaultValue(key));
 
-                     }
 
-                 }
 
-             }
 
-             else if (arg.match(/^-[^-]+/) && !arg.match(negative)) {
 
-                 letters = arg.slice(1, -1).split('');
 
-                 broken = false;
 
-                 for (let j = 0; j < letters.length; j++) {
 
-                     next = arg.slice(j + 2);
 
-                     if (letters[j + 1] && letters[j + 1] === '=') {
 
-                         value = arg.slice(j + 3);
 
-                         key = letters[j];
 
-                         if (checkAllAliases(key, flags.arrays)) {
 
-                             i = eatArray(i, key, args, value);
 
-                         }
 
-                         else if (checkAllAliases(key, flags.nargs) !== false) {
 
-                             i = eatNargs(i, key, args, value);
 
-                         }
 
-                         else {
 
-                             setArg(key, value);
 
-                         }
 
-                         broken = true;
 
-                         break;
 
-                     }
 
-                     if (next === '-') {
 
-                         setArg(letters[j], next);
 
-                         continue;
 
-                     }
 
-                     if (/[A-Za-z]/.test(letters[j]) &&
 
-                         /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next) &&
 
-                         checkAllAliases(next, flags.bools) === false) {
 
-                         setArg(letters[j], next);
 
-                         broken = true;
 
-                         break;
 
-                     }
 
-                     if (letters[j + 1] && letters[j + 1].match(/\W/)) {
 
-                         setArg(letters[j], next);
 
-                         broken = true;
 
-                         break;
 
-                     }
 
-                     else {
 
-                         setArg(letters[j], defaultValue(letters[j]));
 
-                     }
 
-                 }
 
-                 key = arg.slice(-1)[0];
 
-                 if (!broken && key !== '-') {
 
-                     if (checkAllAliases(key, flags.arrays)) {
 
-                         i = eatArray(i, key, args);
 
-                     }
 
-                     else if (checkAllAliases(key, flags.nargs) !== false) {
 
-                         i = eatNargs(i, key, args);
 
-                     }
 
-                     else {
 
-                         next = args[i + 1];
 
-                         if (next !== undefined && (!/^(-|--)[^-]/.test(next) ||
 
-                             next.match(negative)) &&
 
-                             !checkAllAliases(key, flags.bools) &&
 
-                             !checkAllAliases(key, flags.counts)) {
 
-                             setArg(key, next);
 
-                             i++;
 
-                         }
 
-                         else if (/^(true|false)$/.test(next)) {
 
-                             setArg(key, next);
 
-                             i++;
 
-                         }
 
-                         else {
 
-                             setArg(key, defaultValue(key));
 
-                         }
 
-                     }
 
-                 }
 
-             }
 
-             else if (arg.match(/^-[0-9]$/) &&
 
-                 arg.match(negative) &&
 
-                 checkAllAliases(arg.slice(1), flags.bools)) {
 
-                 key = arg.slice(1);
 
-                 setArg(key, defaultValue(key));
 
-             }
 
-             else if (arg === '--') {
 
-                 notFlags = args.slice(i + 1);
 
-                 break;
 
-             }
 
-             else if (configuration['halt-at-non-option']) {
 
-                 notFlags = args.slice(i);
 
-                 break;
 
-             }
 
-             else {
 
-                 pushPositional(arg);
 
-             }
 
-         }
 
-         applyEnvVars(argv, true); 
 
-         applyEnvVars(argv, false);
 
-         setConfig(argv);
 
-         setConfigObjects();
 
-         applyDefaultsAndAliases(argv, flags.aliases, defaults, true);
 
-         applyCoercions(argv);
 
-         if (configuration['set-placeholder-key'])
 
-             setPlaceholderKeys(argv);
 
-         Object.keys(flags.counts).forEach(function (key) {
 
-             if (!hasKey(argv, key.split('.')))
 
-                 setArg(key, 0);
 
-         });
 
-         if (notFlagsOption && notFlags.length)
 
-             argv[notFlagsArgv] = [];
 
-         notFlags.forEach(function (key) {
 
-             argv[notFlagsArgv].push(key);
 
-         });
 
-         if (configuration['camel-case-expansion'] && configuration['strip-dashed']) {
 
-             Object.keys(argv).filter(key => key !== '--' && key.includes('-')).forEach(key => {
 
-                 delete argv[key];
 
-             });
 
-         }
 
-         if (configuration['strip-aliased']) {
 
-             [].concat(...Object.keys(aliases).map(k => aliases[k])).forEach(alias => {
 
-                 if (configuration['camel-case-expansion'] && alias.includes('-')) {
 
-                     delete argv[alias.split('.').map(prop => camelCase$1(prop)).join('.')];
 
-                 }
 
-                 delete argv[alias];
 
-             });
 
-         }
 
-         function pushPositional(arg) {
 
-             const maybeCoercedNumber = maybeCoerceNumber('_', arg);
 
-             if (typeof maybeCoercedNumber === 'string' || typeof maybeCoercedNumber === 'number') {
 
-                 argv._.push(maybeCoercedNumber);
 
-             }
 
-         }
 
-         function eatNargs(i, key, args, argAfterEqualSign) {
 
-             let ii;
 
-             let toEat = checkAllAliases(key, flags.nargs);
 
-             toEat = typeof toEat !== 'number' || isNaN(toEat) ? 1 : toEat;
 
-             if (toEat === 0) {
 
-                 if (!isUndefined(argAfterEqualSign)) {
 
-                     error = Error(__('Argument unexpected for: %s', key));
 
-                 }
 
-                 setArg(key, defaultValue(key));
 
-                 return i;
 
-             }
 
-             let available = isUndefined(argAfterEqualSign) ? 0 : 1;
 
-             if (configuration['nargs-eats-options']) {
 
-                 if (args.length - (i + 1) + available < toEat) {
 
-                     error = Error(__('Not enough arguments following: %s', key));
 
-                 }
 
-                 available = toEat;
 
-             }
 
-             else {
 
-                 for (ii = i + 1; ii < args.length; ii++) {
 
-                     if (!args[ii].match(/^-[^0-9]/) || args[ii].match(negative) || isUnknownOptionAsArg(args[ii]))
 
-                         available++;
 
-                     else
 
-                         break;
 
-                 }
 
-                 if (available < toEat)
 
-                     error = Error(__('Not enough arguments following: %s', key));
 
-             }
 
-             let consumed = Math.min(available, toEat);
 
-             if (!isUndefined(argAfterEqualSign) && consumed > 0) {
 
-                 setArg(key, argAfterEqualSign);
 
-                 consumed--;
 
-             }
 
-             for (ii = i + 1; ii < (consumed + i + 1); ii++) {
 
-                 setArg(key, args[ii]);
 
-             }
 
-             return (i + consumed);
 
-         }
 
-         function eatArray(i, key, args, argAfterEqualSign) {
 
-             let argsToSet = [];
 
-             let next = argAfterEqualSign || args[i + 1];
 
-             const nargsCount = checkAllAliases(key, flags.nargs);
 
-             if (checkAllAliases(key, flags.bools) && !(/^(true|false)$/.test(next))) {
 
-                 argsToSet.push(true);
 
-             }
 
-             else if (isUndefined(next) ||
 
-                 (isUndefined(argAfterEqualSign) && /^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))) {
 
-                 if (defaults[key] !== undefined) {
 
-                     const defVal = defaults[key];
 
-                     argsToSet = Array.isArray(defVal) ? defVal : [defVal];
 
-                 }
 
-             }
 
-             else {
 
-                 if (!isUndefined(argAfterEqualSign)) {
 
-                     argsToSet.push(processValue(key, argAfterEqualSign, true));
 
-                 }
 
-                 for (let ii = i + 1; ii < args.length; ii++) {
 
-                     if ((!configuration['greedy-arrays'] && argsToSet.length > 0) ||
 
-                         (nargsCount && typeof nargsCount === 'number' && argsToSet.length >= nargsCount))
 
-                         break;
 
-                     next = args[ii];
 
-                     if (/^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))
 
-                         break;
 
-                     i = ii;
 
-                     argsToSet.push(processValue(key, next, inputIsString));
 
-                 }
 
-             }
 
-             if (typeof nargsCount === 'number' && ((nargsCount && argsToSet.length < nargsCount) ||
 
-                 (isNaN(nargsCount) && argsToSet.length === 0))) {
 
-                 error = Error(__('Not enough arguments following: %s', key));
 
-             }
 
-             setArg(key, argsToSet);
 
-             return i;
 
-         }
 
-         function setArg(key, val, shouldStripQuotes = inputIsString) {
 
-             if (/-/.test(key) && configuration['camel-case-expansion']) {
 
-                 const alias = key.split('.').map(function (prop) {
 
-                     return camelCase$1(prop);
 
-                 }).join('.');
 
-                 addNewAlias(key, alias);
 
-             }
 
-             const value = processValue(key, val, shouldStripQuotes);
 
-             const splitKey = key.split('.');
 
-             setKey(argv, splitKey, value);
 
-             if (flags.aliases[key]) {
 
-                 flags.aliases[key].forEach(function (x) {
 
-                     const keyProperties = x.split('.');
 
-                     setKey(argv, keyProperties, value);
 
-                 });
 
-             }
 
-             if (splitKey.length > 1 && configuration['dot-notation']) {
 
-                 (flags.aliases[splitKey[0]] || []).forEach(function (x) {
 
-                     let keyProperties = x.split('.');
 
-                     const a = [].concat(splitKey);
 
-                     a.shift(); 
 
-                     keyProperties = keyProperties.concat(a);
 
-                     if (!(flags.aliases[key] || []).includes(keyProperties.join('.'))) {
 
-                         setKey(argv, keyProperties, value);
 
-                     }
 
-                 });
 
-             }
 
-             if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) {
 
-                 const keys = [key].concat(flags.aliases[key] || []);
 
-                 keys.forEach(function (key) {
 
-                     Object.defineProperty(argvReturn, key, {
 
-                         enumerable: true,
 
-                         get() {
 
-                             return val;
 
-                         },
 
-                         set(value) {
 
-                             val = typeof value === 'string' ? mixin.normalize(value) : value;
 
-                         }
 
-                     });
 
-                 });
 
-             }
 
-         }
 
-         function addNewAlias(key, alias) {
 
-             if (!(flags.aliases[key] && flags.aliases[key].length)) {
 
-                 flags.aliases[key] = [alias];
 
-                 newAliases[alias] = true;
 
-             }
 
-             if (!(flags.aliases[alias] && flags.aliases[alias].length)) {
 
-                 addNewAlias(alias, key);
 
-             }
 
-         }
 
-         function processValue(key, val, shouldStripQuotes) {
 
-             if (shouldStripQuotes) {
 
-                 val = stripQuotes(val);
 
-             }
 
-             if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) {
 
-                 if (typeof val === 'string')
 
-                     val = val === 'true';
 
-             }
 
-             let value = Array.isArray(val)
 
-                 ? val.map(function (v) { return maybeCoerceNumber(key, v); })
 
-                 : maybeCoerceNumber(key, val);
 
-             if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) {
 
-                 value = increment();
 
-             }
 
-             if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) {
 
-                 if (Array.isArray(val))
 
-                     value = val.map((val) => { return mixin.normalize(val); });
 
-                 else
 
-                     value = mixin.normalize(val);
 
-             }
 
-             return value;
 
-         }
 
-         function maybeCoerceNumber(key, value) {
 
-             if (!configuration['parse-positional-numbers'] && key === '_')
 
-                 return value;
 
-             if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.bools) && !Array.isArray(value)) {
 
-                 const shouldCoerceNumber = looksLikeNumber(value) && configuration['parse-numbers'] && (Number.isSafeInteger(Math.floor(parseFloat(`${value}`))));
 
-                 if (shouldCoerceNumber || (!isUndefined(value) && checkAllAliases(key, flags.numbers))) {
 
-                     value = Number(value);
 
-                 }
 
-             }
 
-             return value;
 
-         }
 
-         function setConfig(argv) {
 
-             const configLookup = Object.create(null);
 
-             applyDefaultsAndAliases(configLookup, flags.aliases, defaults);
 
-             Object.keys(flags.configs).forEach(function (configKey) {
 
-                 const configPath = argv[configKey] || configLookup[configKey];
 
-                 if (configPath) {
 
-                     try {
 
-                         let config = null;
 
-                         const resolvedConfigPath = mixin.resolve(mixin.cwd(), configPath);
 
-                         const resolveConfig = flags.configs[configKey];
 
-                         if (typeof resolveConfig === 'function') {
 
-                             try {
 
-                                 config = resolveConfig(resolvedConfigPath);
 
-                             }
 
-                             catch (e) {
 
-                                 config = e;
 
-                             }
 
-                             if (config instanceof Error) {
 
-                                 error = config;
 
-                                 return;
 
-                             }
 
-                         }
 
-                         else {
 
-                             config = mixin.require(resolvedConfigPath);
 
-                         }
 
-                         setConfigObject(config);
 
-                     }
 
-                     catch (ex) {
 
-                         if (ex.name === 'PermissionDenied')
 
-                             error = ex;
 
-                         else if (argv[configKey])
 
-                             error = Error(__('Invalid JSON config file: %s', configPath));
 
-                     }
 
-                 }
 
-             });
 
-         }
 
-         function setConfigObject(config, prev) {
 
-             Object.keys(config).forEach(function (key) {
 
-                 const value = config[key];
 
-                 const fullKey = prev ? prev + '.' + key : key;
 
-                 if (typeof value === 'object' && value !== null && !Array.isArray(value) && configuration['dot-notation']) {
 
-                     setConfigObject(value, fullKey);
 
-                 }
 
-                 else {
 
-                     if (!hasKey(argv, fullKey.split('.')) || (checkAllAliases(fullKey, flags.arrays) && configuration['combine-arrays'])) {
 
-                         setArg(fullKey, value);
 
-                     }
 
-                 }
 
-             });
 
-         }
 
-         function setConfigObjects() {
 
-             if (typeof configObjects !== 'undefined') {
 
-                 configObjects.forEach(function (configObject) {
 
-                     setConfigObject(configObject);
 
-                 });
 
-             }
 
-         }
 
-         function applyEnvVars(argv, configOnly) {
 
-             if (typeof envPrefix === 'undefined')
 
-                 return;
 
-             const prefix = typeof envPrefix === 'string' ? envPrefix : '';
 
-             const env = mixin.env();
 
-             Object.keys(env).forEach(function (envVar) {
 
-                 if (prefix === '' || envVar.lastIndexOf(prefix, 0) === 0) {
 
-                     const keys = envVar.split('__').map(function (key, i) {
 
-                         if (i === 0) {
 
-                             key = key.substring(prefix.length);
 
-                         }
 
-                         return camelCase$1(key);
 
-                     });
 
-                     if (((configOnly && flags.configs[keys.join('.')]) || !configOnly) && !hasKey(argv, keys)) {
 
-                         setArg(keys.join('.'), env[envVar]);
 
-                     }
 
-                 }
 
-             });
 
-         }
 
-         function applyCoercions(argv) {
 
-             let coerce;
 
-             const applied = new Set();
 
-             Object.keys(argv).forEach(function (key) {
 
-                 if (!applied.has(key)) { 
 
-                     coerce = checkAllAliases(key, flags.coercions);
 
-                     if (typeof coerce === 'function') {
 
-                         try {
 
-                             const value = maybeCoerceNumber(key, coerce(argv[key]));
 
-                             ([].concat(flags.aliases[key] || [], key)).forEach(ali => {
 
-                                 applied.add(ali);
 
-                                 argv[ali] = value;
 
-                             });
 
-                         }
 
-                         catch (err) {
 
-                             error = err;
 
-                         }
 
-                     }
 
-                 }
 
-             });
 
-         }
 
-         function setPlaceholderKeys(argv) {
 
-             flags.keys.forEach((key) => {
 
-                 if (~key.indexOf('.'))
 
-                     return;
 
-                 if (typeof argv[key] === 'undefined')
 
-                     argv[key] = undefined;
 
-             });
 
-             return argv;
 
-         }
 
-         function applyDefaultsAndAliases(obj, aliases, defaults, canLog = false) {
 
-             Object.keys(defaults).forEach(function (key) {
 
-                 if (!hasKey(obj, key.split('.'))) {
 
-                     setKey(obj, key.split('.'), defaults[key]);
 
-                     if (canLog)
 
-                         defaulted[key] = true;
 
-                     (aliases[key] || []).forEach(function (x) {
 
-                         if (hasKey(obj, x.split('.')))
 
-                             return;
 
-                         setKey(obj, x.split('.'), defaults[key]);
 
-                     });
 
-                 }
 
-             });
 
-         }
 
-         function hasKey(obj, keys) {
 
-             let o = obj;
 
-             if (!configuration['dot-notation'])
 
-                 keys = [keys.join('.')];
 
-             keys.slice(0, -1).forEach(function (key) {
 
-                 o = (o[key] || {});
 
-             });
 
-             const key = keys[keys.length - 1];
 
-             if (typeof o !== 'object')
 
-                 return false;
 
-             else
 
-                 return key in o;
 
-         }
 
-         function setKey(obj, keys, value) {
 
-             let o = obj;
 
-             if (!configuration['dot-notation'])
 
-                 keys = [keys.join('.')];
 
-             keys.slice(0, -1).forEach(function (key) {
 
-                 key = sanitizeKey(key);
 
-                 if (typeof o === 'object' && o[key] === undefined) {
 
-                     o[key] = {};
 
-                 }
 
-                 if (typeof o[key] !== 'object' || Array.isArray(o[key])) {
 
-                     if (Array.isArray(o[key])) {
 
-                         o[key].push({});
 
-                     }
 
-                     else {
 
-                         o[key] = [o[key], {}];
 
-                     }
 
-                     o = o[key][o[key].length - 1];
 
-                 }
 
-                 else {
 
-                     o = o[key];
 
-                 }
 
-             });
 
-             const key = sanitizeKey(keys[keys.length - 1]);
 
-             const isTypeArray = checkAllAliases(keys.join('.'), flags.arrays);
 
-             const isValueArray = Array.isArray(value);
 
-             let duplicate = configuration['duplicate-arguments-array'];
 
-             if (!duplicate && checkAllAliases(key, flags.nargs)) {
 
-                 duplicate = true;
 
-                 if ((!isUndefined(o[key]) && flags.nargs[key] === 1) || (Array.isArray(o[key]) && o[key].length === flags.nargs[key])) {
 
-                     o[key] = undefined;
 
-                 }
 
-             }
 
-             if (value === increment()) {
 
-                 o[key] = increment(o[key]);
 
-             }
 
-             else if (Array.isArray(o[key])) {
 
-                 if (duplicate && isTypeArray && isValueArray) {
 
-                     o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : (Array.isArray(o[key][0]) ? o[key] : [o[key]]).concat([value]);
 
-                 }
 
-                 else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) {
 
-                     o[key] = value;
 
-                 }
 
-                 else {
 
-                     o[key] = o[key].concat([value]);
 
-                 }
 
-             }
 
-             else if (o[key] === undefined && isTypeArray) {
 
-                 o[key] = isValueArray ? value : [value];
 
-             }
 
-             else if (duplicate && !(o[key] === undefined ||
 
-                 checkAllAliases(key, flags.counts) ||
 
-                 checkAllAliases(key, flags.bools))) {
 
-                 o[key] = [o[key], value];
 
-             }
 
-             else {
 
-                 o[key] = value;
 
-             }
 
-         }
 
-         function extendAliases(...args) {
 
-             args.forEach(function (obj) {
 
-                 Object.keys(obj || {}).forEach(function (key) {
 
-                     if (flags.aliases[key])
 
-                         return;
 
-                     flags.aliases[key] = [].concat(aliases[key] || []);
 
-                     flags.aliases[key].concat(key).forEach(function (x) {
 
-                         if (/-/.test(x) && configuration['camel-case-expansion']) {
 
-                             const c = camelCase$1(x);
 
-                             if (c !== key && flags.aliases[key].indexOf(c) === -1) {
 
-                                 flags.aliases[key].push(c);
 
-                                 newAliases[c] = true;
 
-                             }
 
-                         }
 
-                     });
 
-                     flags.aliases[key].concat(key).forEach(function (x) {
 
-                         if (x.length > 1 && /[A-Z]/.test(x) && configuration['camel-case-expansion']) {
 
-                             const c = decamelize$1(x, '-');
 
-                             if (c !== key && flags.aliases[key].indexOf(c) === -1) {
 
-                                 flags.aliases[key].push(c);
 
-                                 newAliases[c] = true;
 
-                             }
 
-                         }
 
-                     });
 
-                     flags.aliases[key].forEach(function (x) {
 
-                         flags.aliases[x] = [key].concat(flags.aliases[key].filter(function (y) {
 
-                             return x !== y;
 
-                         }));
 
-                     });
 
-                 });
 
-             });
 
-         }
 
-         function checkAllAliases(key, flag) {
 
-             const toCheck = [].concat(flags.aliases[key] || [], key);
 
-             const keys = Object.keys(flag);
 
-             const setAlias = toCheck.find(key => keys.includes(key));
 
-             return setAlias ? flag[setAlias] : false;
 
-         }
 
-         function hasAnyFlag(key) {
 
-             const flagsKeys = Object.keys(flags);
 
-             const toCheck = [].concat(flagsKeys.map(k => flags[k]));
 
-             return toCheck.some(function (flag) {
 
-                 return Array.isArray(flag) ? flag.includes(key) : flag[key];
 
-             });
 
-         }
 
-         function hasFlagsMatching(arg, ...patterns) {
 
-             const toCheck = [].concat(...patterns);
 
-             return toCheck.some(function (pattern) {
 
-                 const match = arg.match(pattern);
 
-                 return match && hasAnyFlag(match[1]);
 
-             });
 
-         }
 
-         function hasAllShortFlags(arg) {
 
-             if (arg.match(negative) || !arg.match(/^-[^-]+/)) {
 
-                 return false;
 
-             }
 
-             let hasAllFlags = true;
 
-             let next;
 
-             const letters = arg.slice(1).split('');
 
-             for (let j = 0; j < letters.length; j++) {
 
-                 next = arg.slice(j + 2);
 
-                 if (!hasAnyFlag(letters[j])) {
 
-                     hasAllFlags = false;
 
-                     break;
 
-                 }
 
-                 if ((letters[j + 1] && letters[j + 1] === '=') ||
 
-                     next === '-' ||
 
-                     (/[A-Za-z]/.test(letters[j]) && /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) ||
 
-                     (letters[j + 1] && letters[j + 1].match(/\W/))) {
 
-                     break;
 
-                 }
 
-             }
 
-             return hasAllFlags;
 
-         }
 
-         function isUnknownOptionAsArg(arg) {
 
-             return configuration['unknown-options-as-args'] && isUnknownOption(arg);
 
-         }
 
-         function isUnknownOption(arg) {
 
-             arg = arg.replace(/^-{3,}/, '--');
 
-             if (arg.match(negative)) {
 
-                 return false;
 
-             }
 
-             if (hasAllShortFlags(arg)) {
 
-                 return false;
 
-             }
 
-             const flagWithEquals = /^-+([^=]+?)=[\s\S]*$/;
 
-             const normalFlag = /^-+([^=]+?)$/;
 
-             const flagEndingInHyphen = /^-+([^=]+?)-$/;
 
-             const flagEndingInDigits = /^-+([^=]+?\d+)$/;
 
-             const flagEndingInNonWordCharacters = /^-+([^=]+?)\W+.*$/;
 
-             return !hasFlagsMatching(arg, flagWithEquals, negatedBoolean, normalFlag, flagEndingInHyphen, flagEndingInDigits, flagEndingInNonWordCharacters);
 
-         }
 
-         function defaultValue(key) {
 
-             if (!checkAllAliases(key, flags.bools) &&
 
-                 !checkAllAliases(key, flags.counts) &&
 
-                 `${key}` in defaults) {
 
-                 return defaults[key];
 
-             }
 
-             else {
 
-                 return defaultForType(guessType(key));
 
-             }
 
-         }
 
-         function defaultForType(type) {
 
-             const def = {
 
-                 [DefaultValuesForTypeKey.BOOLEAN]: true,
 
-                 [DefaultValuesForTypeKey.STRING]: '',
 
-                 [DefaultValuesForTypeKey.NUMBER]: undefined,
 
-                 [DefaultValuesForTypeKey.ARRAY]: []
 
-             };
 
-             return def[type];
 
-         }
 
-         function guessType(key) {
 
-             let type = DefaultValuesForTypeKey.BOOLEAN;
 
-             if (checkAllAliases(key, flags.strings))
 
-                 type = DefaultValuesForTypeKey.STRING;
 
-             else if (checkAllAliases(key, flags.numbers))
 
-                 type = DefaultValuesForTypeKey.NUMBER;
 
-             else if (checkAllAliases(key, flags.bools))
 
-                 type = DefaultValuesForTypeKey.BOOLEAN;
 
-             else if (checkAllAliases(key, flags.arrays))
 
-                 type = DefaultValuesForTypeKey.ARRAY;
 
-             return type;
 
-         }
 
-         function isUndefined(num) {
 
-             return num === undefined;
 
-         }
 
-         function checkConfiguration() {
 
-             Object.keys(flags.counts).find(key => {
 
-                 if (checkAllAliases(key, flags.arrays)) {
 
-                     error = Error(__('Invalid configuration: %s, opts.count excludes opts.array.', key));
 
-                     return true;
 
-                 }
 
-                 else if (checkAllAliases(key, flags.nargs)) {
 
-                     error = Error(__('Invalid configuration: %s, opts.count excludes opts.narg.', key));
 
-                     return true;
 
-                 }
 
-                 return false;
 
-             });
 
-         }
 
-         return {
 
-             aliases: Object.assign({}, flags.aliases),
 
-             argv: Object.assign(argvReturn, argv),
 
-             configuration: configuration,
 
-             defaulted: Object.assign({}, defaulted),
 
-             error: error,
 
-             newAliases: Object.assign({}, newAliases)
 
-         };
 
-     }
 
- }
 
- function combineAliases(aliases) {
 
-     const aliasArrays = [];
 
-     const combined = Object.create(null);
 
-     let change = true;
 
-     Object.keys(aliases).forEach(function (key) {
 
-         aliasArrays.push([].concat(aliases[key], key));
 
-     });
 
-     while (change) {
 
-         change = false;
 
-         for (let i = 0; i < aliasArrays.length; i++) {
 
-             for (let ii = i + 1; ii < aliasArrays.length; ii++) {
 
-                 const intersect = aliasArrays[i].filter(function (v) {
 
-                     return aliasArrays[ii].indexOf(v) !== -1;
 
-                 });
 
-                 if (intersect.length) {
 
-                     aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii]);
 
-                     aliasArrays.splice(ii, 1);
 
-                     change = true;
 
-                     break;
 
-                 }
 
-             }
 
-         }
 
-     }
 
-     aliasArrays.forEach(function (aliasArray) {
 
-         aliasArray = aliasArray.filter(function (v, i, self) {
 
-             return self.indexOf(v) === i;
 
-         });
 
-         const lastAlias = aliasArray.pop();
 
-         if (lastAlias !== undefined && typeof lastAlias === 'string') {
 
-             combined[lastAlias] = aliasArray;
 
-         }
 
-     });
 
-     return combined;
 
- }
 
- function increment(orig) {
 
-     return orig !== undefined ? orig + 1 : 1;
 
- }
 
- function sanitizeKey(key) {
 
-     if (key === '__proto__')
 
-         return '___proto___';
 
-     return key;
 
- }
 
- function stripQuotes(val) {
 
-     return (typeof val === 'string' &&
 
-         (val[0] === "'" || val[0] === '"') &&
 
-         val[val.length - 1] === val[0])
 
-         ? val.substring(1, val.length - 1)
 
-         : val;
 
- }
 
- var _a, _b, _c;
 
- const minNodeVersion = (process && process.env && process.env.YARGS_MIN_NODE_VERSION)
 
-     ? Number(process.env.YARGS_MIN_NODE_VERSION)
 
-     : 12;
 
- const nodeVersion = (_b = (_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node) !== null && _b !== void 0 ? _b : (_c = process === null || process === void 0 ? void 0 : process.version) === null || _c === void 0 ? void 0 : _c.slice(1);
 
- if (nodeVersion) {
 
-     const major = Number(nodeVersion.match(/^([^.]+)/)[1]);
 
-     if (major < minNodeVersion) {
 
-         throw Error(`yargs parser supports a minimum Node.js version of ${minNodeVersion}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);
 
-     }
 
- }
 
- const env$2 = process ? process.env : {};
 
- const parser = new YargsParser({
 
-     cwd: process.cwd,
 
-     env: () => {
 
-         return env$2;
 
-     },
 
-     format,
 
-     normalize: normalize$1,
 
-     resolve,
 
-     require: (path) => {
 
-         if (typeof require !== 'undefined') {
 
-             return require(path);
 
-         }
 
-         else if (path.match(/\.json$/)) {
 
-             return JSON.parse(readFileSync(path, 'utf8'));
 
-         }
 
-         else {
 
-             throw Error('only .json config files are supported in ESM');
 
-         }
 
-     }
 
- });
 
- const yargsParser = function Parser(args, opts) {
 
-     const result = parser.parse(args.slice(), opts);
 
-     return result.argv;
 
- };
 
- yargsParser.detailed = function (args, opts) {
 
-     return parser.parse(args.slice(), opts);
 
- };
 
- yargsParser.camelCase = camelCase$1;
 
- yargsParser.decamelize = decamelize$1;
 
- yargsParser.looksLikeNumber = looksLikeNumber;
 
- const isObject$3 = value => typeof value === 'object' && value !== null;
 
- const isObjectCustom$1 = value =>
 
- 	isObject$3(value)
 
- 	&& !(value instanceof RegExp)
 
- 	&& !(value instanceof Error)
 
- 	&& !(value instanceof Date);
 
- const mapObjectSkip$1 = Symbol('mapObjectSkip');
 
- const _mapObject = (object, mapper, options, isSeen = new WeakMap()) => {
 
- 	options = {
 
- 		deep: false,
 
- 		target: {},
 
- 		...options,
 
- 	};
 
- 	if (isSeen.has(object)) {
 
- 		return isSeen.get(object);
 
- 	}
 
- 	isSeen.set(object, options.target);
 
- 	const {target} = options;
 
- 	delete options.target;
 
- 	const mapArray = array => array.map(element => isObjectCustom$1(element) ? _mapObject(element, mapper, options, isSeen) : element);
 
- 	if (Array.isArray(object)) {
 
- 		return mapArray(object);
 
- 	}
 
- 	for (const [key, value] of Object.entries(object)) {
 
- 		const mapResult = mapper(key, value, object);
 
- 		if (mapResult === mapObjectSkip$1) {
 
- 			continue;
 
- 		}
 
- 		let [newKey, newValue, {shouldRecurse = true} = {}] = mapResult;
 
- 		if (newKey === '__proto__') {
 
- 			continue;
 
- 		}
 
- 		if (options.deep && shouldRecurse && isObjectCustom$1(newValue)) {
 
- 			newValue = Array.isArray(newValue)
 
- 				? mapArray(newValue)
 
- 				: _mapObject(newValue, mapper, options, isSeen);
 
- 		}
 
- 		target[newKey] = newValue;
 
- 	}
 
- 	return target;
 
- };
 
- function mapObject$2(object, mapper, options) {
 
- 	if (!isObject$3(object)) {
 
- 		throw new TypeError(`Expected an object, got \`${object}\` (${typeof object})`);
 
- 	}
 
- 	return _mapObject(object, mapper, options);
 
- }
 
- const UPPERCASE = /[\p{Lu}]/u;
 
- const LOWERCASE = /[\p{Ll}]/u;
 
- const LEADING_CAPITAL = /^[\p{Lu}](?![\p{Lu}])/gu;
 
- const IDENTIFIER$1 = /([\p{Alpha}\p{N}_]|$)/u;
 
- const SEPARATORS = /[_.\- ]+/;
 
- const LEADING_SEPARATORS = new RegExp('^' + SEPARATORS.source);
 
- const SEPARATORS_AND_IDENTIFIER = new RegExp(SEPARATORS.source + IDENTIFIER$1.source, 'gu');
 
- const NUMBERS_AND_IDENTIFIER = new RegExp('\\d+' + IDENTIFIER$1.source, 'gu');
 
- const preserveCamelCase = (string, toLowerCase, toUpperCase, preserveConsecutiveUppercase) => {
 
- 	let isLastCharLower = false;
 
- 	let isLastCharUpper = false;
 
- 	let isLastLastCharUpper = false;
 
- 	let isLastLastCharPreserved = false;
 
- 	for (let index = 0; index < string.length; index++) {
 
- 		const character = string[index];
 
- 		isLastLastCharPreserved = index > 2 ? string[index - 3] === '-' : true;
 
- 		if (isLastCharLower && UPPERCASE.test(character)) {
 
- 			string = string.slice(0, index) + '-' + string.slice(index);
 
- 			isLastCharLower = false;
 
- 			isLastLastCharUpper = isLastCharUpper;
 
- 			isLastCharUpper = true;
 
- 			index++;
 
- 		} else if (isLastCharUpper && isLastLastCharUpper && LOWERCASE.test(character) && (!isLastLastCharPreserved || preserveConsecutiveUppercase)) {
 
- 			string = string.slice(0, index - 1) + '-' + string.slice(index - 1);
 
- 			isLastLastCharUpper = isLastCharUpper;
 
- 			isLastCharUpper = false;
 
- 			isLastCharLower = true;
 
- 		} else {
 
- 			isLastCharLower = toLowerCase(character) === character && toUpperCase(character) !== character;
 
- 			isLastLastCharUpper = isLastCharUpper;
 
- 			isLastCharUpper = toUpperCase(character) === character && toLowerCase(character) !== character;
 
- 		}
 
- 	}
 
- 	return string;
 
- };
 
- const preserveConsecutiveUppercase = (input, toLowerCase) => {
 
- 	LEADING_CAPITAL.lastIndex = 0;
 
- 	return input.replaceAll(LEADING_CAPITAL, match => toLowerCase(match));
 
- };
 
- const postProcess = (input, toUpperCase) => {
 
- 	SEPARATORS_AND_IDENTIFIER.lastIndex = 0;
 
- 	NUMBERS_AND_IDENTIFIER.lastIndex = 0;
 
- 	return input
 
- 		.replaceAll(NUMBERS_AND_IDENTIFIER, (match, pattern, offset) => ['_', '-'].includes(input.charAt(offset + match.length)) ? match : toUpperCase(match))
 
- 		.replaceAll(SEPARATORS_AND_IDENTIFIER, (_, identifier) => toUpperCase(identifier));
 
- };
 
- function camelCase(input, options) {
 
- 	if (!(typeof input === 'string' || Array.isArray(input))) {
 
- 		throw new TypeError('Expected the input to be `string | string[]`');
 
- 	}
 
- 	options = {
 
- 		pascalCase: false,
 
- 		preserveConsecutiveUppercase: false,
 
- 		...options,
 
- 	};
 
- 	if (Array.isArray(input)) {
 
- 		input = input.map(x => x.trim())
 
- 			.filter(x => x.length)
 
- 			.join('-');
 
- 	} else {
 
- 		input = input.trim();
 
- 	}
 
- 	if (input.length === 0) {
 
- 		return '';
 
- 	}
 
- 	const toLowerCase = options.locale === false
 
- 		? string => string.toLowerCase()
 
- 		: string => string.toLocaleLowerCase(options.locale);
 
- 	const toUpperCase = options.locale === false
 
- 		? string => string.toUpperCase()
 
- 		: string => string.toLocaleUpperCase(options.locale);
 
- 	if (input.length === 1) {
 
- 		if (SEPARATORS.test(input)) {
 
- 			return '';
 
- 		}
 
- 		return options.pascalCase ? toUpperCase(input) : toLowerCase(input);
 
- 	}
 
- 	const hasUpperCase = input !== toLowerCase(input);
 
- 	if (hasUpperCase) {
 
- 		input = preserveCamelCase(input, toLowerCase, toUpperCase, options.preserveConsecutiveUppercase);
 
- 	}
 
- 	input = input.replace(LEADING_SEPARATORS, '');
 
- 	input = options.preserveConsecutiveUppercase ? preserveConsecutiveUppercase(input, toLowerCase) : toLowerCase(input);
 
- 	if (options.pascalCase) {
 
- 		input = toUpperCase(input.charAt(0)) + input.slice(1);
 
- 	}
 
- 	return postProcess(input, toUpperCase);
 
- }
 
- class QuickLRU extends Map {
 
- 	constructor(options = {}) {
 
- 		super();
 
- 		if (!(options.maxSize && options.maxSize > 0)) {
 
- 			throw new TypeError('`maxSize` must be a number greater than 0');
 
- 		}
 
- 		if (typeof options.maxAge === 'number' && options.maxAge === 0) {
 
- 			throw new TypeError('`maxAge` must be a number greater than 0');
 
- 		}
 
- 		this.maxSize = options.maxSize;
 
- 		this.maxAge = options.maxAge || Number.POSITIVE_INFINITY;
 
- 		this.onEviction = options.onEviction;
 
- 		this.cache = new Map();
 
- 		this.oldCache = new Map();
 
- 		this._size = 0;
 
- 	}
 
- 	_emitEvictions(cache) {
 
- 		if (typeof this.onEviction !== 'function') {
 
- 			return;
 
- 		}
 
- 		for (const [key, item] of cache) {
 
- 			this.onEviction(key, item.value);
 
- 		}
 
- 	}
 
- 	_deleteIfExpired(key, item) {
 
- 		if (typeof item.expiry === 'number' && item.expiry <= Date.now()) {
 
- 			if (typeof this.onEviction === 'function') {
 
- 				this.onEviction(key, item.value);
 
- 			}
 
- 			return this.delete(key);
 
- 		}
 
- 		return false;
 
- 	}
 
- 	_getOrDeleteIfExpired(key, item) {
 
- 		const deleted = this._deleteIfExpired(key, item);
 
- 		if (deleted === false) {
 
- 			return item.value;
 
- 		}
 
- 	}
 
- 	_getItemValue(key, item) {
 
- 		return item.expiry ? this._getOrDeleteIfExpired(key, item) : item.value;
 
- 	}
 
- 	_peek(key, cache) {
 
- 		const item = cache.get(key);
 
- 		return this._getItemValue(key, item);
 
- 	}
 
- 	_set(key, value) {
 
- 		this.cache.set(key, value);
 
- 		this._size++;
 
- 		if (this._size >= this.maxSize) {
 
- 			this._size = 0;
 
- 			this._emitEvictions(this.oldCache);
 
- 			this.oldCache = this.cache;
 
- 			this.cache = new Map();
 
- 		}
 
- 	}
 
- 	_moveToRecent(key, item) {
 
- 		this.oldCache.delete(key);
 
- 		this._set(key, item);
 
- 	}
 
- 	* _entriesAscending() {
 
- 		for (const item of this.oldCache) {
 
- 			const [key, value] = item;
 
- 			if (!this.cache.has(key)) {
 
- 				const deleted = this._deleteIfExpired(key, value);
 
- 				if (deleted === false) {
 
- 					yield item;
 
- 				}
 
- 			}
 
- 		}
 
- 		for (const item of this.cache) {
 
- 			const [key, value] = item;
 
- 			const deleted = this._deleteIfExpired(key, value);
 
- 			if (deleted === false) {
 
- 				yield item;
 
- 			}
 
- 		}
 
- 	}
 
- 	get(key) {
 
- 		if (this.cache.has(key)) {
 
- 			const item = this.cache.get(key);
 
- 			return this._getItemValue(key, item);
 
- 		}
 
- 		if (this.oldCache.has(key)) {
 
- 			const item = this.oldCache.get(key);
 
- 			if (this._deleteIfExpired(key, item) === false) {
 
- 				this._moveToRecent(key, item);
 
- 				return item.value;
 
- 			}
 
- 		}
 
- 	}
 
- 	set(key, value, {maxAge = this.maxAge} = {}) {
 
- 		const expiry =
 
- 			typeof maxAge === 'number' && maxAge !== Number.POSITIVE_INFINITY ?
 
- 				Date.now() + maxAge :
 
- 				undefined;
 
- 		if (this.cache.has(key)) {
 
- 			this.cache.set(key, {
 
- 				value,
 
- 				expiry
 
- 			});
 
- 		} else {
 
- 			this._set(key, {value, expiry});
 
- 		}
 
- 		return this;
 
- 	}
 
- 	has(key) {
 
- 		if (this.cache.has(key)) {
 
- 			return !this._deleteIfExpired(key, this.cache.get(key));
 
- 		}
 
- 		if (this.oldCache.has(key)) {
 
- 			return !this._deleteIfExpired(key, this.oldCache.get(key));
 
- 		}
 
- 		return false;
 
- 	}
 
- 	peek(key) {
 
- 		if (this.cache.has(key)) {
 
- 			return this._peek(key, this.cache);
 
- 		}
 
- 		if (this.oldCache.has(key)) {
 
- 			return this._peek(key, this.oldCache);
 
- 		}
 
- 	}
 
- 	delete(key) {
 
- 		const deleted = this.cache.delete(key);
 
- 		if (deleted) {
 
- 			this._size--;
 
- 		}
 
- 		return this.oldCache.delete(key) || deleted;
 
- 	}
 
- 	clear() {
 
- 		this.cache.clear();
 
- 		this.oldCache.clear();
 
- 		this._size = 0;
 
- 	}
 
- 	resize(newSize) {
 
- 		if (!(newSize && newSize > 0)) {
 
- 			throw new TypeError('`maxSize` must be a number greater than 0');
 
- 		}
 
- 		const items = [...this._entriesAscending()];
 
- 		const removeCount = items.length - newSize;
 
- 		if (removeCount < 0) {
 
- 			this.cache = new Map(items);
 
- 			this.oldCache = new Map();
 
- 			this._size = items.length;
 
- 		} else {
 
- 			if (removeCount > 0) {
 
- 				this._emitEvictions(items.slice(0, removeCount));
 
- 			}
 
- 			this.oldCache = new Map(items.slice(removeCount));
 
- 			this.cache = new Map();
 
- 			this._size = 0;
 
- 		}
 
- 		this.maxSize = newSize;
 
- 	}
 
- 	* keys() {
 
- 		for (const [key] of this) {
 
- 			yield key;
 
- 		}
 
- 	}
 
- 	* values() {
 
- 		for (const [, value] of this) {
 
- 			yield value;
 
- 		}
 
- 	}
 
- 	* [Symbol.iterator]() {
 
- 		for (const item of this.cache) {
 
- 			const [key, value] = item;
 
- 			const deleted = this._deleteIfExpired(key, value);
 
- 			if (deleted === false) {
 
- 				yield [key, value.value];
 
- 			}
 
- 		}
 
- 		for (const item of this.oldCache) {
 
- 			const [key, value] = item;
 
- 			if (!this.cache.has(key)) {
 
- 				const deleted = this._deleteIfExpired(key, value);
 
- 				if (deleted === false) {
 
- 					yield [key, value.value];
 
- 				}
 
- 			}
 
- 		}
 
- 	}
 
- 	* entriesDescending() {
 
- 		let items = [...this.cache];
 
- 		for (let i = items.length - 1; i >= 0; --i) {
 
- 			const item = items[i];
 
- 			const [key, value] = item;
 
- 			const deleted = this._deleteIfExpired(key, value);
 
- 			if (deleted === false) {
 
- 				yield [key, value.value];
 
- 			}
 
- 		}
 
- 		items = [...this.oldCache];
 
- 		for (let i = items.length - 1; i >= 0; --i) {
 
- 			const item = items[i];
 
- 			const [key, value] = item;
 
- 			if (!this.cache.has(key)) {
 
- 				const deleted = this._deleteIfExpired(key, value);
 
- 				if (deleted === false) {
 
- 					yield [key, value.value];
 
- 				}
 
- 			}
 
- 		}
 
- 	}
 
- 	* entriesAscending() {
 
- 		for (const [key, value] of this._entriesAscending()) {
 
- 			yield [key, value.value];
 
- 		}
 
- 	}
 
- 	get size() {
 
- 		if (!this._size) {
 
- 			return this.oldCache.size;
 
- 		}
 
- 		let oldCacheSize = 0;
 
- 		for (const key of this.oldCache.keys()) {
 
- 			if (!this.cache.has(key)) {
 
- 				oldCacheSize++;
 
- 			}
 
- 		}
 
- 		return Math.min(this._size + oldCacheSize, this.maxSize);
 
- 	}
 
- 	entries() {
 
- 		return this.entriesAscending();
 
- 	}
 
- 	forEach(callbackFunction, thisArgument = this) {
 
- 		for (const [key, value] of this.entriesAscending()) {
 
- 			callbackFunction.call(thisArgument, value, key, this);
 
- 		}
 
- 	}
 
- 	get [Symbol.toStringTag]() {
 
- 		return JSON.stringify([...this.entriesAscending()]);
 
- 	}
 
- }
 
- const has$1 = (array, key) => array.some(element => {
 
- 	if (typeof element === 'string') {
 
- 		return element === key;
 
- 	}
 
- 	element.lastIndex = 0;
 
- 	return element.test(key);
 
- });
 
- const cache$2 = new QuickLRU({maxSize: 100_000});
 
- const isObject$2 = value =>
 
- 	typeof value === 'object'
 
- 		&& value !== null
 
- 		&& !(value instanceof RegExp)
 
- 		&& !(value instanceof Error)
 
- 		&& !(value instanceof Date);
 
- const transform$1 = (input, options = {}) => {
 
- 	if (!isObject$2(input)) {
 
- 		return input;
 
- 	}
 
- 	const {
 
- 		exclude,
 
- 		pascalCase = false,
 
- 		stopPaths,
 
- 		deep = false,
 
- 		preserveConsecutiveUppercase = false,
 
- 	} = options;
 
- 	const stopPathsSet = new Set(stopPaths);
 
- 	const makeMapper = parentPath => (key, value) => {
 
- 		if (deep && isObject$2(value)) {
 
- 			const path = parentPath === undefined ? key : `${parentPath}.${key}`;
 
- 			if (!stopPathsSet.has(path)) {
 
- 				value = mapObject$2(value, makeMapper(path));
 
- 			}
 
- 		}
 
- 		if (!(exclude && has$1(exclude, key))) {
 
- 			const cacheKey = pascalCase ? `${key}_` : key;
 
- 			if (cache$2.has(cacheKey)) {
 
- 				key = cache$2.get(cacheKey);
 
- 			} else {
 
- 				const returnValue = camelCase(key, {pascalCase, locale: false, preserveConsecutiveUppercase});
 
- 				if (key.length < 100) { 
 
- 					cache$2.set(cacheKey, returnValue);
 
- 				}
 
- 				key = returnValue;
 
- 			}
 
- 		}
 
- 		return [key, value];
 
- 	};
 
- 	return mapObject$2(input, makeMapper(undefined));
 
- };
 
- function camelcaseKeys(input, options) {
 
- 	if (Array.isArray(input)) {
 
- 		return Object.keys(input).map(key => transform$1(input[key], options));
 
- 	}
 
- 	return transform$1(input, options);
 
- }
 
- function trimNewlines(string) {
 
- 	let start = 0;
 
- 	let end = string.length;
 
- 	while (start < end && (string[start] === '\r' || string[start] === '\n')) {
 
- 		start++;
 
- 	}
 
- 	while (end > start && (string[end - 1] === '\r' || string[end - 1] === '\n')) {
 
- 		end--;
 
- 	}
 
- 	return (start > 0 || end < string.length) ? string.slice(start, end) : string;
 
- }
 
- function getDefaultExportFromCjs (x) {
 
- 	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
 
- }
 
- var minIndent = string => {
 
- 	const match = string.match(/^[ \t]*(?=\S)/gm);
 
- 	if (!match) {
 
- 		return 0;
 
- 	}
 
- 	return match.reduce((r, a) => Math.min(r, a.length), Infinity);
 
- };
 
- const minIndent$1 = getDefaultExportFromCjs(minIndent);
 
- function stripIndent(string) {
 
- 	const indent = minIndent$1(string);
 
- 	if (indent === 0) {
 
- 		return string;
 
- 	}
 
- 	const regex = new RegExp(`^[ \\t]{${indent}}`, 'gm');
 
- 	return string.replace(regex, '');
 
- }
 
- function indentString(string, count = 1, options = {}) {
 
- 	const {
 
- 		indent = ' ',
 
- 		includeEmptyLines = false
 
- 	} = options;
 
- 	if (typeof string !== 'string') {
 
- 		throw new TypeError(
 
- 			`Expected \`input\` to be a \`string\`, got \`${typeof string}\``
 
- 		);
 
- 	}
 
- 	if (typeof count !== 'number') {
 
- 		throw new TypeError(
 
- 			`Expected \`count\` to be a \`number\`, got \`${typeof count}\``
 
- 		);
 
- 	}
 
- 	if (count < 0) {
 
- 		throw new RangeError(
 
- 			`Expected \`count\` to be at least 0, got \`${count}\``
 
- 		);
 
- 	}
 
- 	if (typeof indent !== 'string') {
 
- 		throw new TypeError(
 
- 			`Expected \`options.indent\` to be a \`string\`, got \`${typeof indent}\``
 
- 		);
 
- 	}
 
- 	if (count === 0) {
 
- 		return string;
 
- 	}
 
- 	const regex = includeEmptyLines ? /^/gm : /^(?!\s*$)/gm;
 
- 	return string.replace(regex, indent.repeat(count));
 
- }
 
- function redent(string, count = 0, options = {}) {
 
- 	return indentString(stripIndent(string), count, options);
 
- }
 
- const debug$1 = (
 
-   typeof process === 'object' &&
 
-   process.env &&
 
-   process.env.NODE_DEBUG &&
 
-   /\bsemver\b/i.test(process.env.NODE_DEBUG)
 
- ) ? (...args) => console.error('SEMVER', ...args)
 
-   : () => {};
 
- var debug_1 = debug$1;
 
- const SEMVER_SPEC_VERSION = '2.0.0';
 
- const MAX_LENGTH$1 = 256;
 
- const MAX_SAFE_INTEGER$1 = Number.MAX_SAFE_INTEGER ||
 
-  9007199254740991;
 
- const MAX_SAFE_COMPONENT_LENGTH = 16;
 
- const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH$1 - 6;
 
- const RELEASE_TYPES = [
 
-   'major',
 
-   'premajor',
 
-   'minor',
 
-   'preminor',
 
-   'patch',
 
-   'prepatch',
 
-   'prerelease',
 
- ];
 
- var constants$1 = {
 
-   MAX_LENGTH: MAX_LENGTH$1,
 
-   MAX_SAFE_COMPONENT_LENGTH,
 
-   MAX_SAFE_BUILD_LENGTH,
 
-   MAX_SAFE_INTEGER: MAX_SAFE_INTEGER$1,
 
-   RELEASE_TYPES,
 
-   SEMVER_SPEC_VERSION,
 
-   FLAG_INCLUDE_PRERELEASE: 0b001,
 
-   FLAG_LOOSE: 0b010,
 
- };
 
- var re$1 = {exports: {}};
 
- (function (module, exports) {
 
- 	const {
 
- 	  MAX_SAFE_COMPONENT_LENGTH,
 
- 	  MAX_SAFE_BUILD_LENGTH,
 
- 	  MAX_LENGTH,
 
- 	} = constants$1;
 
- 	const debug = debug_1;
 
- 	exports = module.exports = {};
 
- 	const re = exports.re = [];
 
- 	const safeRe = exports.safeRe = [];
 
- 	const src = exports.src = [];
 
- 	const t = exports.t = {};
 
- 	let R = 0;
 
- 	const LETTERDASHNUMBER = '[a-zA-Z0-9-]';
 
- 	const safeRegexReplacements = [
 
- 	  ['\\s', 1],
 
- 	  ['\\d', MAX_LENGTH],
 
- 	  [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],
 
- 	];
 
- 	const makeSafeRegex = (value) => {
 
- 	  for (const [token, max] of safeRegexReplacements) {
 
- 	    value = value
 
- 	      .split(`${token}*`).join(`${token}{0,${max}}`)
 
- 	      .split(`${token}+`).join(`${token}{1,${max}}`);
 
- 	  }
 
- 	  return value
 
- 	};
 
- 	const createToken = (name, value, isGlobal) => {
 
- 	  const safe = makeSafeRegex(value);
 
- 	  const index = R++;
 
- 	  debug(name, index, value);
 
- 	  t[name] = index;
 
- 	  src[index] = value;
 
- 	  re[index] = new RegExp(value, isGlobal ? 'g' : undefined);
 
- 	  safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined);
 
- 	};
 
- 	createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*');
 
- 	createToken('NUMERICIDENTIFIERLOOSE', '\\d+');
 
- 	createToken('NONNUMERICIDENTIFIER', `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);
 
- 	createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` +
 
- 	                   `(${src[t.NUMERICIDENTIFIER]})\\.` +
 
- 	                   `(${src[t.NUMERICIDENTIFIER]})`);
 
- 	createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` +
 
- 	                        `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` +
 
- 	                        `(${src[t.NUMERICIDENTIFIERLOOSE]})`);
 
- 	createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]
 
- 	}|${src[t.NONNUMERICIDENTIFIER]})`);
 
- 	createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]
 
- 	}|${src[t.NONNUMERICIDENTIFIER]})`);
 
- 	createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]
 
- 	}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`);
 
- 	createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]
 
- 	}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`);
 
- 	createToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`);
 
- 	createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER]
 
- 	}(?:\\.${src[t.BUILDIDENTIFIER]})*))`);
 
- 	createToken('FULLPLAIN', `v?${src[t.MAINVERSION]
 
- 	}${src[t.PRERELEASE]}?${
 
- 	  src[t.BUILD]}?`);
 
- 	createToken('FULL', `^${src[t.FULLPLAIN]}$`);
 
- 	createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE]
 
- 	}${src[t.PRERELEASELOOSE]}?${
 
- 	  src[t.BUILD]}?`);
 
- 	createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`);
 
- 	createToken('GTLT', '((?:<|>)?=?)');
 
- 	createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);
 
- 	createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`);
 
- 	createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` +
 
- 	                   `(?:\\.(${src[t.XRANGEIDENTIFIER]})` +
 
- 	                   `(?:\\.(${src[t.XRANGEIDENTIFIER]})` +
 
- 	                   `(?:${src[t.PRERELEASE]})?${
 
- 	                     src[t.BUILD]}?` +
 
- 	                   `)?)?`);
 
- 	createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +
 
- 	                        `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +
 
- 	                        `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +
 
- 	                        `(?:${src[t.PRERELEASELOOSE]})?${
 
- 	                          src[t.BUILD]}?` +
 
- 	                        `)?)?`);
 
- 	createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`);
 
- 	createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`);
 
- 	createToken('COERCEPLAIN', `${'(^|[^\\d])' +
 
- 	              '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +
 
- 	              `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +
 
- 	              `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);
 
- 	createToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\d])`);
 
- 	createToken('COERCEFULL', src[t.COERCEPLAIN] +
 
- 	              `(?:${src[t.PRERELEASE]})?` +
 
- 	              `(?:${src[t.BUILD]})?` +
 
- 	              `(?:$|[^\\d])`);
 
- 	createToken('COERCERTL', src[t.COERCE], true);
 
- 	createToken('COERCERTLFULL', src[t.COERCEFULL], true);
 
- 	createToken('LONETILDE', '(?:~>?)');
 
- 	createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true);
 
- 	exports.tildeTrimReplace = '$1~';
 
- 	createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`);
 
- 	createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`);
 
- 	createToken('LONECARET', '(?:\\^)');
 
- 	createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true);
 
- 	exports.caretTrimReplace = '$1^';
 
- 	createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`);
 
- 	createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`);
 
- 	createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`);
 
- 	createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`);
 
- 	createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT]
 
- 	}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true);
 
- 	exports.comparatorTrimReplace = '$1$2$3';
 
- 	createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` +
 
- 	                   `\\s+-\\s+` +
 
- 	                   `(${src[t.XRANGEPLAIN]})` +
 
- 	                   `\\s*$`);
 
- 	createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` +
 
- 	                        `\\s+-\\s+` +
 
- 	                        `(${src[t.XRANGEPLAINLOOSE]})` +
 
- 	                        `\\s*$`);
 
- 	createToken('STAR', '(<|>)?=?\\s*\\*');
 
- 	createToken('GTE0', '^\\s*>=\\s*0\\.0\\.0\\s*$');
 
- 	createToken('GTE0PRE', '^\\s*>=\\s*0\\.0\\.0-0\\s*$'); 
 
- } (re$1, re$1.exports));
 
- var reExports = re$1.exports;
 
- const looseOption = Object.freeze({ loose: true });
 
- const emptyOpts = Object.freeze({ });
 
- const parseOptions$1 = options => {
 
-   if (!options) {
 
-     return emptyOpts
 
-   }
 
-   if (typeof options !== 'object') {
 
-     return looseOption
 
-   }
 
-   return options
 
- };
 
- var parseOptions_1 = parseOptions$1;
 
- const numeric = /^[0-9]+$/;
 
- const compareIdentifiers$1 = (a, b) => {
 
-   const anum = numeric.test(a);
 
-   const bnum = numeric.test(b);
 
-   if (anum && bnum) {
 
-     a = +a;
 
-     b = +b;
 
-   }
 
-   return a === b ? 0
 
-     : (anum && !bnum) ? -1
 
-     : (bnum && !anum) ? 1
 
-     : a < b ? -1
 
-     : 1
 
- };
 
- const rcompareIdentifiers = (a, b) => compareIdentifiers$1(b, a);
 
- var identifiers = {
 
-   compareIdentifiers: compareIdentifiers$1,
 
-   rcompareIdentifiers,
 
- };
 
- const debug = debug_1;
 
- const { MAX_LENGTH, MAX_SAFE_INTEGER } = constants$1;
 
- const { safeRe: re, t } = reExports;
 
- const parseOptions = parseOptions_1;
 
- const { compareIdentifiers } = identifiers;
 
- let SemVer$1 = class SemVer {
 
-   constructor (version, options) {
 
-     options = parseOptions(options);
 
-     if (version instanceof SemVer) {
 
-       if (version.loose === !!options.loose &&
 
-           version.includePrerelease === !!options.includePrerelease) {
 
-         return version
 
-       } else {
 
-         version = version.version;
 
-       }
 
-     } else if (typeof version !== 'string') {
 
-       throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version}".`)
 
-     }
 
-     if (version.length > MAX_LENGTH) {
 
-       throw new TypeError(
 
-         `version is longer than ${MAX_LENGTH} characters`
 
-       )
 
-     }
 
-     debug('SemVer', version, options);
 
-     this.options = options;
 
-     this.loose = !!options.loose;
 
-     this.includePrerelease = !!options.includePrerelease;
 
-     const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]);
 
-     if (!m) {
 
-       throw new TypeError(`Invalid Version: ${version}`)
 
-     }
 
-     this.raw = version;
 
-     this.major = +m[1];
 
-     this.minor = +m[2];
 
-     this.patch = +m[3];
 
-     if (this.major > MAX_SAFE_INTEGER || this.major < 0) {
 
-       throw new TypeError('Invalid major version')
 
-     }
 
-     if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {
 
-       throw new TypeError('Invalid minor version')
 
-     }
 
-     if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {
 
-       throw new TypeError('Invalid patch version')
 
-     }
 
-     if (!m[4]) {
 
-       this.prerelease = [];
 
-     } else {
 
-       this.prerelease = m[4].split('.').map((id) => {
 
-         if (/^[0-9]+$/.test(id)) {
 
-           const num = +id;
 
-           if (num >= 0 && num < MAX_SAFE_INTEGER) {
 
-             return num
 
-           }
 
-         }
 
-         return id
 
-       });
 
-     }
 
-     this.build = m[5] ? m[5].split('.') : [];
 
-     this.format();
 
-   }
 
-   format () {
 
-     this.version = `${this.major}.${this.minor}.${this.patch}`;
 
-     if (this.prerelease.length) {
 
-       this.version += `-${this.prerelease.join('.')}`;
 
-     }
 
-     return this.version
 
-   }
 
-   toString () {
 
-     return this.version
 
-   }
 
-   compare (other) {
 
-     debug('SemVer.compare', this.version, this.options, other);
 
-     if (!(other instanceof SemVer)) {
 
-       if (typeof other === 'string' && other === this.version) {
 
-         return 0
 
-       }
 
-       other = new SemVer(other, this.options);
 
-     }
 
-     if (other.version === this.version) {
 
-       return 0
 
-     }
 
-     return this.compareMain(other) || this.comparePre(other)
 
-   }
 
-   compareMain (other) {
 
-     if (!(other instanceof SemVer)) {
 
-       other = new SemVer(other, this.options);
 
-     }
 
-     return (
 
-       compareIdentifiers(this.major, other.major) ||
 
-       compareIdentifiers(this.minor, other.minor) ||
 
-       compareIdentifiers(this.patch, other.patch)
 
-     )
 
-   }
 
-   comparePre (other) {
 
-     if (!(other instanceof SemVer)) {
 
-       other = new SemVer(other, this.options);
 
-     }
 
-     if (this.prerelease.length && !other.prerelease.length) {
 
-       return -1
 
-     } else if (!this.prerelease.length && other.prerelease.length) {
 
-       return 1
 
-     } else if (!this.prerelease.length && !other.prerelease.length) {
 
-       return 0
 
-     }
 
-     let i = 0;
 
-     do {
 
-       const a = this.prerelease[i];
 
-       const b = other.prerelease[i];
 
-       debug('prerelease compare', i, a, b);
 
-       if (a === undefined && b === undefined) {
 
-         return 0
 
-       } else if (b === undefined) {
 
-         return 1
 
-       } else if (a === undefined) {
 
-         return -1
 
-       } else if (a === b) {
 
-         continue
 
-       } else {
 
-         return compareIdentifiers(a, b)
 
-       }
 
-     } while (++i)
 
-   }
 
-   compareBuild (other) {
 
-     if (!(other instanceof SemVer)) {
 
-       other = new SemVer(other, this.options);
 
-     }
 
-     let i = 0;
 
-     do {
 
-       const a = this.build[i];
 
-       const b = other.build[i];
 
-       debug('prerelease compare', i, a, b);
 
-       if (a === undefined && b === undefined) {
 
-         return 0
 
-       } else if (b === undefined) {
 
-         return 1
 
-       } else if (a === undefined) {
 
-         return -1
 
-       } else if (a === b) {
 
-         continue
 
-       } else {
 
-         return compareIdentifiers(a, b)
 
-       }
 
-     } while (++i)
 
-   }
 
-   inc (release, identifier, identifierBase) {
 
-     switch (release) {
 
-       case 'premajor':
 
-         this.prerelease.length = 0;
 
-         this.patch = 0;
 
-         this.minor = 0;
 
-         this.major++;
 
-         this.inc('pre', identifier, identifierBase);
 
-         break
 
-       case 'preminor':
 
-         this.prerelease.length = 0;
 
-         this.patch = 0;
 
-         this.minor++;
 
-         this.inc('pre', identifier, identifierBase);
 
-         break
 
-       case 'prepatch':
 
-         this.prerelease.length = 0;
 
-         this.inc('patch', identifier, identifierBase);
 
-         this.inc('pre', identifier, identifierBase);
 
-         break
 
-       case 'prerelease':
 
-         if (this.prerelease.length === 0) {
 
-           this.inc('patch', identifier, identifierBase);
 
-         }
 
-         this.inc('pre', identifier, identifierBase);
 
-         break
 
-       case 'major':
 
-         if (
 
-           this.minor !== 0 ||
 
-           this.patch !== 0 ||
 
-           this.prerelease.length === 0
 
-         ) {
 
-           this.major++;
 
-         }
 
-         this.minor = 0;
 
-         this.patch = 0;
 
-         this.prerelease = [];
 
-         break
 
-       case 'minor':
 
-         if (this.patch !== 0 || this.prerelease.length === 0) {
 
-           this.minor++;
 
-         }
 
-         this.patch = 0;
 
-         this.prerelease = [];
 
-         break
 
-       case 'patch':
 
-         if (this.prerelease.length === 0) {
 
-           this.patch++;
 
-         }
 
-         this.prerelease = [];
 
-         break
 
-       case 'pre': {
 
-         const base = Number(identifierBase) ? 1 : 0;
 
-         if (!identifier && identifierBase === false) {
 
-           throw new Error('invalid increment argument: identifier is empty')
 
-         }
 
-         if (this.prerelease.length === 0) {
 
-           this.prerelease = [base];
 
-         } else {
 
-           let i = this.prerelease.length;
 
-           while (--i >= 0) {
 
-             if (typeof this.prerelease[i] === 'number') {
 
-               this.prerelease[i]++;
 
-               i = -2;
 
-             }
 
-           }
 
-           if (i === -1) {
 
-             if (identifier === this.prerelease.join('.') && identifierBase === false) {
 
-               throw new Error('invalid increment argument: identifier already exists')
 
-             }
 
-             this.prerelease.push(base);
 
-           }
 
-         }
 
-         if (identifier) {
 
-           let prerelease = [identifier, base];
 
-           if (identifierBase === false) {
 
-             prerelease = [identifier];
 
-           }
 
-           if (compareIdentifiers(this.prerelease[0], identifier) === 0) {
 
-             if (isNaN(this.prerelease[1])) {
 
-               this.prerelease = prerelease;
 
-             }
 
-           } else {
 
-             this.prerelease = prerelease;
 
-           }
 
-         }
 
-         break
 
-       }
 
-       default:
 
-         throw new Error(`invalid increment argument: ${release}`)
 
-     }
 
-     this.raw = this.format();
 
-     if (this.build.length) {
 
-       this.raw += `+${this.build.join('.')}`;
 
-     }
 
-     return this
 
-   }
 
- };
 
- var semver = SemVer$1;
 
- const SemVer = semver;
 
- const parse$6 = (version, options, throwErrors = false) => {
 
-   if (version instanceof SemVer) {
 
-     return version
 
-   }
 
-   try {
 
-     return new SemVer(version, options)
 
-   } catch (er) {
 
-     if (!throwErrors) {
 
-       return null
 
-     }
 
-     throw er
 
-   }
 
- };
 
- var parse_1 = parse$6;
 
- const parse$5 = parse_1;
 
- const valid$1 = (version, options) => {
 
-   const v = parse$5(version, options);
 
-   return v ? v.version : null
 
- };
 
- var valid_1 = valid$1;
 
- const parse$4 = parse_1;
 
- const clean = (version, options) => {
 
-   const s = parse$4(version.trim().replace(/^[=v]+/, ''), options);
 
-   return s ? s.version : null
 
- };
 
- var clean_1 = clean;
 
- const require$$1$3 = [
 
- 	"0BSD",
 
- 	"AAL",
 
- 	"ADSL",
 
- 	"AFL-1.1",
 
- 	"AFL-1.2",
 
- 	"AFL-2.0",
 
- 	"AFL-2.1",
 
- 	"AFL-3.0",
 
- 	"AGPL-1.0-only",
 
- 	"AGPL-1.0-or-later",
 
- 	"AGPL-3.0-only",
 
- 	"AGPL-3.0-or-later",
 
- 	"AMDPLPA",
 
- 	"AML",
 
- 	"AMPAS",
 
- 	"ANTLR-PD",
 
- 	"ANTLR-PD-fallback",
 
- 	"APAFML",
 
- 	"APL-1.0",
 
- 	"APSL-1.0",
 
- 	"APSL-1.1",
 
- 	"APSL-1.2",
 
- 	"APSL-2.0",
 
- 	"ASWF-Digital-Assets-1.0",
 
- 	"ASWF-Digital-Assets-1.1",
 
- 	"Abstyles",
 
- 	"AdaCore-doc",
 
- 	"Adobe-2006",
 
- 	"Adobe-Glyph",
 
- 	"Adobe-Utopia",
 
- 	"Afmparse",
 
- 	"Aladdin",
 
- 	"Apache-1.0",
 
- 	"Apache-1.1",
 
- 	"Apache-2.0",
 
- 	"App-s2p",
 
- 	"Arphic-1999",
 
- 	"Artistic-1.0",
 
- 	"Artistic-1.0-Perl",
 
- 	"Artistic-1.0-cl8",
 
- 	"Artistic-2.0",
 
- 	"BSD-1-Clause",
 
- 	"BSD-2-Clause",
 
- 	"BSD-2-Clause-Patent",
 
- 	"BSD-2-Clause-Views",
 
- 	"BSD-3-Clause",
 
- 	"BSD-3-Clause-Attribution",
 
- 	"BSD-3-Clause-Clear",
 
- 	"BSD-3-Clause-HP",
 
- 	"BSD-3-Clause-LBNL",
 
- 	"BSD-3-Clause-Modification",
 
- 	"BSD-3-Clause-No-Military-License",
 
- 	"BSD-3-Clause-No-Nuclear-License",
 
- 	"BSD-3-Clause-No-Nuclear-License-2014",
 
- 	"BSD-3-Clause-No-Nuclear-Warranty",
 
- 	"BSD-3-Clause-Open-MPI",
 
- 	"BSD-3-Clause-Sun",
 
- 	"BSD-3-Clause-flex",
 
- 	"BSD-4-Clause",
 
- 	"BSD-4-Clause-Shortened",
 
- 	"BSD-4-Clause-UC",
 
- 	"BSD-4.3RENO",
 
- 	"BSD-4.3TAHOE",
 
- 	"BSD-Advertising-Acknowledgement",
 
- 	"BSD-Attribution-HPND-disclaimer",
 
- 	"BSD-Inferno-Nettverk",
 
- 	"BSD-Protection",
 
- 	"BSD-Source-Code",
 
- 	"BSD-Systemics",
 
- 	"BSL-1.0",
 
- 	"BUSL-1.1",
 
- 	"Baekmuk",
 
- 	"Bahyph",
 
- 	"Barr",
 
- 	"Beerware",
 
- 	"BitTorrent-1.0",
 
- 	"BitTorrent-1.1",
 
- 	"Bitstream-Charter",
 
- 	"Bitstream-Vera",
 
- 	"BlueOak-1.0.0",
 
- 	"Boehm-GC",
 
- 	"Borceux",
 
- 	"Brian-Gladman-3-Clause",
 
- 	"C-UDA-1.0",
 
- 	"CAL-1.0",
 
- 	"CAL-1.0-Combined-Work-Exception",
 
- 	"CATOSL-1.1",
 
- 	"CC-BY-1.0",
 
- 	"CC-BY-2.0",
 
- 	"CC-BY-2.5",
 
- 	"CC-BY-2.5-AU",
 
- 	"CC-BY-3.0",
 
- 	"CC-BY-3.0-AT",
 
- 	"CC-BY-3.0-DE",
 
- 	"CC-BY-3.0-IGO",
 
- 	"CC-BY-3.0-NL",
 
- 	"CC-BY-3.0-US",
 
- 	"CC-BY-4.0",
 
- 	"CC-BY-NC-1.0",
 
- 	"CC-BY-NC-2.0",
 
- 	"CC-BY-NC-2.5",
 
- 	"CC-BY-NC-3.0",
 
- 	"CC-BY-NC-3.0-DE",
 
- 	"CC-BY-NC-4.0",
 
- 	"CC-BY-NC-ND-1.0",
 
- 	"CC-BY-NC-ND-2.0",
 
- 	"CC-BY-NC-ND-2.5",
 
- 	"CC-BY-NC-ND-3.0",
 
- 	"CC-BY-NC-ND-3.0-DE",
 
- 	"CC-BY-NC-ND-3.0-IGO",
 
- 	"CC-BY-NC-ND-4.0",
 
- 	"CC-BY-NC-SA-1.0",
 
- 	"CC-BY-NC-SA-2.0",
 
- 	"CC-BY-NC-SA-2.0-DE",
 
- 	"CC-BY-NC-SA-2.0-FR",
 
- 	"CC-BY-NC-SA-2.0-UK",
 
- 	"CC-BY-NC-SA-2.5",
 
- 	"CC-BY-NC-SA-3.0",
 
- 	"CC-BY-NC-SA-3.0-DE",
 
- 	"CC-BY-NC-SA-3.0-IGO",
 
- 	"CC-BY-NC-SA-4.0",
 
- 	"CC-BY-ND-1.0",
 
- 	"CC-BY-ND-2.0",
 
- 	"CC-BY-ND-2.5",
 
- 	"CC-BY-ND-3.0",
 
- 	"CC-BY-ND-3.0-DE",
 
- 	"CC-BY-ND-4.0",
 
- 	"CC-BY-SA-1.0",
 
- 	"CC-BY-SA-2.0",
 
- 	"CC-BY-SA-2.0-UK",
 
- 	"CC-BY-SA-2.1-JP",
 
- 	"CC-BY-SA-2.5",
 
- 	"CC-BY-SA-3.0",
 
- 	"CC-BY-SA-3.0-AT",
 
- 	"CC-BY-SA-3.0-DE",
 
- 	"CC-BY-SA-3.0-IGO",
 
- 	"CC-BY-SA-4.0",
 
- 	"CC-PDDC",
 
- 	"CC0-1.0",
 
- 	"CDDL-1.0",
 
- 	"CDDL-1.1",
 
- 	"CDL-1.0",
 
- 	"CDLA-Permissive-1.0",
 
- 	"CDLA-Permissive-2.0",
 
- 	"CDLA-Sharing-1.0",
 
- 	"CECILL-1.0",
 
- 	"CECILL-1.1",
 
- 	"CECILL-2.0",
 
- 	"CECILL-2.1",
 
- 	"CECILL-B",
 
- 	"CECILL-C",
 
- 	"CERN-OHL-1.1",
 
- 	"CERN-OHL-1.2",
 
- 	"CERN-OHL-P-2.0",
 
- 	"CERN-OHL-S-2.0",
 
- 	"CERN-OHL-W-2.0",
 
- 	"CFITSIO",
 
- 	"CMU-Mach",
 
- 	"CNRI-Jython",
 
- 	"CNRI-Python",
 
- 	"CNRI-Python-GPL-Compatible",
 
- 	"COIL-1.0",
 
- 	"CPAL-1.0",
 
- 	"CPL-1.0",
 
- 	"CPOL-1.02",
 
- 	"CUA-OPL-1.0",
 
- 	"Caldera",
 
- 	"ClArtistic",
 
- 	"Clips",
 
- 	"Community-Spec-1.0",
 
- 	"Condor-1.1",
 
- 	"Cornell-Lossless-JPEG",
 
- 	"Cronyx",
 
- 	"Crossword",
 
- 	"CrystalStacker",
 
- 	"Cube",
 
- 	"D-FSL-1.0",
 
- 	"DL-DE-BY-2.0",
 
- 	"DL-DE-ZERO-2.0",
 
- 	"DOC",
 
- 	"DRL-1.0",
 
- 	"DSDP",
 
- 	"Dotseqn",
 
- 	"ECL-1.0",
 
- 	"ECL-2.0",
 
- 	"EFL-1.0",
 
- 	"EFL-2.0",
 
- 	"EPICS",
 
- 	"EPL-1.0",
 
- 	"EPL-2.0",
 
- 	"EUDatagrid",
 
- 	"EUPL-1.0",
 
- 	"EUPL-1.1",
 
- 	"EUPL-1.2",
 
- 	"Elastic-2.0",
 
- 	"Entessa",
 
- 	"ErlPL-1.1",
 
- 	"Eurosym",
 
- 	"FBM",
 
- 	"FDK-AAC",
 
- 	"FSFAP",
 
- 	"FSFUL",
 
- 	"FSFULLR",
 
- 	"FSFULLRWD",
 
- 	"FTL",
 
- 	"Fair",
 
- 	"Ferguson-Twofish",
 
- 	"Frameworx-1.0",
 
- 	"FreeBSD-DOC",
 
- 	"FreeImage",
 
- 	"Furuseth",
 
- 	"GD",
 
- 	"GFDL-1.1-invariants-only",
 
- 	"GFDL-1.1-invariants-or-later",
 
- 	"GFDL-1.1-no-invariants-only",
 
- 	"GFDL-1.1-no-invariants-or-later",
 
- 	"GFDL-1.1-only",
 
- 	"GFDL-1.1-or-later",
 
- 	"GFDL-1.2-invariants-only",
 
- 	"GFDL-1.2-invariants-or-later",
 
- 	"GFDL-1.2-no-invariants-only",
 
- 	"GFDL-1.2-no-invariants-or-later",
 
- 	"GFDL-1.2-only",
 
- 	"GFDL-1.2-or-later",
 
- 	"GFDL-1.3-invariants-only",
 
- 	"GFDL-1.3-invariants-or-later",
 
- 	"GFDL-1.3-no-invariants-only",
 
- 	"GFDL-1.3-no-invariants-or-later",
 
- 	"GFDL-1.3-only",
 
- 	"GFDL-1.3-or-later",
 
- 	"GL2PS",
 
- 	"GLWTPL",
 
- 	"GPL-1.0-only",
 
- 	"GPL-1.0-or-later",
 
- 	"GPL-2.0-only",
 
- 	"GPL-2.0-or-later",
 
- 	"GPL-3.0-only",
 
- 	"GPL-3.0-or-later",
 
- 	"Giftware",
 
- 	"Glide",
 
- 	"Glulxe",
 
- 	"Graphics-Gems",
 
- 	"HP-1986",
 
- 	"HP-1989",
 
- 	"HPND",
 
- 	"HPND-DEC",
 
- 	"HPND-Markus-Kuhn",
 
- 	"HPND-Pbmplus",
 
- 	"HPND-UC",
 
- 	"HPND-doc",
 
- 	"HPND-doc-sell",
 
- 	"HPND-export-US",
 
- 	"HPND-export-US-modify",
 
- 	"HPND-sell-regexpr",
 
- 	"HPND-sell-variant",
 
- 	"HPND-sell-variant-MIT-disclaimer",
 
- 	"HTMLTIDY",
 
- 	"HaskellReport",
 
- 	"Hippocratic-2.1",
 
- 	"IBM-pibs",
 
- 	"ICU",
 
- 	"IEC-Code-Components-EULA",
 
- 	"IJG",
 
- 	"IJG-short",
 
- 	"IPA",
 
- 	"IPL-1.0",
 
- 	"ISC",
 
- 	"ImageMagick",
 
- 	"Imlib2",
 
- 	"Info-ZIP",
 
- 	"Inner-Net-2.0",
 
- 	"Intel",
 
- 	"Intel-ACPI",
 
- 	"Interbase-1.0",
 
- 	"JPL-image",
 
- 	"JPNIC",
 
- 	"JSON",
 
- 	"Jam",
 
- 	"JasPer-2.0",
 
- 	"Kastrup",
 
- 	"Kazlib",
 
- 	"Knuth-CTAN",
 
- 	"LAL-1.2",
 
- 	"LAL-1.3",
 
- 	"LGPL-2.0-only",
 
- 	"LGPL-2.0-or-later",
 
- 	"LGPL-2.1-only",
 
- 	"LGPL-2.1-or-later",
 
- 	"LGPL-3.0-only",
 
- 	"LGPL-3.0-or-later",
 
- 	"LGPLLR",
 
- 	"LOOP",
 
- 	"LPL-1.0",
 
- 	"LPL-1.02",
 
- 	"LPPL-1.0",
 
- 	"LPPL-1.1",
 
- 	"LPPL-1.2",
 
- 	"LPPL-1.3a",
 
- 	"LPPL-1.3c",
 
- 	"LZMA-SDK-9.11-to-9.20",
 
- 	"LZMA-SDK-9.22",
 
- 	"Latex2e",
 
- 	"Latex2e-translated-notice",
 
- 	"Leptonica",
 
- 	"LiLiQ-P-1.1",
 
- 	"LiLiQ-R-1.1",
 
- 	"LiLiQ-Rplus-1.1",
 
- 	"Libpng",
 
- 	"Linux-OpenIB",
 
- 	"Linux-man-pages-1-para",
 
- 	"Linux-man-pages-copyleft",
 
- 	"Linux-man-pages-copyleft-2-para",
 
- 	"Linux-man-pages-copyleft-var",
 
- 	"Lucida-Bitmap-Fonts",
 
- 	"MIT",
 
- 	"MIT-0",
 
- 	"MIT-CMU",
 
- 	"MIT-Festival",
 
- 	"MIT-Modern-Variant",
 
- 	"MIT-Wu",
 
- 	"MIT-advertising",
 
- 	"MIT-enna",
 
- 	"MIT-feh",
 
- 	"MIT-open-group",
 
- 	"MIT-testregex",
 
- 	"MITNFA",
 
- 	"MMIXware",
 
- 	"MPEG-SSG",
 
- 	"MPL-1.0",
 
- 	"MPL-1.1",
 
- 	"MPL-2.0",
 
- 	"MPL-2.0-no-copyleft-exception",
 
- 	"MS-LPL",
 
- 	"MS-PL",
 
- 	"MS-RL",
 
- 	"MTLL",
 
- 	"MakeIndex",
 
- 	"Martin-Birgmeier",
 
- 	"McPhee-slideshow",
 
- 	"Minpack",
 
- 	"MirOS",
 
- 	"Motosoto",
 
- 	"MulanPSL-1.0",
 
- 	"MulanPSL-2.0",
 
- 	"Multics",
 
- 	"Mup",
 
- 	"NAIST-2003",
 
- 	"NASA-1.3",
 
- 	"NBPL-1.0",
 
- 	"NCGL-UK-2.0",
 
- 	"NCSA",
 
- 	"NGPL",
 
- 	"NICTA-1.0",
 
- 	"NIST-PD",
 
- 	"NIST-PD-fallback",
 
- 	"NIST-Software",
 
- 	"NLOD-1.0",
 
- 	"NLOD-2.0",
 
- 	"NLPL",
 
- 	"NOSL",
 
- 	"NPL-1.0",
 
- 	"NPL-1.1",
 
- 	"NPOSL-3.0",
 
- 	"NRL",
 
- 	"NTP",
 
- 	"NTP-0",
 
- 	"Naumen",
 
- 	"Net-SNMP",
 
- 	"NetCDF",
 
- 	"Newsletr",
 
- 	"Nokia",
 
- 	"Noweb",
 
- 	"O-UDA-1.0",
 
- 	"OCCT-PL",
 
- 	"OCLC-2.0",
 
- 	"ODC-By-1.0",
 
- 	"ODbL-1.0",
 
- 	"OFFIS",
 
- 	"OFL-1.0",
 
- 	"OFL-1.0-RFN",
 
- 	"OFL-1.0-no-RFN",
 
- 	"OFL-1.1",
 
- 	"OFL-1.1-RFN",
 
- 	"OFL-1.1-no-RFN",
 
- 	"OGC-1.0",
 
- 	"OGDL-Taiwan-1.0",
 
- 	"OGL-Canada-2.0",
 
- 	"OGL-UK-1.0",
 
- 	"OGL-UK-2.0",
 
- 	"OGL-UK-3.0",
 
- 	"OGTSL",
 
- 	"OLDAP-1.1",
 
- 	"OLDAP-1.2",
 
- 	"OLDAP-1.3",
 
- 	"OLDAP-1.4",
 
- 	"OLDAP-2.0",
 
- 	"OLDAP-2.0.1",
 
- 	"OLDAP-2.1",
 
- 	"OLDAP-2.2",
 
- 	"OLDAP-2.2.1",
 
- 	"OLDAP-2.2.2",
 
- 	"OLDAP-2.3",
 
- 	"OLDAP-2.4",
 
- 	"OLDAP-2.5",
 
- 	"OLDAP-2.6",
 
- 	"OLDAP-2.7",
 
- 	"OLDAP-2.8",
 
- 	"OLFL-1.3",
 
- 	"OML",
 
- 	"OPL-1.0",
 
- 	"OPL-UK-3.0",
 
- 	"OPUBL-1.0",
 
- 	"OSET-PL-2.1",
 
- 	"OSL-1.0",
 
- 	"OSL-1.1",
 
- 	"OSL-2.0",
 
- 	"OSL-2.1",
 
- 	"OSL-3.0",
 
- 	"OpenPBS-2.3",
 
- 	"OpenSSL",
 
- 	"PADL",
 
- 	"PDDL-1.0",
 
- 	"PHP-3.0",
 
- 	"PHP-3.01",
 
- 	"PSF-2.0",
 
- 	"Parity-6.0.0",
 
- 	"Parity-7.0.0",
 
- 	"Plexus",
 
- 	"PolyForm-Noncommercial-1.0.0",
 
- 	"PolyForm-Small-Business-1.0.0",
 
- 	"PostgreSQL",
 
- 	"Python-2.0",
 
- 	"Python-2.0.1",
 
- 	"QPL-1.0",
 
- 	"QPL-1.0-INRIA-2004",
 
- 	"Qhull",
 
- 	"RHeCos-1.1",
 
- 	"RPL-1.1",
 
- 	"RPL-1.5",
 
- 	"RPSL-1.0",
 
- 	"RSA-MD",
 
- 	"RSCPL",
 
- 	"Rdisc",
 
- 	"Ruby",
 
- 	"SAX-PD",
 
- 	"SCEA",
 
- 	"SGI-B-1.0",
 
- 	"SGI-B-1.1",
 
- 	"SGI-B-2.0",
 
- 	"SGI-OpenGL",
 
- 	"SGP4",
 
- 	"SHL-0.5",
 
- 	"SHL-0.51",
 
- 	"SISSL",
 
- 	"SISSL-1.2",
 
- 	"SL",
 
- 	"SMLNJ",
 
- 	"SMPPL",
 
- 	"SNIA",
 
- 	"SPL-1.0",
 
- 	"SSH-OpenSSH",
 
- 	"SSH-short",
 
- 	"SSPL-1.0",
 
- 	"SWL",
 
- 	"Saxpath",
 
- 	"SchemeReport",
 
- 	"Sendmail",
 
- 	"Sendmail-8.23",
 
- 	"SimPL-2.0",
 
- 	"Sleepycat",
 
- 	"Soundex",
 
- 	"Spencer-86",
 
- 	"Spencer-94",
 
- 	"Spencer-99",
 
- 	"SugarCRM-1.1.3",
 
- 	"SunPro",
 
- 	"Symlinks",
 
- 	"TAPR-OHL-1.0",
 
- 	"TCL",
 
- 	"TCP-wrappers",
 
- 	"TMate",
 
- 	"TORQUE-1.1",
 
- 	"TOSL",
 
- 	"TPDL",
 
- 	"TPL-1.0",
 
- 	"TTWL",
 
- 	"TTYP0",
 
- 	"TU-Berlin-1.0",
 
- 	"TU-Berlin-2.0",
 
- 	"TermReadKey",
 
- 	"UCAR",
 
- 	"UCL-1.0",
 
- 	"UPL-1.0",
 
- 	"URT-RLE",
 
- 	"Unicode-DFS-2015",
 
- 	"Unicode-DFS-2016",
 
- 	"Unicode-TOU",
 
- 	"UnixCrypt",
 
- 	"Unlicense",
 
- 	"VOSTROM",
 
- 	"VSL-1.0",
 
- 	"Vim",
 
- 	"W3C",
 
- 	"W3C-19980720",
 
- 	"W3C-20150513",
 
- 	"WTFPL",
 
- 	"Watcom-1.0",
 
- 	"Widget-Workshop",
 
- 	"Wsuipa",
 
- 	"X11",
 
- 	"X11-distribute-modifications-variant",
 
- 	"XFree86-1.1",
 
- 	"XSkat",
 
- 	"Xdebug-1.03",
 
- 	"Xerox",
 
- 	"Xfig",
 
- 	"Xnet",
 
- 	"YPL-1.0",
 
- 	"YPL-1.1",
 
- 	"ZPL-1.1",
 
- 	"ZPL-2.0",
 
- 	"ZPL-2.1",
 
- 	"Zed",
 
- 	"Zeeff",
 
- 	"Zend-2.0",
 
- 	"Zimbra-1.3",
 
- 	"Zimbra-1.4",
 
- 	"Zlib",
 
- 	"blessing",
 
- 	"bzip2-1.0.6",
 
- 	"check-cvs",
 
- 	"checkmk",
 
- 	"copyleft-next-0.3.0",
 
- 	"copyleft-next-0.3.1",
 
- 	"curl",
 
- 	"diffmark",
 
- 	"dtoa",
 
- 	"dvipdfm",
 
- 	"eGenix",
 
- 	"etalab-2.0",
 
- 	"fwlw",
 
- 	"gSOAP-1.3b",
 
- 	"gnuplot",
 
- 	"iMatix",
 
- 	"libpng-2.0",
 
- 	"libselinux-1.0",
 
- 	"libtiff",
 
- 	"libutil-David-Nugent",
 
- 	"lsof",
 
- 	"magaz",
 
- 	"metamail",
 
- 	"mpi-permissive",
 
- 	"mpich2",
 
- 	"mplus",
 
- 	"pnmstitch",
 
- 	"psfrag",
 
- 	"psutils",
 
- 	"python-ldap",
 
- 	"snprintf",
 
- 	"ssh-keyscan",
 
- 	"swrule",
 
- 	"ulem",
 
- 	"w3m",
 
- 	"xinetd",
 
- 	"xlock",
 
- 	"xpp",
 
- 	"zlib-acknowledgement"
 
- ];
 
- const require$$1$2 = [
 
- 	"AGPL-1.0",
 
- 	"AGPL-3.0",
 
- 	"BSD-2-Clause-FreeBSD",
 
- 	"BSD-2-Clause-NetBSD",
 
- 	"GFDL-1.1",
 
- 	"GFDL-1.2",
 
- 	"GFDL-1.3",
 
- 	"GPL-1.0",
 
- 	"GPL-1.0+",
 
- 	"GPL-2.0",
 
- 	"GPL-2.0+",
 
- 	"GPL-2.0-with-GCC-exception",
 
- 	"GPL-2.0-with-autoconf-exception",
 
- 	"GPL-2.0-with-bison-exception",
 
- 	"GPL-2.0-with-classpath-exception",
 
- 	"GPL-2.0-with-font-exception",
 
- 	"GPL-3.0",
 
- 	"GPL-3.0+",
 
- 	"GPL-3.0-with-GCC-exception",
 
- 	"GPL-3.0-with-autoconf-exception",
 
- 	"LGPL-2.0",
 
- 	"LGPL-2.0+",
 
- 	"LGPL-2.1",
 
- 	"LGPL-2.1+",
 
- 	"LGPL-3.0",
 
- 	"LGPL-3.0+",
 
- 	"Nunit",
 
- 	"StandardML-NJ",
 
- 	"bzip2-1.0.5",
 
- 	"eCos-2.0",
 
- 	"wxWindows"
 
- ];
 
- const require$$2 = [
 
- 	"389-exception",
 
- 	"Asterisk-exception",
 
- 	"Autoconf-exception-2.0",
 
- 	"Autoconf-exception-3.0",
 
- 	"Autoconf-exception-generic",
 
- 	"Autoconf-exception-generic-3.0",
 
- 	"Autoconf-exception-macro",
 
- 	"Bison-exception-2.2",
 
- 	"Bootloader-exception",
 
- 	"Classpath-exception-2.0",
 
- 	"CLISP-exception-2.0",
 
- 	"cryptsetup-OpenSSL-exception",
 
- 	"DigiRule-FOSS-exception",
 
- 	"eCos-exception-2.0",
 
- 	"Fawkes-Runtime-exception",
 
- 	"FLTK-exception",
 
- 	"Font-exception-2.0",
 
- 	"freertos-exception-2.0",
 
- 	"GCC-exception-2.0",
 
- 	"GCC-exception-2.0-note",
 
- 	"GCC-exception-3.1",
 
- 	"GNAT-exception",
 
- 	"GNU-compiler-exception",
 
- 	"gnu-javamail-exception",
 
- 	"GPL-3.0-interface-exception",
 
- 	"GPL-3.0-linking-exception",
 
- 	"GPL-3.0-linking-source-exception",
 
- 	"GPL-CC-1.0",
 
- 	"GStreamer-exception-2005",
 
- 	"GStreamer-exception-2008",
 
- 	"i2p-gpl-java-exception",
 
- 	"KiCad-libraries-exception",
 
- 	"LGPL-3.0-linking-exception",
 
- 	"libpri-OpenH323-exception",
 
- 	"Libtool-exception",
 
- 	"Linux-syscall-note",
 
- 	"LLGPL",
 
- 	"LLVM-exception",
 
- 	"LZMA-exception",
 
- 	"mif-exception",
 
- 	"OCaml-LGPL-linking-exception",
 
- 	"OCCT-exception-1.0",
 
- 	"OpenJDK-assembly-exception-1.0",
 
- 	"openvpn-openssl-exception",
 
- 	"PS-or-PDF-font-exception-20170817",
 
- 	"QPL-1.0-INRIA-2004-exception",
 
- 	"Qt-GPL-exception-1.0",
 
- 	"Qt-LGPL-exception-1.1",
 
- 	"Qwt-exception-1.0",
 
- 	"SANE-exception",
 
- 	"SHL-2.0",
 
- 	"SHL-2.1",
 
- 	"stunnel-exception",
 
- 	"SWI-exception",
 
- 	"Swift-exception",
 
- 	"Texinfo-exception",
 
- 	"u-boot-exception-2.0",
 
- 	"UBDL-exception",
 
- 	"Universal-FOSS-exception-1.0",
 
- 	"vsftpd-openssl-exception",
 
- 	"WxWindows-exception-3.1",
 
- 	"x11vnc-openssl-exception"
 
- ];
 
- var licenses = []
 
-   .concat(require$$1$3)
 
-   .concat(require$$1$2);
 
- var exceptions = require$$2;
 
- var scan$1 = function (source) {
 
-   var index = 0;
 
-   function hasMore () {
 
-     return index < source.length
 
-   }
 
-   function read (value) {
 
-     if (value instanceof RegExp) {
 
-       var chars = source.slice(index);
 
-       var match = chars.match(value);
 
-       if (match) {
 
-         index += match[0].length;
 
-         return match[0]
 
-       }
 
-     } else {
 
-       if (source.indexOf(value, index) === index) {
 
-         index += value.length;
 
-         return value
 
-       }
 
-     }
 
-   }
 
-   function skipWhitespace () {
 
-     read(/[ ]*/);
 
-   }
 
-   function operator () {
 
-     var string;
 
-     var possibilities = ['WITH', 'AND', 'OR', '(', ')', ':', '+'];
 
-     for (var i = 0; i < possibilities.length; i++) {
 
-       string = read(possibilities[i]);
 
-       if (string) {
 
-         break
 
-       }
 
-     }
 
-     if (string === '+' && index > 1 && source[index - 2] === ' ') {
 
-       throw new Error('Space before `+`')
 
-     }
 
-     return string && {
 
-       type: 'OPERATOR',
 
-       string: string
 
-     }
 
-   }
 
-   function idstring () {
 
-     return read(/[A-Za-z0-9-.]+/)
 
-   }
 
-   function expectIdstring () {
 
-     var string = idstring();
 
-     if (!string) {
 
-       throw new Error('Expected idstring at offset ' + index)
 
-     }
 
-     return string
 
-   }
 
-   function documentRef () {
 
-     if (read('DocumentRef-')) {
 
-       var string = expectIdstring();
 
-       return { type: 'DOCUMENTREF', string: string }
 
-     }
 
-   }
 
-   function licenseRef () {
 
-     if (read('LicenseRef-')) {
 
-       var string = expectIdstring();
 
-       return { type: 'LICENSEREF', string: string }
 
-     }
 
-   }
 
-   function identifier () {
 
-     var begin = index;
 
-     var string = idstring();
 
-     if (licenses.indexOf(string) !== -1) {
 
-       return {
 
-         type: 'LICENSE',
 
-         string: string
 
-       }
 
-     } else if (exceptions.indexOf(string) !== -1) {
 
-       return {
 
-         type: 'EXCEPTION',
 
-         string: string
 
-       }
 
-     }
 
-     index = begin;
 
-   }
 
-   function parseToken () {
 
-     return (
 
-       operator() ||
 
-       documentRef() ||
 
-       licenseRef() ||
 
-       identifier()
 
-     )
 
-   }
 
-   var tokens = [];
 
-   while (hasMore()) {
 
-     skipWhitespace();
 
-     if (!hasMore()) {
 
-       break
 
-     }
 
-     var token = parseToken();
 
-     if (!token) {
 
-       throw new Error('Unexpected `' + source[index] +
 
-                       '` at offset ' + index)
 
-     }
 
-     tokens.push(token);
 
-   }
 
-   return tokens
 
- };
 
- var parse$3 = function (tokens) {
 
-   var index = 0;
 
-   function hasMore () {
 
-     return index < tokens.length
 
-   }
 
-   function token () {
 
-     return hasMore() ? tokens[index] : null
 
-   }
 
-   function next () {
 
-     if (!hasMore()) {
 
-       throw new Error()
 
-     }
 
-     index++;
 
-   }
 
-   function parseOperator (operator) {
 
-     var t = token();
 
-     if (t && t.type === 'OPERATOR' && operator === t.string) {
 
-       next();
 
-       return t.string
 
-     }
 
-   }
 
-   function parseWith () {
 
-     if (parseOperator('WITH')) {
 
-       var t = token();
 
-       if (t && t.type === 'EXCEPTION') {
 
-         next();
 
-         return t.string
 
-       }
 
-       throw new Error('Expected exception after `WITH`')
 
-     }
 
-   }
 
-   function parseLicenseRef () {
 
-     var begin = index;
 
-     var string = '';
 
-     var t = token();
 
-     if (t.type === 'DOCUMENTREF') {
 
-       next();
 
-       string += 'DocumentRef-' + t.string + ':';
 
-       if (!parseOperator(':')) {
 
-         throw new Error('Expected `:` after `DocumentRef-...`')
 
-       }
 
-     }
 
-     t = token();
 
-     if (t.type === 'LICENSEREF') {
 
-       next();
 
-       string += 'LicenseRef-' + t.string;
 
-       return { license: string }
 
-     }
 
-     index = begin;
 
-   }
 
-   function parseLicense () {
 
-     var t = token();
 
-     if (t && t.type === 'LICENSE') {
 
-       next();
 
-       var node = { license: t.string };
 
-       if (parseOperator('+')) {
 
-         node.plus = true;
 
-       }
 
-       var exception = parseWith();
 
-       if (exception) {
 
-         node.exception = exception;
 
-       }
 
-       return node
 
-     }
 
-   }
 
-   function parseParenthesizedExpression () {
 
-     var left = parseOperator('(');
 
-     if (!left) {
 
-       return
 
-     }
 
-     var expr = parseExpression();
 
-     if (!parseOperator(')')) {
 
-       throw new Error('Expected `)`')
 
-     }
 
-     return expr
 
-   }
 
-   function parseAtom () {
 
-     return (
 
-       parseParenthesizedExpression() ||
 
-       parseLicenseRef() ||
 
-       parseLicense()
 
-     )
 
-   }
 
-   function makeBinaryOpParser (operator, nextParser) {
 
-     return function parseBinaryOp () {
 
-       var left = nextParser();
 
-       if (!left) {
 
-         return
 
-       }
 
-       if (!parseOperator(operator)) {
 
-         return left
 
-       }
 
-       var right = parseBinaryOp();
 
-       if (!right) {
 
-         throw new Error('Expected expression')
 
-       }
 
-       return {
 
-         left: left,
 
-         conjunction: operator.toLowerCase(),
 
-         right: right
 
-       }
 
-     }
 
-   }
 
-   var parseAnd = makeBinaryOpParser('AND', parseAtom);
 
-   var parseExpression = makeBinaryOpParser('OR', parseAnd);
 
-   var node = parseExpression();
 
-   if (!node || hasMore()) {
 
-     throw new Error('Syntax error')
 
-   }
 
-   return node
 
- };
 
- var scan = scan$1;
 
- var parse$2 = parse$3;
 
- var spdxExpressionParse = function (source) {
 
-   return parse$2(scan(source))
 
- };
 
- var parse$1 = spdxExpressionParse;
 
- var spdxLicenseIds = require$$1$3;
 
- function valid (string) {
 
-   try {
 
-     parse$1(string);
 
-     return true
 
-   } catch (error) {
 
-     return false
 
-   }
 
- }
 
- function sortTranspositions(a, b) {
 
-   var length = b[0].length - a[0].length;
 
-   if (length !== 0) return length
 
-   return a[0].toUpperCase().localeCompare(b[0].toUpperCase())
 
- }
 
- var transpositions = [
 
-   ['APGL', 'AGPL'],
 
-   ['Gpl', 'GPL'],
 
-   ['GLP', 'GPL'],
 
-   ['APL', 'Apache'],
 
-   ['ISD', 'ISC'],
 
-   ['GLP', 'GPL'],
 
-   ['IST', 'ISC'],
 
-   ['Claude', 'Clause'],
 
-   [' or later', '+'],
 
-   [' International', ''],
 
-   ['GNU', 'GPL'],
 
-   ['GUN', 'GPL'],
 
-   ['+', ''],
 
-   ['GNU GPL', 'GPL'],
 
-   ['GNU LGPL', 'LGPL'],
 
-   ['GNU/GPL', 'GPL'],
 
-   ['GNU GLP', 'GPL'],
 
-   ['GNU LESSER GENERAL PUBLIC LICENSE', 'LGPL'],
 
-   ['GNU Lesser General Public License', 'LGPL'],
 
-   ['GNU LESSER GENERAL PUBLIC LICENSE', 'LGPL-2.1'],
 
-   ['GNU Lesser General Public License', 'LGPL-2.1'],
 
-   ['LESSER GENERAL PUBLIC LICENSE', 'LGPL'],
 
-   ['Lesser General Public License', 'LGPL'],
 
-   ['LESSER GENERAL PUBLIC LICENSE', 'LGPL-2.1'],
 
-   ['Lesser General Public License', 'LGPL-2.1'],
 
-   ['GNU General Public License', 'GPL'],
 
-   ['Gnu public license', 'GPL'],
 
-   ['GNU Public License', 'GPL'],
 
-   ['GNU GENERAL PUBLIC LICENSE', 'GPL'],
 
-   ['MTI', 'MIT'],
 
-   ['Mozilla Public License', 'MPL'],
 
-   ['Universal Permissive License', 'UPL'],
 
-   ['WTH', 'WTF'],
 
-   ['WTFGPL', 'WTFPL'],
 
-   ['-License', '']
 
- ].sort(sortTranspositions);
 
- var TRANSPOSED = 0;
 
- var CORRECT = 1;
 
- var transforms = [
 
-   function (argument) {
 
-     return argument.toUpperCase()
 
-   },
 
-   function (argument) {
 
-     return argument.trim()
 
-   },
 
-   function (argument) {
 
-     return argument.replace(/\./g, '')
 
-   },
 
-   function (argument) {
 
-     return argument.replace(/\s+/g, '')
 
-   },
 
-   function (argument) {
 
-     return argument.replace(/\s+/g, '-')
 
-   },
 
-   function (argument) {
 
-     return argument.replace('v', '-')
 
-   },
 
-   function (argument) {
 
-     return argument.replace(/,?\s*(\d)/, '-$1')
 
-   },
 
-   function (argument) {
 
-     return argument.replace(/,?\s*(\d)/, '-$1.0')
 
-   },
 
-   function (argument) {
 
-     return argument
 
-       .replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/, '-$2')
 
-   },
 
-   function (argument) {
 
-     return argument
 
-       .replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/, '-$2.0')
 
-   },
 
-   function (argument) {
 
-     return argument[0].toUpperCase() + argument.slice(1)
 
-   },
 
-   function (argument) {
 
-     return argument.replace('/', '-')
 
-   },
 
-   function (argument) {
 
-     return argument
 
-       .replace(/\s*V\s*(\d)/, '-$1')
 
-       .replace(/(\d)$/, '$1.0')
 
-   },
 
-   function (argument) {
 
-     if (argument.indexOf('3.0') !== -1) {
 
-       return argument + '-or-later'
 
-     } else {
 
-       return argument + '-only'
 
-     }
 
-   },
 
-   function (argument) {
 
-     return argument + 'only'
 
-   },
 
-   function (argument) {
 
-     return argument.replace(/(\d)$/, '-$1.0')
 
-   },
 
-   function (argument) {
 
-     return argument.replace(/(-| )?(\d)$/, '-$2-Clause')
 
-   },
 
-   function (argument) {
 
-     return argument.replace(/(-| )clause(-| )(\d)/, '-$3-Clause')
 
-   },
 
-   function (argument) {
 
-     return argument.replace(/\b(Modified|New|Revised)(-| )?BSD((-| )License)?/i, 'BSD-3-Clause')
 
-   },
 
-   function (argument) {
 
-     return argument.replace(/\bSimplified(-| )?BSD((-| )License)?/i, 'BSD-2-Clause')
 
-   },
 
-   function (argument) {
 
-     return argument.replace(/\b(Free|Net)(-| )?BSD((-| )License)?/i, 'BSD-2-Clause-$1BSD')
 
-   },
 
-   function (argument) {
 
-     return argument.replace(/\bClear(-| )?BSD((-| )License)?/i, 'BSD-3-Clause-Clear')
 
-   },
 
-   function (argument) {
 
-     return argument.replace(/\b(Old|Original)(-| )?BSD((-| )License)?/i, 'BSD-4-Clause')
 
-   },
 
-   function (argument) {
 
-     return 'CC-' + argument
 
-   },
 
-   function (argument) {
 
-     return 'CC-' + argument + '-4.0'
 
-   },
 
-   function (argument) {
 
-     return argument
 
-       .replace('Attribution', 'BY')
 
-       .replace('NonCommercial', 'NC')
 
-       .replace('NoDerivatives', 'ND')
 
-       .replace(/ (\d)/, '-$1')
 
-       .replace(/ ?International/, '')
 
-   },
 
-   function (argument) {
 
-     return 'CC-' +
 
-       argument
 
-         .replace('Attribution', 'BY')
 
-         .replace('NonCommercial', 'NC')
 
-         .replace('NoDerivatives', 'ND')
 
-         .replace(/ (\d)/, '-$1')
 
-         .replace(/ ?International/, '') +
 
-       '-4.0'
 
-   }
 
- ];
 
- var licensesWithVersions = spdxLicenseIds
 
-   .map(function (id) {
 
-     var match = /^(.*)-\d+\.\d+$/.exec(id);
 
-     return match
 
-       ? [match[0], match[1]]
 
-       : [id, null]
 
-   })
 
-   .reduce(function (objectMap, item) {
 
-     var key = item[1];
 
-     objectMap[key] = objectMap[key] || [];
 
-     objectMap[key].push(item[0]);
 
-     return objectMap
 
-   }, {});
 
- var licensesWithOneVersion = Object.keys(licensesWithVersions)
 
-   .map(function makeEntries (key) {
 
-     return [key, licensesWithVersions[key]]
 
-   })
 
-   .filter(function identifySoleVersions (item) {
 
-     return (
 
-       item[1].length === 1 &&
 
-       item[0] !== null &&
 
-       item[0] !== 'APL'
 
-     )
 
-   })
 
-   .map(function createLastResorts (item) {
 
-     return [item[0], item[1][0]]
 
-   });
 
- licensesWithVersions = undefined;
 
- var lastResorts = [
 
-   ['UNLI', 'Unlicense'],
 
-   ['WTF', 'WTFPL'],
 
-   ['2 CLAUSE', 'BSD-2-Clause'],
 
-   ['2-CLAUSE', 'BSD-2-Clause'],
 
-   ['3 CLAUSE', 'BSD-3-Clause'],
 
-   ['3-CLAUSE', 'BSD-3-Clause'],
 
-   ['AFFERO', 'AGPL-3.0-or-later'],
 
-   ['AGPL', 'AGPL-3.0-or-later'],
 
-   ['APACHE', 'Apache-2.0'],
 
-   ['ARTISTIC', 'Artistic-2.0'],
 
-   ['Affero', 'AGPL-3.0-or-later'],
 
-   ['BEER', 'Beerware'],
 
-   ['BOOST', 'BSL-1.0'],
 
-   ['BSD', 'BSD-2-Clause'],
 
-   ['CDDL', 'CDDL-1.1'],
 
-   ['ECLIPSE', 'EPL-1.0'],
 
-   ['FUCK', 'WTFPL'],
 
-   ['GNU', 'GPL-3.0-or-later'],
 
-   ['LGPL', 'LGPL-3.0-or-later'],
 
-   ['GPLV1', 'GPL-1.0-only'],
 
-   ['GPL-1', 'GPL-1.0-only'],
 
-   ['GPLV2', 'GPL-2.0-only'],
 
-   ['GPL-2', 'GPL-2.0-only'],
 
-   ['GPL', 'GPL-3.0-or-later'],
 
-   ['MIT +NO-FALSE-ATTRIBS', 'MITNFA'],
 
-   ['MIT', 'MIT'],
 
-   ['MPL', 'MPL-2.0'],
 
-   ['X11', 'X11'],
 
-   ['ZLIB', 'Zlib']
 
- ].concat(licensesWithOneVersion).sort(sortTranspositions);
 
- var SUBSTRING = 0;
 
- var IDENTIFIER = 1;
 
- var validTransformation = function (identifier) {
 
-   for (var i = 0; i < transforms.length; i++) {
 
-     var transformed = transforms[i](identifier).trim();
 
-     if (transformed !== identifier && valid(transformed)) {
 
-       return transformed
 
-     }
 
-   }
 
-   return null
 
- };
 
- var validLastResort = function (identifier) {
 
-   var upperCased = identifier.toUpperCase();
 
-   for (var i = 0; i < lastResorts.length; i++) {
 
-     var lastResort = lastResorts[i];
 
-     if (upperCased.indexOf(lastResort[SUBSTRING]) > -1) {
 
-       return lastResort[IDENTIFIER]
 
-     }
 
-   }
 
-   return null
 
- };
 
- var anyCorrection = function (identifier, check) {
 
-   for (var i = 0; i < transpositions.length; i++) {
 
-     var transposition = transpositions[i];
 
-     var transposed = transposition[TRANSPOSED];
 
-     if (identifier.indexOf(transposed) > -1) {
 
-       var corrected = identifier.replace(
 
-         transposed,
 
-         transposition[CORRECT]
 
-       );
 
-       var checked = check(corrected);
 
-       if (checked !== null) {
 
-         return checked
 
-       }
 
-     }
 
-   }
 
-   return null
 
- };
 
- var spdxCorrect = function (identifier, options) {
 
-   options = options || {};
 
-   var upgrade = options.upgrade === undefined ? true : !!options.upgrade;
 
-   function postprocess (value) {
 
-     return upgrade ? upgradeGPLs(value) : value
 
-   }
 
-   var validArugment = (
 
-     typeof identifier === 'string' &&
 
-     identifier.trim().length !== 0
 
-   );
 
-   if (!validArugment) {
 
-     throw Error('Invalid argument. Expected non-empty string.')
 
-   }
 
-   identifier = identifier.trim();
 
-   if (valid(identifier)) {
 
-     return postprocess(identifier)
 
-   }
 
-   var noPlus = identifier.replace(/\+$/, '').trim();
 
-   if (valid(noPlus)) {
 
-     return postprocess(noPlus)
 
-   }
 
-   var transformed = validTransformation(identifier);
 
-   if (transformed !== null) {
 
-     return postprocess(transformed)
 
-   }
 
-   transformed = anyCorrection(identifier, function (argument) {
 
-     if (valid(argument)) {
 
-       return argument
 
-     }
 
-     return validTransformation(argument)
 
-   });
 
-   if (transformed !== null) {
 
-     return postprocess(transformed)
 
-   }
 
-   transformed = validLastResort(identifier);
 
-   if (transformed !== null) {
 
-     return postprocess(transformed)
 
-   }
 
-   transformed = anyCorrection(identifier, validLastResort);
 
-   if (transformed !== null) {
 
-     return postprocess(transformed)
 
-   }
 
-   return null
 
- };
 
- function upgradeGPLs (value) {
 
-   if ([
 
-     'GPL-1.0', 'LGPL-1.0', 'AGPL-1.0',
 
-     'GPL-2.0', 'LGPL-2.0', 'AGPL-2.0',
 
-     'LGPL-2.1'
 
-   ].indexOf(value) !== -1) {
 
-     return value + '-only'
 
-   } else if ([
 
-     'GPL-1.0+', 'GPL-2.0+', 'GPL-3.0+',
 
-     'LGPL-2.0+', 'LGPL-2.1+', 'LGPL-3.0+',
 
-     'AGPL-1.0+', 'AGPL-3.0+'
 
-   ].indexOf(value) !== -1) {
 
-     return value.replace(/\+$/, '-or-later')
 
-   } else if (['GPL-3.0', 'LGPL-3.0', 'AGPL-3.0'].indexOf(value) !== -1) {
 
-     return value + '-or-later'
 
-   } else {
 
-     return value
 
-   }
 
- }
 
- var parse = spdxExpressionParse;
 
- var correct = spdxCorrect;
 
- var genericWarning = (
 
-   'license should be ' +
 
-   'a valid SPDX license expression (without "LicenseRef"), ' +
 
-   '"UNLICENSED", or ' +
 
-   '"SEE LICENSE IN <filename>"'
 
- );
 
- var fileReferenceRE = /^SEE LICEN[CS]E IN (.+)$/;
 
- function startsWith(prefix, string) {
 
-   return string.slice(0, prefix.length) === prefix;
 
- }
 
- function usesLicenseRef(ast) {
 
-   if (ast.hasOwnProperty('license')) {
 
-     var license = ast.license;
 
-     return (
 
-       startsWith('LicenseRef', license) ||
 
-       startsWith('DocumentRef', license)
 
-     );
 
-   } else {
 
-     return (
 
-       usesLicenseRef(ast.left) ||
 
-       usesLicenseRef(ast.right)
 
-     );
 
-   }
 
- }
 
- var validateNpmPackageLicense = function(argument) {
 
-   var ast;
 
-   try {
 
-     ast = parse(argument);
 
-   } catch (e) {
 
-     var match;
 
-     if (
 
-       argument === 'UNLICENSED' ||
 
-       argument === 'UNLICENCED'
 
-     ) {
 
-       return {
 
-         validForOldPackages: true,
 
-         validForNewPackages: true,
 
-         unlicensed: true
 
-       };
 
-     } else if (match = fileReferenceRE.exec(argument)) {
 
-       return {
 
-         validForOldPackages: true,
 
-         validForNewPackages: true,
 
-         inFile: match[1]
 
-       };
 
-     } else {
 
-       var result = {
 
-         validForOldPackages: false,
 
-         validForNewPackages: false,
 
-         warnings: [genericWarning]
 
-       };
 
-       if (argument.trim().length !== 0) {
 
-         var corrected = correct(argument);
 
-         if (corrected) {
 
-           result.warnings.push(
 
-             'license is similar to the valid expression "' + corrected + '"'
 
-           );
 
-         }
 
-       }
 
-       return result;
 
-     }
 
-   }
 
-   if (usesLicenseRef(ast)) {
 
-     return {
 
-       validForNewPackages: false,
 
-       validForOldPackages: false,
 
-       spdx: true,
 
-       warnings: [genericWarning]
 
-     };
 
-   } else {
 
-     return {
 
-       validForNewPackages: true,
 
-       validForOldPackages: true,
 
-       spdx: true
 
-     };
 
-   }
 
- };
 
- var commonjs = {};
 
- Object.defineProperty(commonjs, "__esModule", { value: true });
 
- commonjs.LRUCache = void 0;
 
- const perf = typeof performance === 'object' &&
 
-     performance &&
 
-     typeof performance.now === 'function'
 
-     ? performance
 
-     : Date;
 
- const warned = new Set();
 
- const PROCESS = (typeof process === 'object' && !!process ? process : {});
 
- const emitWarning = (msg, type, code, fn) => {
 
-     typeof PROCESS.emitWarning === 'function'
 
-         ? PROCESS.emitWarning(msg, type, code, fn)
 
-         : console.error(`[${code}] ${type}: ${msg}`);
 
- };
 
- let AC = globalThis.AbortController;
 
- let AS = globalThis.AbortSignal;
 
- if (typeof AC === 'undefined') {
 
-     AS = class AbortSignal {
 
-         onabort;
 
-         _onabort = [];
 
-         reason;
 
-         aborted = false;
 
-         addEventListener(_, fn) {
 
-             this._onabort.push(fn);
 
-         }
 
-     };
 
-     AC = class AbortController {
 
-         constructor() {
 
-             warnACPolyfill();
 
-         }
 
-         signal = new AS();
 
-         abort(reason) {
 
-             if (this.signal.aborted)
 
-                 return;
 
-             this.signal.reason = reason;
 
-             this.signal.aborted = true;
 
-             for (const fn of this.signal._onabort) {
 
-                 fn(reason);
 
-             }
 
-             this.signal.onabort?.(reason);
 
-         }
 
-     };
 
-     let printACPolyfillWarning = PROCESS.env?.LRU_CACHE_IGNORE_AC_WARNING !== '1';
 
-     const warnACPolyfill = () => {
 
-         if (!printACPolyfillWarning)
 
-             return;
 
-         printACPolyfillWarning = false;
 
-         emitWarning('AbortController is not defined. If using lru-cache in ' +
 
-             'node 14, load an AbortController polyfill from the ' +
 
-             '`node-abort-controller` package. A minimal polyfill is ' +
 
-             'provided for use by LRUCache.fetch(), but it should not be ' +
 
-             'relied upon in other contexts (eg, passing it to other APIs that ' +
 
-             'use AbortController/AbortSignal might have undesirable effects). ' +
 
-             'You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.', 'NO_ABORT_CONTROLLER', 'ENOTSUP', warnACPolyfill);
 
-     };
 
- }
 
- const shouldWarn = (code) => !warned.has(code);
 
- const isPosInt = (n) => n && n === Math.floor(n) && n > 0 && isFinite(n);
 
- const getUintArray = (max) => !isPosInt(max)
 
-     ? null
 
-     : max <= Math.pow(2, 8)
 
-         ? Uint8Array
 
-         : max <= Math.pow(2, 16)
 
-             ? Uint16Array
 
-             : max <= Math.pow(2, 32)
 
-                 ? Uint32Array
 
-                 : max <= Number.MAX_SAFE_INTEGER
 
-                     ? ZeroArray
 
-                     : null;
 
- class ZeroArray extends Array {
 
-     constructor(size) {
 
-         super(size);
 
-         this.fill(0);
 
-     }
 
- }
 
- class Stack {
 
-     heap;
 
-     length;
 
-     static #constructing = false;
 
-     static create(max) {
 
-         const HeapCls = getUintArray(max);
 
-         if (!HeapCls)
 
-             return [];
 
-         Stack.#constructing = true;
 
-         const s = new Stack(max, HeapCls);
 
-         Stack.#constructing = false;
 
-         return s;
 
-     }
 
-     constructor(max, HeapCls) {
 
-         if (!Stack.#constructing) {
 
-             throw new TypeError('instantiate Stack using Stack.create(n)');
 
-         }
 
-         this.heap = new HeapCls(max);
 
-         this.length = 0;
 
-     }
 
-     push(n) {
 
-         this.heap[this.length++] = n;
 
-     }
 
-     pop() {
 
-         return this.heap[--this.length];
 
-     }
 
- }
 
- let LRUCache$1 = class LRUCache {
 
-     #max;
 
-     #maxSize;
 
-     #dispose;
 
-     #disposeAfter;
 
-     #fetchMethod;
 
-     ttl;
 
-     ttlResolution;
 
-     ttlAutopurge;
 
-     updateAgeOnGet;
 
-     updateAgeOnHas;
 
-     allowStale;
 
-     noDisposeOnSet;
 
-     noUpdateTTL;
 
-     maxEntrySize;
 
-     sizeCalculation;
 
-     noDeleteOnFetchRejection;
 
-     noDeleteOnStaleGet;
 
-     allowStaleOnFetchAbort;
 
-     allowStaleOnFetchRejection;
 
-     ignoreFetchAbort;
 
-     #size;
 
-     #calculatedSize;
 
-     #keyMap;
 
-     #keyList;
 
-     #valList;
 
-     #next;
 
-     #prev;
 
-     #head;
 
-     #tail;
 
-     #free;
 
-     #disposed;
 
-     #sizes;
 
-     #starts;
 
-     #ttls;
 
-     #hasDispose;
 
-     #hasFetchMethod;
 
-     #hasDisposeAfter;
 
-     static unsafeExposeInternals(c) {
 
-         return {
 
-             starts: c.#starts,
 
-             ttls: c.#ttls,
 
-             sizes: c.#sizes,
 
-             keyMap: c.#keyMap,
 
-             keyList: c.#keyList,
 
-             valList: c.#valList,
 
-             next: c.#next,
 
-             prev: c.#prev,
 
-             get head() {
 
-                 return c.#head;
 
-             },
 
-             get tail() {
 
-                 return c.#tail;
 
-             },
 
-             free: c.#free,
 
-             isBackgroundFetch: (p) => c.#isBackgroundFetch(p),
 
-             backgroundFetch: (k, index, options, context) => c.#backgroundFetch(k, index, options, context),
 
-             moveToTail: (index) => c.#moveToTail(index),
 
-             indexes: (options) => c.#indexes(options),
 
-             rindexes: (options) => c.#rindexes(options),
 
-             isStale: (index) => c.#isStale(index),
 
-         };
 
-     }
 
-     get max() {
 
-         return this.#max;
 
-     }
 
-     get maxSize() {
 
-         return this.#maxSize;
 
-     }
 
-     get calculatedSize() {
 
-         return this.#calculatedSize;
 
-     }
 
-     get size() {
 
-         return this.#size;
 
-     }
 
-     get fetchMethod() {
 
-         return this.#fetchMethod;
 
-     }
 
-     get dispose() {
 
-         return this.#dispose;
 
-     }
 
-     get disposeAfter() {
 
-         return this.#disposeAfter;
 
-     }
 
-     constructor(options) {
 
-         const { max = 0, ttl, ttlResolution = 1, ttlAutopurge, updateAgeOnGet, updateAgeOnHas, allowStale, dispose, disposeAfter, noDisposeOnSet, noUpdateTTL, maxSize = 0, maxEntrySize = 0, sizeCalculation, fetchMethod, noDeleteOnFetchRejection, noDeleteOnStaleGet, allowStaleOnFetchRejection, allowStaleOnFetchAbort, ignoreFetchAbort, } = options;
 
-         if (max !== 0 && !isPosInt(max)) {
 
-             throw new TypeError('max option must be a nonnegative integer');
 
-         }
 
-         const UintArray = max ? getUintArray(max) : Array;
 
-         if (!UintArray) {
 
-             throw new Error('invalid max value: ' + max);
 
-         }
 
-         this.#max = max;
 
-         this.#maxSize = maxSize;
 
-         this.maxEntrySize = maxEntrySize || this.#maxSize;
 
-         this.sizeCalculation = sizeCalculation;
 
-         if (this.sizeCalculation) {
 
-             if (!this.#maxSize && !this.maxEntrySize) {
 
-                 throw new TypeError('cannot set sizeCalculation without setting maxSize or maxEntrySize');
 
-             }
 
-             if (typeof this.sizeCalculation !== 'function') {
 
-                 throw new TypeError('sizeCalculation set to non-function');
 
-             }
 
-         }
 
-         if (fetchMethod !== undefined &&
 
-             typeof fetchMethod !== 'function') {
 
-             throw new TypeError('fetchMethod must be a function if specified');
 
-         }
 
-         this.#fetchMethod = fetchMethod;
 
-         this.#hasFetchMethod = !!fetchMethod;
 
-         this.#keyMap = new Map();
 
-         this.#keyList = new Array(max).fill(undefined);
 
-         this.#valList = new Array(max).fill(undefined);
 
-         this.#next = new UintArray(max);
 
-         this.#prev = new UintArray(max);
 
-         this.#head = 0;
 
-         this.#tail = 0;
 
-         this.#free = Stack.create(max);
 
-         this.#size = 0;
 
-         this.#calculatedSize = 0;
 
-         if (typeof dispose === 'function') {
 
-             this.#dispose = dispose;
 
-         }
 
-         if (typeof disposeAfter === 'function') {
 
-             this.#disposeAfter = disposeAfter;
 
-             this.#disposed = [];
 
-         }
 
-         else {
 
-             this.#disposeAfter = undefined;
 
-             this.#disposed = undefined;
 
-         }
 
-         this.#hasDispose = !!this.#dispose;
 
-         this.#hasDisposeAfter = !!this.#disposeAfter;
 
-         this.noDisposeOnSet = !!noDisposeOnSet;
 
-         this.noUpdateTTL = !!noUpdateTTL;
 
-         this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection;
 
-         this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection;
 
-         this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort;
 
-         this.ignoreFetchAbort = !!ignoreFetchAbort;
 
-         if (this.maxEntrySize !== 0) {
 
-             if (this.#maxSize !== 0) {
 
-                 if (!isPosInt(this.#maxSize)) {
 
-                     throw new TypeError('maxSize must be a positive integer if specified');
 
-                 }
 
-             }
 
-             if (!isPosInt(this.maxEntrySize)) {
 
-                 throw new TypeError('maxEntrySize must be a positive integer if specified');
 
-             }
 
-             this.#initializeSizeTracking();
 
-         }
 
-         this.allowStale = !!allowStale;
 
-         this.noDeleteOnStaleGet = !!noDeleteOnStaleGet;
 
-         this.updateAgeOnGet = !!updateAgeOnGet;
 
-         this.updateAgeOnHas = !!updateAgeOnHas;
 
-         this.ttlResolution =
 
-             isPosInt(ttlResolution) || ttlResolution === 0
 
-                 ? ttlResolution
 
-                 : 1;
 
-         this.ttlAutopurge = !!ttlAutopurge;
 
-         this.ttl = ttl || 0;
 
-         if (this.ttl) {
 
-             if (!isPosInt(this.ttl)) {
 
-                 throw new TypeError('ttl must be a positive integer if specified');
 
-             }
 
-             this.#initializeTTLTracking();
 
-         }
 
-         if (this.#max === 0 && this.ttl === 0 && this.#maxSize === 0) {
 
-             throw new TypeError('At least one of max, maxSize, or ttl is required');
 
-         }
 
-         if (!this.ttlAutopurge && !this.#max && !this.#maxSize) {
 
-             const code = 'LRU_CACHE_UNBOUNDED';
 
-             if (shouldWarn(code)) {
 
-                 warned.add(code);
 
-                 const msg = 'TTL caching without ttlAutopurge, max, or maxSize can ' +
 
-                     'result in unbounded memory consumption.';
 
-                 emitWarning(msg, 'UnboundedCacheWarning', code, LRUCache);
 
-             }
 
-         }
 
-     }
 
-     getRemainingTTL(key) {
 
-         return this.#keyMap.has(key) ? Infinity : 0;
 
-     }
 
-     #initializeTTLTracking() {
 
-         const ttls = new ZeroArray(this.#max);
 
-         const starts = new ZeroArray(this.#max);
 
-         this.#ttls = ttls;
 
-         this.#starts = starts;
 
-         this.#setItemTTL = (index, ttl, start = perf.now()) => {
 
-             starts[index] = ttl !== 0 ? start : 0;
 
-             ttls[index] = ttl;
 
-             if (ttl !== 0 && this.ttlAutopurge) {
 
-                 const t = setTimeout(() => {
 
-                     if (this.#isStale(index)) {
 
-                         this.delete(this.#keyList[index]);
 
-                     }
 
-                 }, ttl + 1);
 
-                 if (t.unref) {
 
-                     t.unref();
 
-                 }
 
-             }
 
-         };
 
-         this.#updateItemAge = index => {
 
-             starts[index] = ttls[index] !== 0 ? perf.now() : 0;
 
-         };
 
-         this.#statusTTL = (status, index) => {
 
-             if (ttls[index]) {
 
-                 const ttl = ttls[index];
 
-                 const start = starts[index];
 
-                 if (!ttl || !start)
 
-                     return;
 
-                 status.ttl = ttl;
 
-                 status.start = start;
 
-                 status.now = cachedNow || getNow();
 
-                 const age = status.now - start;
 
-                 status.remainingTTL = ttl - age;
 
-             }
 
-         };
 
-         let cachedNow = 0;
 
-         const getNow = () => {
 
-             const n = perf.now();
 
-             if (this.ttlResolution > 0) {
 
-                 cachedNow = n;
 
-                 const t = setTimeout(() => (cachedNow = 0), this.ttlResolution);
 
-                 if (t.unref) {
 
-                     t.unref();
 
-                 }
 
-             }
 
-             return n;
 
-         };
 
-         this.getRemainingTTL = key => {
 
-             const index = this.#keyMap.get(key);
 
-             if (index === undefined) {
 
-                 return 0;
 
-             }
 
-             const ttl = ttls[index];
 
-             const start = starts[index];
 
-             if (!ttl || !start) {
 
-                 return Infinity;
 
-             }
 
-             const age = (cachedNow || getNow()) - start;
 
-             return ttl - age;
 
-         };
 
-         this.#isStale = index => {
 
-             const s = starts[index];
 
-             const t = ttls[index];
 
-             return !!t && !!s && (cachedNow || getNow()) - s > t;
 
-         };
 
-     }
 
-     #updateItemAge = () => { };
 
-     #statusTTL = () => { };
 
-     #setItemTTL = () => { };
 
-     #isStale = () => false;
 
-     #initializeSizeTracking() {
 
-         const sizes = new ZeroArray(this.#max);
 
-         this.#calculatedSize = 0;
 
-         this.#sizes = sizes;
 
-         this.#removeItemSize = index => {
 
-             this.#calculatedSize -= sizes[index];
 
-             sizes[index] = 0;
 
-         };
 
-         this.#requireSize = (k, v, size, sizeCalculation) => {
 
-             if (this.#isBackgroundFetch(v)) {
 
-                 return 0;
 
-             }
 
-             if (!isPosInt(size)) {
 
-                 if (sizeCalculation) {
 
-                     if (typeof sizeCalculation !== 'function') {
 
-                         throw new TypeError('sizeCalculation must be a function');
 
-                     }
 
-                     size = sizeCalculation(v, k);
 
-                     if (!isPosInt(size)) {
 
-                         throw new TypeError('sizeCalculation return invalid (expect positive integer)');
 
-                     }
 
-                 }
 
-                 else {
 
-                     throw new TypeError('invalid size value (must be positive integer). ' +
 
-                         'When maxSize or maxEntrySize is used, sizeCalculation ' +
 
-                         'or size must be set.');
 
-                 }
 
-             }
 
-             return size;
 
-         };
 
-         this.#addItemSize = (index, size, status) => {
 
-             sizes[index] = size;
 
-             if (this.#maxSize) {
 
-                 const maxSize = this.#maxSize - sizes[index];
 
-                 while (this.#calculatedSize > maxSize) {
 
-                     this.#evict(true);
 
-                 }
 
-             }
 
-             this.#calculatedSize += sizes[index];
 
-             if (status) {
 
-                 status.entrySize = size;
 
-                 status.totalCalculatedSize = this.#calculatedSize;
 
-             }
 
-         };
 
-     }
 
-     #removeItemSize = _i => { };
 
-     #addItemSize = (_i, _s, _st) => { };
 
-     #requireSize = (_k, _v, size, sizeCalculation) => {
 
-         if (size || sizeCalculation) {
 
-             throw new TypeError('cannot set size without setting maxSize or maxEntrySize on cache');
 
-         }
 
-         return 0;
 
-     };
 
-     *#indexes({ allowStale = this.allowStale } = {}) {
 
-         if (this.#size) {
 
-             for (let i = this.#tail; true;) {
 
-                 if (!this.#isValidIndex(i)) {
 
-                     break;
 
-                 }
 
-                 if (allowStale || !this.#isStale(i)) {
 
-                     yield i;
 
-                 }
 
-                 if (i === this.#head) {
 
-                     break;
 
-                 }
 
-                 else {
 
-                     i = this.#prev[i];
 
-                 }
 
-             }
 
-         }
 
-     }
 
-     *#rindexes({ allowStale = this.allowStale } = {}) {
 
-         if (this.#size) {
 
-             for (let i = this.#head; true;) {
 
-                 if (!this.#isValidIndex(i)) {
 
-                     break;
 
-                 }
 
-                 if (allowStale || !this.#isStale(i)) {
 
-                     yield i;
 
-                 }
 
-                 if (i === this.#tail) {
 
-                     break;
 
-                 }
 
-                 else {
 
-                     i = this.#next[i];
 
-                 }
 
-             }
 
-         }
 
-     }
 
-     #isValidIndex(index) {
 
-         return (index !== undefined &&
 
-             this.#keyMap.get(this.#keyList[index]) === index);
 
-     }
 
-     *entries() {
 
-         for (const i of this.#indexes()) {
 
-             if (this.#valList[i] !== undefined &&
 
-                 this.#keyList[i] !== undefined &&
 
-                 !this.#isBackgroundFetch(this.#valList[i])) {
 
-                 yield [this.#keyList[i], this.#valList[i]];
 
-             }
 
-         }
 
-     }
 
-     *rentries() {
 
-         for (const i of this.#rindexes()) {
 
-             if (this.#valList[i] !== undefined &&
 
-                 this.#keyList[i] !== undefined &&
 
-                 !this.#isBackgroundFetch(this.#valList[i])) {
 
-                 yield [this.#keyList[i], this.#valList[i]];
 
-             }
 
-         }
 
-     }
 
-     *keys() {
 
-         for (const i of this.#indexes()) {
 
-             const k = this.#keyList[i];
 
-             if (k !== undefined &&
 
-                 !this.#isBackgroundFetch(this.#valList[i])) {
 
-                 yield k;
 
-             }
 
-         }
 
-     }
 
-     *rkeys() {
 
-         for (const i of this.#rindexes()) {
 
-             const k = this.#keyList[i];
 
-             if (k !== undefined &&
 
-                 !this.#isBackgroundFetch(this.#valList[i])) {
 
-                 yield k;
 
-             }
 
-         }
 
-     }
 
-     *values() {
 
-         for (const i of this.#indexes()) {
 
-             const v = this.#valList[i];
 
-             if (v !== undefined &&
 
-                 !this.#isBackgroundFetch(this.#valList[i])) {
 
-                 yield this.#valList[i];
 
-             }
 
-         }
 
-     }
 
-     *rvalues() {
 
-         for (const i of this.#rindexes()) {
 
-             const v = this.#valList[i];
 
-             if (v !== undefined &&
 
-                 !this.#isBackgroundFetch(this.#valList[i])) {
 
-                 yield this.#valList[i];
 
-             }
 
-         }
 
-     }
 
-     [Symbol.iterator]() {
 
-         return this.entries();
 
-     }
 
-     [Symbol.toStringTag] = 'LRUCache';
 
-     find(fn, getOptions = {}) {
 
-         for (const i of this.#indexes()) {
 
-             const v = this.#valList[i];
 
-             const value = this.#isBackgroundFetch(v)
 
-                 ? v.__staleWhileFetching
 
-                 : v;
 
-             if (value === undefined)
 
-                 continue;
 
-             if (fn(value, this.#keyList[i], this)) {
 
-                 return this.get(this.#keyList[i], getOptions);
 
-             }
 
-         }
 
-     }
 
-     forEach(fn, thisp = this) {
 
-         for (const i of this.#indexes()) {
 
-             const v = this.#valList[i];
 
-             const value = this.#isBackgroundFetch(v)
 
-                 ? v.__staleWhileFetching
 
-                 : v;
 
-             if (value === undefined)
 
-                 continue;
 
-             fn.call(thisp, value, this.#keyList[i], this);
 
-         }
 
-     }
 
-     rforEach(fn, thisp = this) {
 
-         for (const i of this.#rindexes()) {
 
-             const v = this.#valList[i];
 
-             const value = this.#isBackgroundFetch(v)
 
-                 ? v.__staleWhileFetching
 
-                 : v;
 
-             if (value === undefined)
 
-                 continue;
 
-             fn.call(thisp, value, this.#keyList[i], this);
 
-         }
 
-     }
 
-     purgeStale() {
 
-         let deleted = false;
 
-         for (const i of this.#rindexes({ allowStale: true })) {
 
-             if (this.#isStale(i)) {
 
-                 this.delete(this.#keyList[i]);
 
-                 deleted = true;
 
-             }
 
-         }
 
-         return deleted;
 
-     }
 
-     info(key) {
 
-         const i = this.#keyMap.get(key);
 
-         if (i === undefined)
 
-             return undefined;
 
-         const v = this.#valList[i];
 
-         const value = this.#isBackgroundFetch(v)
 
-             ? v.__staleWhileFetching
 
-             : v;
 
-         if (value === undefined)
 
-             return undefined;
 
-         const entry = { value };
 
-         if (this.#ttls && this.#starts) {
 
-             const ttl = this.#ttls[i];
 
-             const start = this.#starts[i];
 
-             if (ttl && start) {
 
-                 const remain = ttl - (perf.now() - start);
 
-                 entry.ttl = remain;
 
-                 entry.start = Date.now();
 
-             }
 
-         }
 
-         if (this.#sizes) {
 
-             entry.size = this.#sizes[i];
 
-         }
 
-         return entry;
 
-     }
 
-     dump() {
 
-         const arr = [];
 
-         for (const i of this.#indexes({ allowStale: true })) {
 
-             const key = this.#keyList[i];
 
-             const v = this.#valList[i];
 
-             const value = this.#isBackgroundFetch(v)
 
-                 ? v.__staleWhileFetching
 
-                 : v;
 
-             if (value === undefined || key === undefined)
 
-                 continue;
 
-             const entry = { value };
 
-             if (this.#ttls && this.#starts) {
 
-                 entry.ttl = this.#ttls[i];
 
-                 const age = perf.now() - this.#starts[i];
 
-                 entry.start = Math.floor(Date.now() - age);
 
-             }
 
-             if (this.#sizes) {
 
-                 entry.size = this.#sizes[i];
 
-             }
 
-             arr.unshift([key, entry]);
 
-         }
 
-         return arr;
 
-     }
 
-     load(arr) {
 
-         this.clear();
 
-         for (const [key, entry] of arr) {
 
-             if (entry.start) {
 
-                 const age = Date.now() - entry.start;
 
-                 entry.start = perf.now() - age;
 
-             }
 
-             this.set(key, entry.value, entry);
 
-         }
 
-     }
 
-     set(k, v, setOptions = {}) {
 
-         if (v === undefined) {
 
-             this.delete(k);
 
-             return this;
 
-         }
 
-         const { ttl = this.ttl, start, noDisposeOnSet = this.noDisposeOnSet, sizeCalculation = this.sizeCalculation, status, } = setOptions;
 
-         let { noUpdateTTL = this.noUpdateTTL } = setOptions;
 
-         const size = this.#requireSize(k, v, setOptions.size || 0, sizeCalculation);
 
-         if (this.maxEntrySize && size > this.maxEntrySize) {
 
-             if (status) {
 
-                 status.set = 'miss';
 
-                 status.maxEntrySizeExceeded = true;
 
-             }
 
-             this.delete(k);
 
-             return this;
 
-         }
 
-         let index = this.#size === 0 ? undefined : this.#keyMap.get(k);
 
-         if (index === undefined) {
 
-             index = (this.#size === 0
 
-                 ? this.#tail
 
-                 : this.#free.length !== 0
 
-                     ? this.#free.pop()
 
-                     : this.#size === this.#max
 
-                         ? this.#evict(false)
 
-                         : this.#size);
 
-             this.#keyList[index] = k;
 
-             this.#valList[index] = v;
 
-             this.#keyMap.set(k, index);
 
-             this.#next[this.#tail] = index;
 
-             this.#prev[index] = this.#tail;
 
-             this.#tail = index;
 
-             this.#size++;
 
-             this.#addItemSize(index, size, status);
 
-             if (status)
 
-                 status.set = 'add';
 
-             noUpdateTTL = false;
 
-         }
 
-         else {
 
-             this.#moveToTail(index);
 
-             const oldVal = this.#valList[index];
 
-             if (v !== oldVal) {
 
-                 if (this.#hasFetchMethod && this.#isBackgroundFetch(oldVal)) {
 
-                     oldVal.__abortController.abort(new Error('replaced'));
 
-                     const { __staleWhileFetching: s } = oldVal;
 
-                     if (s !== undefined && !noDisposeOnSet) {
 
-                         if (this.#hasDispose) {
 
-                             this.#dispose?.(s, k, 'set');
 
-                         }
 
-                         if (this.#hasDisposeAfter) {
 
-                             this.#disposed?.push([s, k, 'set']);
 
-                         }
 
-                     }
 
-                 }
 
-                 else if (!noDisposeOnSet) {
 
-                     if (this.#hasDispose) {
 
-                         this.#dispose?.(oldVal, k, 'set');
 
-                     }
 
-                     if (this.#hasDisposeAfter) {
 
-                         this.#disposed?.push([oldVal, k, 'set']);
 
-                     }
 
-                 }
 
-                 this.#removeItemSize(index);
 
-                 this.#addItemSize(index, size, status);
 
-                 this.#valList[index] = v;
 
-                 if (status) {
 
-                     status.set = 'replace';
 
-                     const oldValue = oldVal && this.#isBackgroundFetch(oldVal)
 
-                         ? oldVal.__staleWhileFetching
 
-                         : oldVal;
 
-                     if (oldValue !== undefined)
 
-                         status.oldValue = oldValue;
 
-                 }
 
-             }
 
-             else if (status) {
 
-                 status.set = 'update';
 
-             }
 
-         }
 
-         if (ttl !== 0 && !this.#ttls) {
 
-             this.#initializeTTLTracking();
 
-         }
 
-         if (this.#ttls) {
 
-             if (!noUpdateTTL) {
 
-                 this.#setItemTTL(index, ttl, start);
 
-             }
 
-             if (status)
 
-                 this.#statusTTL(status, index);
 
-         }
 
-         if (!noDisposeOnSet && this.#hasDisposeAfter && this.#disposed) {
 
-             const dt = this.#disposed;
 
-             let task;
 
-             while ((task = dt?.shift())) {
 
-                 this.#disposeAfter?.(...task);
 
-             }
 
-         }
 
-         return this;
 
-     }
 
-     pop() {
 
-         try {
 
-             while (this.#size) {
 
-                 const val = this.#valList[this.#head];
 
-                 this.#evict(true);
 
-                 if (this.#isBackgroundFetch(val)) {
 
-                     if (val.__staleWhileFetching) {
 
-                         return val.__staleWhileFetching;
 
-                     }
 
-                 }
 
-                 else if (val !== undefined) {
 
-                     return val;
 
-                 }
 
-             }
 
-         }
 
-         finally {
 
-             if (this.#hasDisposeAfter && this.#disposed) {
 
-                 const dt = this.#disposed;
 
-                 let task;
 
-                 while ((task = dt?.shift())) {
 
-                     this.#disposeAfter?.(...task);
 
-                 }
 
-             }
 
-         }
 
-     }
 
-     #evict(free) {
 
-         const head = this.#head;
 
-         const k = this.#keyList[head];
 
-         const v = this.#valList[head];
 
-         if (this.#hasFetchMethod && this.#isBackgroundFetch(v)) {
 
-             v.__abortController.abort(new Error('evicted'));
 
-         }
 
-         else if (this.#hasDispose || this.#hasDisposeAfter) {
 
-             if (this.#hasDispose) {
 
-                 this.#dispose?.(v, k, 'evict');
 
-             }
 
-             if (this.#hasDisposeAfter) {
 
-                 this.#disposed?.push([v, k, 'evict']);
 
-             }
 
-         }
 
-         this.#removeItemSize(head);
 
-         if (free) {
 
-             this.#keyList[head] = undefined;
 
-             this.#valList[head] = undefined;
 
-             this.#free.push(head);
 
-         }
 
-         if (this.#size === 1) {
 
-             this.#head = this.#tail = 0;
 
-             this.#free.length = 0;
 
-         }
 
-         else {
 
-             this.#head = this.#next[head];
 
-         }
 
-         this.#keyMap.delete(k);
 
-         this.#size--;
 
-         return head;
 
-     }
 
-     has(k, hasOptions = {}) {
 
-         const { updateAgeOnHas = this.updateAgeOnHas, status } = hasOptions;
 
-         const index = this.#keyMap.get(k);
 
-         if (index !== undefined) {
 
-             const v = this.#valList[index];
 
-             if (this.#isBackgroundFetch(v) &&
 
-                 v.__staleWhileFetching === undefined) {
 
-                 return false;
 
-             }
 
-             if (!this.#isStale(index)) {
 
-                 if (updateAgeOnHas) {
 
-                     this.#updateItemAge(index);
 
-                 }
 
-                 if (status) {
 
-                     status.has = 'hit';
 
-                     this.#statusTTL(status, index);
 
-                 }
 
-                 return true;
 
-             }
 
-             else if (status) {
 
-                 status.has = 'stale';
 
-                 this.#statusTTL(status, index);
 
-             }
 
-         }
 
-         else if (status) {
 
-             status.has = 'miss';
 
-         }
 
-         return false;
 
-     }
 
-     peek(k, peekOptions = {}) {
 
-         const { allowStale = this.allowStale } = peekOptions;
 
-         const index = this.#keyMap.get(k);
 
-         if (index === undefined ||
 
-             (!allowStale && this.#isStale(index))) {
 
-             return;
 
-         }
 
-         const v = this.#valList[index];
 
-         return this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;
 
-     }
 
-     #backgroundFetch(k, index, options, context) {
 
-         const v = index === undefined ? undefined : this.#valList[index];
 
-         if (this.#isBackgroundFetch(v)) {
 
-             return v;
 
-         }
 
-         const ac = new AC();
 
-         const { signal } = options;
 
-         signal?.addEventListener('abort', () => ac.abort(signal.reason), {
 
-             signal: ac.signal,
 
-         });
 
-         const fetchOpts = {
 
-             signal: ac.signal,
 
-             options,
 
-             context,
 
-         };
 
-         const cb = (v, updateCache = false) => {
 
-             const { aborted } = ac.signal;
 
-             const ignoreAbort = options.ignoreFetchAbort && v !== undefined;
 
-             if (options.status) {
 
-                 if (aborted && !updateCache) {
 
-                     options.status.fetchAborted = true;
 
-                     options.status.fetchError = ac.signal.reason;
 
-                     if (ignoreAbort)
 
-                         options.status.fetchAbortIgnored = true;
 
-                 }
 
-                 else {
 
-                     options.status.fetchResolved = true;
 
-                 }
 
-             }
 
-             if (aborted && !ignoreAbort && !updateCache) {
 
-                 return fetchFail(ac.signal.reason);
 
-             }
 
-             const bf = p;
 
-             if (this.#valList[index] === p) {
 
-                 if (v === undefined) {
 
-                     if (bf.__staleWhileFetching) {
 
-                         this.#valList[index] = bf.__staleWhileFetching;
 
-                     }
 
-                     else {
 
-                         this.delete(k);
 
-                     }
 
-                 }
 
-                 else {
 
-                     if (options.status)
 
-                         options.status.fetchUpdated = true;
 
-                     this.set(k, v, fetchOpts.options);
 
-                 }
 
-             }
 
-             return v;
 
-         };
 
-         const eb = (er) => {
 
-             if (options.status) {
 
-                 options.status.fetchRejected = true;
 
-                 options.status.fetchError = er;
 
-             }
 
-             return fetchFail(er);
 
-         };
 
-         const fetchFail = (er) => {
 
-             const { aborted } = ac.signal;
 
-             const allowStaleAborted = aborted && options.allowStaleOnFetchAbort;
 
-             const allowStale = allowStaleAborted || options.allowStaleOnFetchRejection;
 
-             const noDelete = allowStale || options.noDeleteOnFetchRejection;
 
-             const bf = p;
 
-             if (this.#valList[index] === p) {
 
-                 const del = !noDelete || bf.__staleWhileFetching === undefined;
 
-                 if (del) {
 
-                     this.delete(k);
 
-                 }
 
-                 else if (!allowStaleAborted) {
 
-                     this.#valList[index] = bf.__staleWhileFetching;
 
-                 }
 
-             }
 
-             if (allowStale) {
 
-                 if (options.status && bf.__staleWhileFetching !== undefined) {
 
-                     options.status.returnedStale = true;
 
-                 }
 
-                 return bf.__staleWhileFetching;
 
-             }
 
-             else if (bf.__returned === bf) {
 
-                 throw er;
 
-             }
 
-         };
 
-         const pcall = (res, rej) => {
 
-             const fmp = this.#fetchMethod?.(k, v, fetchOpts);
 
-             if (fmp && fmp instanceof Promise) {
 
-                 fmp.then(v => res(v === undefined ? undefined : v), rej);
 
-             }
 
-             ac.signal.addEventListener('abort', () => {
 
-                 if (!options.ignoreFetchAbort ||
 
-                     options.allowStaleOnFetchAbort) {
 
-                     res(undefined);
 
-                     if (options.allowStaleOnFetchAbort) {
 
-                         res = v => cb(v, true);
 
-                     }
 
-                 }
 
-             });
 
-         };
 
-         if (options.status)
 
-             options.status.fetchDispatched = true;
 
-         const p = new Promise(pcall).then(cb, eb);
 
-         const bf = Object.assign(p, {
 
-             __abortController: ac,
 
-             __staleWhileFetching: v,
 
-             __returned: undefined,
 
-         });
 
-         if (index === undefined) {
 
-             this.set(k, bf, { ...fetchOpts.options, status: undefined });
 
-             index = this.#keyMap.get(k);
 
-         }
 
-         else {
 
-             this.#valList[index] = bf;
 
-         }
 
-         return bf;
 
-     }
 
-     #isBackgroundFetch(p) {
 
-         if (!this.#hasFetchMethod)
 
-             return false;
 
-         const b = p;
 
-         return (!!b &&
 
-             b instanceof Promise &&
 
-             b.hasOwnProperty('__staleWhileFetching') &&
 
-             b.__abortController instanceof AC);
 
-     }
 
-     async fetch(k, fetchOptions = {}) {
 
-         const { 
 
-         allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, 
 
-         ttl = this.ttl, noDisposeOnSet = this.noDisposeOnSet, size = 0, sizeCalculation = this.sizeCalculation, noUpdateTTL = this.noUpdateTTL, 
 
-         noDeleteOnFetchRejection = this.noDeleteOnFetchRejection, allowStaleOnFetchRejection = this.allowStaleOnFetchRejection, ignoreFetchAbort = this.ignoreFetchAbort, allowStaleOnFetchAbort = this.allowStaleOnFetchAbort, context, forceRefresh = false, status, signal, } = fetchOptions;
 
-         if (!this.#hasFetchMethod) {
 
-             if (status)
 
-                 status.fetch = 'get';
 
-             return this.get(k, {
 
-                 allowStale,
 
-                 updateAgeOnGet,
 
-                 noDeleteOnStaleGet,
 
-                 status,
 
-             });
 
-         }
 
-         const options = {
 
-             allowStale,
 
-             updateAgeOnGet,
 
-             noDeleteOnStaleGet,
 
-             ttl,
 
-             noDisposeOnSet,
 
-             size,
 
-             sizeCalculation,
 
-             noUpdateTTL,
 
-             noDeleteOnFetchRejection,
 
-             allowStaleOnFetchRejection,
 
-             allowStaleOnFetchAbort,
 
-             ignoreFetchAbort,
 
-             status,
 
-             signal,
 
-         };
 
-         let index = this.#keyMap.get(k);
 
-         if (index === undefined) {
 
-             if (status)
 
-                 status.fetch = 'miss';
 
-             const p = this.#backgroundFetch(k, index, options, context);
 
-             return (p.__returned = p);
 
-         }
 
-         else {
 
-             const v = this.#valList[index];
 
-             if (this.#isBackgroundFetch(v)) {
 
-                 const stale = allowStale && v.__staleWhileFetching !== undefined;
 
-                 if (status) {
 
-                     status.fetch = 'inflight';
 
-                     if (stale)
 
-                         status.returnedStale = true;
 
-                 }
 
-                 return stale ? v.__staleWhileFetching : (v.__returned = v);
 
-             }
 
-             const isStale = this.#isStale(index);
 
-             if (!forceRefresh && !isStale) {
 
-                 if (status)
 
-                     status.fetch = 'hit';
 
-                 this.#moveToTail(index);
 
-                 if (updateAgeOnGet) {
 
-                     this.#updateItemAge(index);
 
-                 }
 
-                 if (status)
 
-                     this.#statusTTL(status, index);
 
-                 return v;
 
-             }
 
-             const p = this.#backgroundFetch(k, index, options, context);
 
-             const hasStale = p.__staleWhileFetching !== undefined;
 
-             const staleVal = hasStale && allowStale;
 
-             if (status) {
 
-                 status.fetch = isStale ? 'stale' : 'refresh';
 
-                 if (staleVal && isStale)
 
-                     status.returnedStale = true;
 
-             }
 
-             return staleVal ? p.__staleWhileFetching : (p.__returned = p);
 
-         }
 
-     }
 
-     get(k, getOptions = {}) {
 
-         const { allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, status, } = getOptions;
 
-         const index = this.#keyMap.get(k);
 
-         if (index !== undefined) {
 
-             const value = this.#valList[index];
 
-             const fetching = this.#isBackgroundFetch(value);
 
-             if (status)
 
-                 this.#statusTTL(status, index);
 
-             if (this.#isStale(index)) {
 
-                 if (status)
 
-                     status.get = 'stale';
 
-                 if (!fetching) {
 
-                     if (!noDeleteOnStaleGet) {
 
-                         this.delete(k);
 
-                     }
 
-                     if (status && allowStale)
 
-                         status.returnedStale = true;
 
-                     return allowStale ? value : undefined;
 
-                 }
 
-                 else {
 
-                     if (status &&
 
-                         allowStale &&
 
-                         value.__staleWhileFetching !== undefined) {
 
-                         status.returnedStale = true;
 
-                     }
 
-                     return allowStale ? value.__staleWhileFetching : undefined;
 
-                 }
 
-             }
 
-             else {
 
-                 if (status)
 
-                     status.get = 'hit';
 
-                 if (fetching) {
 
-                     return value.__staleWhileFetching;
 
-                 }
 
-                 this.#moveToTail(index);
 
-                 if (updateAgeOnGet) {
 
-                     this.#updateItemAge(index);
 
-                 }
 
-                 return value;
 
-             }
 
-         }
 
-         else if (status) {
 
-             status.get = 'miss';
 
-         }
 
-     }
 
-     #connect(p, n) {
 
-         this.#prev[n] = p;
 
-         this.#next[p] = n;
 
-     }
 
-     #moveToTail(index) {
 
-         if (index !== this.#tail) {
 
-             if (index === this.#head) {
 
-                 this.#head = this.#next[index];
 
-             }
 
-             else {
 
-                 this.#connect(this.#prev[index], this.#next[index]);
 
-             }
 
-             this.#connect(this.#tail, index);
 
-             this.#tail = index;
 
-         }
 
-     }
 
-     delete(k) {
 
-         let deleted = false;
 
-         if (this.#size !== 0) {
 
-             const index = this.#keyMap.get(k);
 
-             if (index !== undefined) {
 
-                 deleted = true;
 
-                 if (this.#size === 1) {
 
-                     this.clear();
 
-                 }
 
-                 else {
 
-                     this.#removeItemSize(index);
 
-                     const v = this.#valList[index];
 
-                     if (this.#isBackgroundFetch(v)) {
 
-                         v.__abortController.abort(new Error('deleted'));
 
-                     }
 
-                     else if (this.#hasDispose || this.#hasDisposeAfter) {
 
-                         if (this.#hasDispose) {
 
-                             this.#dispose?.(v, k, 'delete');
 
-                         }
 
-                         if (this.#hasDisposeAfter) {
 
-                             this.#disposed?.push([v, k, 'delete']);
 
-                         }
 
-                     }
 
-                     this.#keyMap.delete(k);
 
-                     this.#keyList[index] = undefined;
 
-                     this.#valList[index] = undefined;
 
-                     if (index === this.#tail) {
 
-                         this.#tail = this.#prev[index];
 
-                     }
 
-                     else if (index === this.#head) {
 
-                         this.#head = this.#next[index];
 
-                     }
 
-                     else {
 
-                         const pi = this.#prev[index];
 
-                         this.#next[pi] = this.#next[index];
 
-                         const ni = this.#next[index];
 
-                         this.#prev[ni] = this.#prev[index];
 
-                     }
 
-                     this.#size--;
 
-                     this.#free.push(index);
 
-                 }
 
-             }
 
-         }
 
-         if (this.#hasDisposeAfter && this.#disposed?.length) {
 
-             const dt = this.#disposed;
 
-             let task;
 
-             while ((task = dt?.shift())) {
 
-                 this.#disposeAfter?.(...task);
 
-             }
 
-         }
 
-         return deleted;
 
-     }
 
-     clear() {
 
-         for (const index of this.#rindexes({ allowStale: true })) {
 
-             const v = this.#valList[index];
 
-             if (this.#isBackgroundFetch(v)) {
 
-                 v.__abortController.abort(new Error('deleted'));
 
-             }
 
-             else {
 
-                 const k = this.#keyList[index];
 
-                 if (this.#hasDispose) {
 
-                     this.#dispose?.(v, k, 'delete');
 
-                 }
 
-                 if (this.#hasDisposeAfter) {
 
-                     this.#disposed?.push([v, k, 'delete']);
 
-                 }
 
-             }
 
-         }
 
-         this.#keyMap.clear();
 
-         this.#valList.fill(undefined);
 
-         this.#keyList.fill(undefined);
 
-         if (this.#ttls && this.#starts) {
 
-             this.#ttls.fill(0);
 
-             this.#starts.fill(0);
 
-         }
 
-         if (this.#sizes) {
 
-             this.#sizes.fill(0);
 
-         }
 
-         this.#head = 0;
 
-         this.#tail = 0;
 
-         this.#free.length = 0;
 
-         this.#calculatedSize = 0;
 
-         this.#size = 0;
 
-         if (this.#hasDisposeAfter && this.#disposed) {
 
-             const dt = this.#disposed;
 
-             let task;
 
-             while ((task = dt?.shift())) {
 
-                 this.#disposeAfter?.(...task);
 
-             }
 
-         }
 
-     }
 
- };
 
- commonjs.LRUCache = LRUCache$1;
 
- const maybeJoin = (...args) => args.every(arg => arg) ? args.join('') : '';
 
- const maybeEncode = (arg) => arg ? encodeURIComponent(arg) : '';
 
- const formatHashFragment = (f) => f.toLowerCase().replace(/^\W+|\/|\W+$/g, '').replace(/\W+/g, '-');
 
- const defaults = {
 
-   sshtemplate: ({ domain, user, project, committish }) =>
 
-     `git@${domain}:${user}/${project}.git${maybeJoin('#', committish)}`,
 
-   sshurltemplate: ({ domain, user, project, committish }) =>
 
-     `git+ssh://git@${domain}/${user}/${project}.git${maybeJoin('#', committish)}`,
 
-   edittemplate: ({ domain, user, project, committish, editpath, path }) =>
 
-     `https://${domain}/${user}/${project}${maybeJoin('/', editpath, '/', maybeEncode(committish || 'HEAD'), '/', path)}`,
 
-   browsetemplate: ({ domain, user, project, committish, treepath }) =>
 
-     `https://${domain}/${user}/${project}${maybeJoin('/', treepath, '/', maybeEncode(committish))}`,
 
-   browsetreetemplate: ({ domain, user, project, committish, treepath, path, fragment, hashformat }) =>
 
-     `https://${domain}/${user}/${project}/${treepath}/${maybeEncode(committish || 'HEAD')}/${path}${maybeJoin('#', hashformat(fragment || ''))}`,
 
-   browseblobtemplate: ({ domain, user, project, committish, blobpath, path, fragment, hashformat }) =>
 
-     `https://${domain}/${user}/${project}/${blobpath}/${maybeEncode(committish || 'HEAD')}/${path}${maybeJoin('#', hashformat(fragment || ''))}`,
 
-   docstemplate: ({ domain, user, project, treepath, committish }) =>
 
-     `https://${domain}/${user}/${project}${maybeJoin('/', treepath, '/', maybeEncode(committish))}#readme`,
 
-   httpstemplate: ({ auth, domain, user, project, committish }) =>
 
-     `git+https://${maybeJoin(auth, '@')}${domain}/${user}/${project}.git${maybeJoin('#', committish)}`,
 
-   filetemplate: ({ domain, user, project, committish, path }) =>
 
-     `https://${domain}/${user}/${project}/raw/${maybeEncode(committish || 'HEAD')}/${path}`,
 
-   shortcuttemplate: ({ type, user, project, committish }) =>
 
-     `${type}:${user}/${project}${maybeJoin('#', committish)}`,
 
-   pathtemplate: ({ user, project, committish }) =>
 
-     `${user}/${project}${maybeJoin('#', committish)}`,
 
-   bugstemplate: ({ domain, user, project }) =>
 
-     `https://${domain}/${user}/${project}/issues`,
 
-   hashformat: formatHashFragment,
 
- };
 
- const hosts$1 = {};
 
- hosts$1.github = {
 
-   protocols: ['git:', 'http:', 'git+ssh:', 'git+https:', 'ssh:', 'https:'],
 
-   domain: 'github.com',
 
-   treepath: 'tree',
 
-   blobpath: 'blob',
 
-   editpath: 'edit',
 
-   filetemplate: ({ auth, user, project, committish, path }) =>
 
-     `https://${maybeJoin(auth, '@')}raw.githubusercontent.com/${user}/${project}/${maybeEncode(committish || 'HEAD')}/${path}`,
 
-   gittemplate: ({ auth, domain, user, project, committish }) =>
 
-     `git://${maybeJoin(auth, '@')}${domain}/${user}/${project}.git${maybeJoin('#', committish)}`,
 
-   tarballtemplate: ({ domain, user, project, committish }) =>
 
-     `https://codeload.${domain}/${user}/${project}/tar.gz/${maybeEncode(committish || 'HEAD')}`,
 
-   extract: (url) => {
 
-     let [, user, project, type, committish] = url.pathname.split('/', 5);
 
-     if (type && type !== 'tree') {
 
-       return
 
-     }
 
-     if (!type) {
 
-       committish = url.hash.slice(1);
 
-     }
 
-     if (project && project.endsWith('.git')) {
 
-       project = project.slice(0, -4);
 
-     }
 
-     if (!user || !project) {
 
-       return
 
-     }
 
-     return { user, project, committish }
 
-   },
 
- };
 
- hosts$1.bitbucket = {
 
-   protocols: ['git+ssh:', 'git+https:', 'ssh:', 'https:'],
 
-   domain: 'bitbucket.org',
 
-   treepath: 'src',
 
-   blobpath: 'src',
 
-   editpath: '?mode=edit',
 
-   edittemplate: ({ domain, user, project, committish, treepath, path, editpath }) =>
 
-     `https://${domain}/${user}/${project}${maybeJoin('/', treepath, '/', maybeEncode(committish || 'HEAD'), '/', path, editpath)}`,
 
-   tarballtemplate: ({ domain, user, project, committish }) =>
 
-     `https://${domain}/${user}/${project}/get/${maybeEncode(committish || 'HEAD')}.tar.gz`,
 
-   extract: (url) => {
 
-     let [, user, project, aux] = url.pathname.split('/', 4);
 
-     if (['get'].includes(aux)) {
 
-       return
 
-     }
 
-     if (project && project.endsWith('.git')) {
 
-       project = project.slice(0, -4);
 
-     }
 
-     if (!user || !project) {
 
-       return
 
-     }
 
-     return { user, project, committish: url.hash.slice(1) }
 
-   },
 
- };
 
- hosts$1.gitlab = {
 
-   protocols: ['git+ssh:', 'git+https:', 'ssh:', 'https:'],
 
-   domain: 'gitlab.com',
 
-   treepath: 'tree',
 
-   blobpath: 'tree',
 
-   editpath: '-/edit',
 
-   httpstemplate: ({ auth, domain, user, project, committish }) =>
 
-     `git+https://${maybeJoin(auth, '@')}${domain}/${user}/${project}.git${maybeJoin('#', committish)}`,
 
-   tarballtemplate: ({ domain, user, project, committish }) =>
 
-     `https://${domain}/${user}/${project}/repository/archive.tar.gz?ref=${maybeEncode(committish || 'HEAD')}`,
 
-   extract: (url) => {
 
-     const path = url.pathname.slice(1);
 
-     if (path.includes('/-/') || path.includes('/archive.tar.gz')) {
 
-       return
 
-     }
 
-     const segments = path.split('/');
 
-     let project = segments.pop();
 
-     if (project.endsWith('.git')) {
 
-       project = project.slice(0, -4);
 
-     }
 
-     const user = segments.join('/');
 
-     if (!user || !project) {
 
-       return
 
-     }
 
-     return { user, project, committish: url.hash.slice(1) }
 
-   },
 
- };
 
- hosts$1.gist = {
 
-   protocols: ['git:', 'git+ssh:', 'git+https:', 'ssh:', 'https:'],
 
-   domain: 'gist.github.com',
 
-   editpath: 'edit',
 
-   sshtemplate: ({ domain, project, committish }) =>
 
-     `git@${domain}:${project}.git${maybeJoin('#', committish)}`,
 
-   sshurltemplate: ({ domain, project, committish }) =>
 
-     `git+ssh://git@${domain}/${project}.git${maybeJoin('#', committish)}`,
 
-   edittemplate: ({ domain, user, project, committish, editpath }) =>
 
-     `https://${domain}/${user}/${project}${maybeJoin('/', maybeEncode(committish))}/${editpath}`,
 
-   browsetemplate: ({ domain, project, committish }) =>
 
-     `https://${domain}/${project}${maybeJoin('/', maybeEncode(committish))}`,
 
-   browsetreetemplate: ({ domain, project, committish, path, hashformat }) =>
 
-     `https://${domain}/${project}${maybeJoin('/', maybeEncode(committish))}${maybeJoin('#', hashformat(path))}`,
 
-   browseblobtemplate: ({ domain, project, committish, path, hashformat }) =>
 
-     `https://${domain}/${project}${maybeJoin('/', maybeEncode(committish))}${maybeJoin('#', hashformat(path))}`,
 
-   docstemplate: ({ domain, project, committish }) =>
 
-     `https://${domain}/${project}${maybeJoin('/', maybeEncode(committish))}`,
 
-   httpstemplate: ({ domain, project, committish }) =>
 
-     `git+https://${domain}/${project}.git${maybeJoin('#', committish)}`,
 
-   filetemplate: ({ user, project, committish, path }) =>
 
-     `https://gist.githubusercontent.com/${user}/${project}/raw${maybeJoin('/', maybeEncode(committish))}/${path}`,
 
-   shortcuttemplate: ({ type, project, committish }) =>
 
-     `${type}:${project}${maybeJoin('#', committish)}`,
 
-   pathtemplate: ({ project, committish }) =>
 
-     `${project}${maybeJoin('#', committish)}`,
 
-   bugstemplate: ({ domain, project }) =>
 
-     `https://${domain}/${project}`,
 
-   gittemplate: ({ domain, project, committish }) =>
 
-     `git://${domain}/${project}.git${maybeJoin('#', committish)}`,
 
-   tarballtemplate: ({ project, committish }) =>
 
-     `https://codeload.github.com/gist/${project}/tar.gz/${maybeEncode(committish || 'HEAD')}`,
 
-   extract: (url) => {
 
-     let [, user, project, aux] = url.pathname.split('/', 4);
 
-     if (aux === 'raw') {
 
-       return
 
-     }
 
-     if (!project) {
 
-       if (!user) {
 
-         return
 
-       }
 
-       project = user;
 
-       user = null;
 
-     }
 
-     if (project.endsWith('.git')) {
 
-       project = project.slice(0, -4);
 
-     }
 
-     return { user, project, committish: url.hash.slice(1) }
 
-   },
 
-   hashformat: function (fragment) {
 
-     return fragment && 'file-' + formatHashFragment(fragment)
 
-   },
 
- };
 
- hosts$1.sourcehut = {
 
-   protocols: ['git+ssh:', 'https:'],
 
-   domain: 'git.sr.ht',
 
-   treepath: 'tree',
 
-   blobpath: 'tree',
 
-   filetemplate: ({ domain, user, project, committish, path }) =>
 
-     `https://${domain}/${user}/${project}/blob/${maybeEncode(committish) || 'HEAD'}/${path}`,
 
-   httpstemplate: ({ domain, user, project, committish }) =>
 
-     `https://${domain}/${user}/${project}.git${maybeJoin('#', committish)}`,
 
-   tarballtemplate: ({ domain, user, project, committish }) =>
 
-     `https://${domain}/${user}/${project}/archive/${maybeEncode(committish) || 'HEAD'}.tar.gz`,
 
-   bugstemplate: ({ user, project }) => null,
 
-   extract: (url) => {
 
-     let [, user, project, aux] = url.pathname.split('/', 4);
 
-     if (['archive'].includes(aux)) {
 
-       return
 
-     }
 
-     if (project && project.endsWith('.git')) {
 
-       project = project.slice(0, -4);
 
-     }
 
-     if (!user || !project) {
 
-       return
 
-     }
 
-     return { user, project, committish: url.hash.slice(1) }
 
-   },
 
- };
 
- for (const [name, host] of Object.entries(hosts$1)) {
 
-   hosts$1[name] = Object.assign({}, defaults, host);
 
- }
 
- var hosts_1 = hosts$1;
 
- const url$2 = require$$0;
 
- const lastIndexOfBefore = (str, char, beforeChar) => {
 
-   const startPosition = str.indexOf(beforeChar);
 
-   return str.lastIndexOf(char, startPosition > -1 ? startPosition : Infinity)
 
- };
 
- const safeUrl = (u) => {
 
-   try {
 
-     return new url$2.URL(u)
 
-   } catch {
 
-   }
 
- };
 
- const correctProtocol = (arg, protocols) => {
 
-   const firstColon = arg.indexOf(':');
 
-   const proto = arg.slice(0, firstColon + 1);
 
-   if (Object.prototype.hasOwnProperty.call(protocols, proto)) {
 
-     return arg
 
-   }
 
-   const firstAt = arg.indexOf('@');
 
-   if (firstAt > -1) {
 
-     if (firstAt > firstColon) {
 
-       return `git+ssh://${arg}`
 
-     } else {
 
-       return arg
 
-     }
 
-   }
 
-   const doubleSlash = arg.indexOf('//');
 
-   if (doubleSlash === firstColon + 1) {
 
-     return arg
 
-   }
 
-   return `${arg.slice(0, firstColon + 1)}//${arg.slice(firstColon + 1)}`
 
- };
 
- const correctUrl = (giturl) => {
 
-   const firstAt = lastIndexOfBefore(giturl, '@', '#');
 
-   const lastColonBeforeHash = lastIndexOfBefore(giturl, ':', '#');
 
-   if (lastColonBeforeHash > firstAt) {
 
-     giturl = giturl.slice(0, lastColonBeforeHash) + '/' + giturl.slice(lastColonBeforeHash + 1);
 
-   }
 
-   if (lastIndexOfBefore(giturl, ':', '#') === -1 && giturl.indexOf('//') === -1) {
 
-     giturl = `git+ssh://${giturl}`;
 
-   }
 
-   return giturl
 
- };
 
- var parseUrl$2 = (giturl, protocols) => {
 
-   const withProtocol = protocols ? correctProtocol(giturl, protocols) : giturl;
 
-   return safeUrl(withProtocol) || safeUrl(correctUrl(withProtocol))
 
- };
 
- const parseUrl$1 = parseUrl$2;
 
- const isGitHubShorthand = (arg) => {
 
-   const firstHash = arg.indexOf('#');
 
-   const firstSlash = arg.indexOf('/');
 
-   const secondSlash = arg.indexOf('/', firstSlash + 1);
 
-   const firstColon = arg.indexOf(':');
 
-   const firstSpace = /\s/.exec(arg);
 
-   const firstAt = arg.indexOf('@');
 
-   const spaceOnlyAfterHash = !firstSpace || (firstHash > -1 && firstSpace.index > firstHash);
 
-   const atOnlyAfterHash = firstAt === -1 || (firstHash > -1 && firstAt > firstHash);
 
-   const colonOnlyAfterHash = firstColon === -1 || (firstHash > -1 && firstColon > firstHash);
 
-   const secondSlashOnlyAfterHash = secondSlash === -1 || (firstHash > -1 && secondSlash > firstHash);
 
-   const hasSlash = firstSlash > 0;
 
-   const doesNotEndWithSlash = firstHash > -1 ? arg[firstHash - 1] !== '/' : !arg.endsWith('/');
 
-   const doesNotStartWithDot = !arg.startsWith('.');
 
-   return spaceOnlyAfterHash && hasSlash && doesNotEndWithSlash &&
 
-     doesNotStartWithDot && atOnlyAfterHash && colonOnlyAfterHash &&
 
-     secondSlashOnlyAfterHash
 
- };
 
- var fromUrl$1 = (giturl, opts, { gitHosts, protocols }) => {
 
-   if (!giturl) {
 
-     return
 
-   }
 
-   const correctedUrl = isGitHubShorthand(giturl) ? `github:${giturl}` : giturl;
 
-   const parsed = parseUrl$1(correctedUrl, protocols);
 
-   if (!parsed) {
 
-     return
 
-   }
 
-   const gitHostShortcut = gitHosts.byShortcut[parsed.protocol];
 
-   const gitHostDomain = gitHosts.byDomain[parsed.hostname.startsWith('www.')
 
-     ? parsed.hostname.slice(4)
 
-     : parsed.hostname];
 
-   const gitHostName = gitHostShortcut || gitHostDomain;
 
-   if (!gitHostName) {
 
-     return
 
-   }
 
-   const gitHostInfo = gitHosts[gitHostShortcut || gitHostDomain];
 
-   let auth = null;
 
-   if (protocols[parsed.protocol]?.auth && (parsed.username || parsed.password)) {
 
-     auth = `${parsed.username}${parsed.password ? ':' + parsed.password : ''}`;
 
-   }
 
-   let committish = null;
 
-   let user = null;
 
-   let project = null;
 
-   let defaultRepresentation = null;
 
-   try {
 
-     if (gitHostShortcut) {
 
-       let pathname = parsed.pathname.startsWith('/') ? parsed.pathname.slice(1) : parsed.pathname;
 
-       const firstAt = pathname.indexOf('@');
 
-       if (firstAt > -1) {
 
-         pathname = pathname.slice(firstAt + 1);
 
-       }
 
-       const lastSlash = pathname.lastIndexOf('/');
 
-       if (lastSlash > -1) {
 
-         user = decodeURIComponent(pathname.slice(0, lastSlash));
 
-         if (!user) {
 
-           user = null;
 
-         }
 
-         project = decodeURIComponent(pathname.slice(lastSlash + 1));
 
-       } else {
 
-         project = decodeURIComponent(pathname);
 
-       }
 
-       if (project.endsWith('.git')) {
 
-         project = project.slice(0, -4);
 
-       }
 
-       if (parsed.hash) {
 
-         committish = decodeURIComponent(parsed.hash.slice(1));
 
-       }
 
-       defaultRepresentation = 'shortcut';
 
-     } else {
 
-       if (!gitHostInfo.protocols.includes(parsed.protocol)) {
 
-         return
 
-       }
 
-       const segments = gitHostInfo.extract(parsed);
 
-       if (!segments) {
 
-         return
 
-       }
 
-       user = segments.user && decodeURIComponent(segments.user);
 
-       project = decodeURIComponent(segments.project);
 
-       committish = decodeURIComponent(segments.committish);
 
-       defaultRepresentation = protocols[parsed.protocol]?.name || parsed.protocol.slice(0, -1);
 
-     }
 
-   } catch (err) {
 
-     if (err instanceof URIError) {
 
-       return
 
-     } else {
 
-       throw err
 
-     }
 
-   }
 
-   return [gitHostName, user, auth, project, committish, defaultRepresentation, opts]
 
- };
 
- const { LRUCache } = commonjs;
 
- const hosts = hosts_1;
 
- const fromUrl = fromUrl$1;
 
- const parseUrl = parseUrl$2;
 
- const cache$1 = new LRUCache({ max: 1000 });
 
- class GitHost {
 
-   constructor (type, user, auth, project, committish, defaultRepresentation, opts = {}) {
 
-     Object.assign(this, GitHost.#gitHosts[type], {
 
-       type,
 
-       user,
 
-       auth,
 
-       project,
 
-       committish,
 
-       default: defaultRepresentation,
 
-       opts,
 
-     });
 
-   }
 
-   static #gitHosts = { byShortcut: {}, byDomain: {} }
 
-   static #protocols = {
 
-     'git+ssh:': { name: 'sshurl' },
 
-     'ssh:': { name: 'sshurl' },
 
-     'git+https:': { name: 'https', auth: true },
 
-     'git:': { auth: true },
 
-     'http:': { auth: true },
 
-     'https:': { auth: true },
 
-     'git+http:': { auth: true },
 
-   }
 
-   static addHost (name, host) {
 
-     GitHost.#gitHosts[name] = host;
 
-     GitHost.#gitHosts.byDomain[host.domain] = name;
 
-     GitHost.#gitHosts.byShortcut[`${name}:`] = name;
 
-     GitHost.#protocols[`${name}:`] = { name };
 
-   }
 
-   static fromUrl (giturl, opts) {
 
-     if (typeof giturl !== 'string') {
 
-       return
 
-     }
 
-     const key = giturl + JSON.stringify(opts || {});
 
-     if (!cache$1.has(key)) {
 
-       const hostArgs = fromUrl(giturl, opts, {
 
-         gitHosts: GitHost.#gitHosts,
 
-         protocols: GitHost.#protocols,
 
-       });
 
-       cache$1.set(key, hostArgs ? new GitHost(...hostArgs) : undefined);
 
-     }
 
-     return cache$1.get(key)
 
-   }
 
-   static parseUrl (url) {
 
-     return parseUrl(url)
 
-   }
 
-   #fill (template, opts) {
 
-     if (typeof template !== 'function') {
 
-       return null
 
-     }
 
-     const options = { ...this, ...this.opts, ...opts };
 
-     if (!options.path) {
 
-       options.path = '';
 
-     }
 
-     if (options.path.startsWith('/')) {
 
-       options.path = options.path.slice(1);
 
-     }
 
-     if (options.noCommittish) {
 
-       options.committish = null;
 
-     }
 
-     const result = template(options);
 
-     return options.noGitPlus && result.startsWith('git+') ? result.slice(4) : result
 
-   }
 
-   hash () {
 
-     return this.committish ? `#${this.committish}` : ''
 
-   }
 
-   ssh (opts) {
 
-     return this.#fill(this.sshtemplate, opts)
 
-   }
 
-   sshurl (opts) {
 
-     return this.#fill(this.sshurltemplate, opts)
 
-   }
 
-   browse (path, ...args) {
 
-     if (typeof path !== 'string') {
 
-       return this.#fill(this.browsetemplate, path)
 
-     }
 
-     if (typeof args[0] !== 'string') {
 
-       return this.#fill(this.browsetreetemplate, { ...args[0], path })
 
-     }
 
-     return this.#fill(this.browsetreetemplate, { ...args[1], fragment: args[0], path })
 
-   }
 
-   browseFile (path, ...args) {
 
-     if (typeof args[0] !== 'string') {
 
-       return this.#fill(this.browseblobtemplate, { ...args[0], path })
 
-     }
 
-     return this.#fill(this.browseblobtemplate, { ...args[1], fragment: args[0], path })
 
-   }
 
-   docs (opts) {
 
-     return this.#fill(this.docstemplate, opts)
 
-   }
 
-   bugs (opts) {
 
-     return this.#fill(this.bugstemplate, opts)
 
-   }
 
-   https (opts) {
 
-     return this.#fill(this.httpstemplate, opts)
 
-   }
 
-   git (opts) {
 
-     return this.#fill(this.gittemplate, opts)
 
-   }
 
-   shortcut (opts) {
 
-     return this.#fill(this.shortcuttemplate, opts)
 
-   }
 
-   path (opts) {
 
-     return this.#fill(this.pathtemplate, opts)
 
-   }
 
-   tarball (opts) {
 
-     return this.#fill(this.tarballtemplate, { ...opts, noCommittish: false })
 
-   }
 
-   file (path, opts) {
 
-     return this.#fill(this.filetemplate, { ...opts, path })
 
-   }
 
-   edit (path, opts) {
 
-     return this.#fill(this.edittemplate, { ...opts, path })
 
-   }
 
-   getDefaultRepresentation () {
 
-     return this.default
 
-   }
 
-   toString (opts) {
 
-     if (this.default && typeof this[this.default] === 'function') {
 
-       return this[this.default](opts)
 
-     }
 
-     return this.sshurl(opts)
 
-   }
 
- }
 
- for (const [name, host] of Object.entries(hosts)) {
 
-   GitHost.addHost(name, host);
 
- }
 
- var lib$3 = GitHost;
 
- var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';
 
- var toStr = Object.prototype.toString;
 
- var max = Math.max;
 
- var funcType = '[object Function]';
 
- var concatty = function concatty(a, b) {
 
-     var arr = [];
 
-     for (var i = 0; i < a.length; i += 1) {
 
-         arr[i] = a[i];
 
-     }
 
-     for (var j = 0; j < b.length; j += 1) {
 
-         arr[j + a.length] = b[j];
 
-     }
 
-     return arr;
 
- };
 
- var slicy = function slicy(arrLike, offset) {
 
-     var arr = [];
 
-     for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {
 
-         arr[j] = arrLike[i];
 
-     }
 
-     return arr;
 
- };
 
- var joiny = function (arr, joiner) {
 
-     var str = '';
 
-     for (var i = 0; i < arr.length; i += 1) {
 
-         str += arr[i];
 
-         if (i + 1 < arr.length) {
 
-             str += joiner;
 
-         }
 
-     }
 
-     return str;
 
- };
 
- var implementation$1 = function bind(that) {
 
-     var target = this;
 
-     if (typeof target !== 'function' || toStr.apply(target) !== funcType) {
 
-         throw new TypeError(ERROR_MESSAGE + target);
 
-     }
 
-     var args = slicy(arguments, 1);
 
-     var bound;
 
-     var binder = function () {
 
-         if (this instanceof bound) {
 
-             var result = target.apply(
 
-                 this,
 
-                 concatty(args, arguments)
 
-             );
 
-             if (Object(result) === result) {
 
-                 return result;
 
-             }
 
-             return this;
 
-         }
 
-         return target.apply(
 
-             that,
 
-             concatty(args, arguments)
 
-         );
 
-     };
 
-     var boundLength = max(0, target.length - args.length);
 
-     var boundArgs = [];
 
-     for (var i = 0; i < boundLength; i++) {
 
-         boundArgs[i] = '$' + i;
 
-     }
 
-     bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);
 
-     if (target.prototype) {
 
-         var Empty = function Empty() {};
 
-         Empty.prototype = target.prototype;
 
-         bound.prototype = new Empty();
 
-         Empty.prototype = null;
 
-     }
 
-     return bound;
 
- };
 
- var implementation = implementation$1;
 
- var functionBind = Function.prototype.bind || implementation;
 
- var call = Function.prototype.call;
 
- var $hasOwn = Object.prototype.hasOwnProperty;
 
- var bind = functionBind;
 
- var hasown = bind.call(call, $hasOwn);
 
- var assert = true;
 
- var async_hooks = ">= 8";
 
- var buffer_ieee754 = ">= 0.5 && < 0.9.7";
 
- var buffer = true;
 
- var child_process = true;
 
- var cluster = ">= 0.5";
 
- var console$1 = true;
 
- var constants = true;
 
- var crypto = true;
 
- var _debug_agent = ">= 1 && < 8";
 
- var _debugger = "< 8";
 
- var dgram = true;
 
- var diagnostics_channel = [
 
- 	">= 14.17 && < 15",
 
- 	">= 15.1"
 
- ];
 
- var dns = true;
 
- var domain = ">= 0.7.12";
 
- var events = true;
 
- var freelist = "< 6";
 
- var fs = true;
 
- var _http_agent = ">= 0.11.1";
 
- var _http_client = ">= 0.11.1";
 
- var _http_common = ">= 0.11.1";
 
- var _http_incoming = ">= 0.11.1";
 
- var _http_outgoing = ">= 0.11.1";
 
- var _http_server = ">= 0.11.1";
 
- var http = true;
 
- var http2 = ">= 8.8";
 
- var https = true;
 
- var inspector = ">= 8";
 
- var _linklist = "< 8";
 
- var module = true;
 
- var net = true;
 
- var os$2 = true;
 
- var path = true;
 
- var perf_hooks = ">= 8.5";
 
- var process$1 = ">= 1";
 
- var punycode = ">= 0.5";
 
- var querystring = true;
 
- var readline = true;
 
- var repl = true;
 
- var smalloc = ">= 0.11.5 && < 3";
 
- var _stream_duplex = ">= 0.9.4";
 
- var _stream_transform = ">= 0.9.4";
 
- var _stream_wrap = ">= 1.4.1";
 
- var _stream_passthrough = ">= 0.9.4";
 
- var _stream_readable = ">= 0.9.4";
 
- var _stream_writable = ">= 0.9.4";
 
- var stream = true;
 
- var string_decoder = true;
 
- var sys = [
 
- 	">= 0.4 && < 0.7",
 
- 	">= 0.8"
 
- ];
 
- var timers = true;
 
- var _tls_common = ">= 0.11.13";
 
- var _tls_legacy = ">= 0.11.3 && < 10";
 
- var _tls_wrap = ">= 0.11.3";
 
- var tls = true;
 
- var trace_events = ">= 10";
 
- var tty = true;
 
- var url$1 = true;
 
- var util$1 = true;
 
- var v8 = ">= 1";
 
- var vm = true;
 
- var wasi = [
 
- 	">= 13.4 && < 13.5",
 
- 	">= 18.17 && < 19",
 
- 	">= 20"
 
- ];
 
- var worker_threads = ">= 11.7";
 
- var zlib = ">= 0.5";
 
- const require$$1$1 = {
 
- 	assert: assert,
 
- 	"node:assert": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	"assert/strict": ">= 15",
 
- 	"node:assert/strict": ">= 16",
 
- 	async_hooks: async_hooks,
 
- 	"node:async_hooks": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	buffer_ieee754: buffer_ieee754,
 
- 	buffer: buffer,
 
- 	"node:buffer": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	child_process: child_process,
 
- 	"node:child_process": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	cluster: cluster,
 
- 	"node:cluster": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	console: console$1,
 
- 	"node:console": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	constants: constants,
 
- 	"node:constants": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	crypto: crypto,
 
- 	"node:crypto": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	_debug_agent: _debug_agent,
 
- 	_debugger: _debugger,
 
- 	dgram: dgram,
 
- 	"node:dgram": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	diagnostics_channel: diagnostics_channel,
 
- 	"node:diagnostics_channel": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	dns: dns,
 
- 	"node:dns": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	"dns/promises": ">= 15",
 
- 	"node:dns/promises": ">= 16",
 
- 	domain: domain,
 
- 	"node:domain": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	events: events,
 
- 	"node:events": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	freelist: freelist,
 
- 	fs: fs,
 
- 	"node:fs": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	"fs/promises": [
 
- 	">= 10 && < 10.1",
 
- 	">= 14"
 
- ],
 
- 	"node:fs/promises": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	_http_agent: _http_agent,
 
- 	"node:_http_agent": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	_http_client: _http_client,
 
- 	"node:_http_client": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	_http_common: _http_common,
 
- 	"node:_http_common": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	_http_incoming: _http_incoming,
 
- 	"node:_http_incoming": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	_http_outgoing: _http_outgoing,
 
- 	"node:_http_outgoing": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	_http_server: _http_server,
 
- 	"node:_http_server": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	http: http,
 
- 	"node:http": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	http2: http2,
 
- 	"node:http2": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	https: https,
 
- 	"node:https": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	inspector: inspector,
 
- 	"node:inspector": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	"inspector/promises": [
 
- 	">= 19"
 
- ],
 
- 	"node:inspector/promises": [
 
- 	">= 19"
 
- ],
 
- 	_linklist: _linklist,
 
- 	module: module,
 
- 	"node:module": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	net: net,
 
- 	"node:net": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	"node-inspect/lib/_inspect": ">= 7.6 && < 12",
 
- 	"node-inspect/lib/internal/inspect_client": ">= 7.6 && < 12",
 
- 	"node-inspect/lib/internal/inspect_repl": ">= 7.6 && < 12",
 
- 	os: os$2,
 
- 	"node:os": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	path: path,
 
- 	"node:path": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	"path/posix": ">= 15.3",
 
- 	"node:path/posix": ">= 16",
 
- 	"path/win32": ">= 15.3",
 
- 	"node:path/win32": ">= 16",
 
- 	perf_hooks: perf_hooks,
 
- 	"node:perf_hooks": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	process: process$1,
 
- 	"node:process": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	punycode: punycode,
 
- 	"node:punycode": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	querystring: querystring,
 
- 	"node:querystring": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	readline: readline,
 
- 	"node:readline": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	"readline/promises": ">= 17",
 
- 	"node:readline/promises": ">= 17",
 
- 	repl: repl,
 
- 	"node:repl": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	smalloc: smalloc,
 
- 	_stream_duplex: _stream_duplex,
 
- 	"node:_stream_duplex": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	_stream_transform: _stream_transform,
 
- 	"node:_stream_transform": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	_stream_wrap: _stream_wrap,
 
- 	"node:_stream_wrap": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	_stream_passthrough: _stream_passthrough,
 
- 	"node:_stream_passthrough": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	_stream_readable: _stream_readable,
 
- 	"node:_stream_readable": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	_stream_writable: _stream_writable,
 
- 	"node:_stream_writable": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	stream: stream,
 
- 	"node:stream": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	"stream/consumers": ">= 16.7",
 
- 	"node:stream/consumers": ">= 16.7",
 
- 	"stream/promises": ">= 15",
 
- 	"node:stream/promises": ">= 16",
 
- 	"stream/web": ">= 16.5",
 
- 	"node:stream/web": ">= 16.5",
 
- 	string_decoder: string_decoder,
 
- 	"node:string_decoder": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	sys: sys,
 
- 	"node:sys": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	"test/reporters": ">= 19.9 && < 20.2",
 
- 	"node:test/reporters": [
 
- 	">= 18.17 && < 19",
 
- 	">= 19.9",
 
- 	">= 20"
 
- ],
 
- 	"node:test": [
 
- 	">= 16.17 && < 17",
 
- 	">= 18"
 
- ],
 
- 	timers: timers,
 
- 	"node:timers": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	"timers/promises": ">= 15",
 
- 	"node:timers/promises": ">= 16",
 
- 	_tls_common: _tls_common,
 
- 	"node:_tls_common": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	_tls_legacy: _tls_legacy,
 
- 	_tls_wrap: _tls_wrap,
 
- 	"node:_tls_wrap": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	tls: tls,
 
- 	"node:tls": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	trace_events: trace_events,
 
- 	"node:trace_events": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	tty: tty,
 
- 	"node:tty": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	url: url$1,
 
- 	"node:url": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	util: util$1,
 
- 	"node:util": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	"util/types": ">= 15.3",
 
- 	"node:util/types": ">= 16",
 
- 	"v8/tools/arguments": ">= 10 && < 12",
 
- 	"v8/tools/codemap": [
 
- 	">= 4.4 && < 5",
 
- 	">= 5.2 && < 12"
 
- ],
 
- 	"v8/tools/consarray": [
 
- 	">= 4.4 && < 5",
 
- 	">= 5.2 && < 12"
 
- ],
 
- 	"v8/tools/csvparser": [
 
- 	">= 4.4 && < 5",
 
- 	">= 5.2 && < 12"
 
- ],
 
- 	"v8/tools/logreader": [
 
- 	">= 4.4 && < 5",
 
- 	">= 5.2 && < 12"
 
- ],
 
- 	"v8/tools/profile_view": [
 
- 	">= 4.4 && < 5",
 
- 	">= 5.2 && < 12"
 
- ],
 
- 	"v8/tools/splaytree": [
 
- 	">= 4.4 && < 5",
 
- 	">= 5.2 && < 12"
 
- ],
 
- 	v8: v8,
 
- 	"node:v8": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	vm: vm,
 
- 	"node:vm": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	wasi: wasi,
 
- 	"node:wasi": [
 
- 	">= 18.17 && < 19",
 
- 	">= 20"
 
- ],
 
- 	worker_threads: worker_threads,
 
- 	"node:worker_threads": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ],
 
- 	zlib: zlib,
 
- 	"node:zlib": [
 
- 	">= 14.18 && < 15",
 
- 	">= 16"
 
- ]
 
- };
 
- var hasOwn = hasown;
 
- function specifierIncluded(current, specifier) {
 
- 	var nodeParts = current.split('.');
 
- 	var parts = specifier.split(' ');
 
- 	var op = parts.length > 1 ? parts[0] : '=';
 
- 	var versionParts = (parts.length > 1 ? parts[1] : parts[0]).split('.');
 
- 	for (var i = 0; i < 3; ++i) {
 
- 		var cur = parseInt(nodeParts[i] || 0, 10);
 
- 		var ver = parseInt(versionParts[i] || 0, 10);
 
- 		if (cur === ver) {
 
- 			continue; 
 
- 		}
 
- 		if (op === '<') {
 
- 			return cur < ver;
 
- 		}
 
- 		if (op === '>=') {
 
- 			return cur >= ver;
 
- 		}
 
- 		return false;
 
- 	}
 
- 	return op === '>=';
 
- }
 
- function matchesRange(current, range) {
 
- 	var specifiers = range.split(/ ?&& ?/);
 
- 	if (specifiers.length === 0) {
 
- 		return false;
 
- 	}
 
- 	for (var i = 0; i < specifiers.length; ++i) {
 
- 		if (!specifierIncluded(current, specifiers[i])) {
 
- 			return false;
 
- 		}
 
- 	}
 
- 	return true;
 
- }
 
- function versionIncluded(nodeVersion, specifierValue) {
 
- 	if (typeof specifierValue === 'boolean') {
 
- 		return specifierValue;
 
- 	}
 
- 	var current = typeof nodeVersion === 'undefined'
 
- 		? process.versions && process.versions.node
 
- 		: nodeVersion;
 
- 	if (typeof current !== 'string') {
 
- 		throw new TypeError(typeof nodeVersion === 'undefined' ? 'Unable to determine current node version' : 'If provided, a valid node version is required');
 
- 	}
 
- 	if (specifierValue && typeof specifierValue === 'object') {
 
- 		for (var i = 0; i < specifierValue.length; ++i) {
 
- 			if (matchesRange(current, specifierValue[i])) {
 
- 				return true;
 
- 			}
 
- 		}
 
- 		return false;
 
- 	}
 
- 	return matchesRange(current, specifierValue);
 
- }
 
- var data = require$$1$1;
 
- var isCoreModule = function isCore(x, nodeVersion) {
 
- 	return hasOwn(data, x) && versionIncluded(nodeVersion, data[x]);
 
- };
 
- var extract_description = extractDescription$1;
 
- function extractDescription$1 (d) {
 
-   if (!d) {
 
-     return
 
-   }
 
-   if (d === 'ERROR: No README data found!') {
 
-     return
 
-   }
 
-   d = d.trim().split('\n');
 
-   let s = 0;
 
-   while (d[s] && d[s].trim().match(/^(#|$)/)) {
 
-     s++;
 
-   }
 
-   const l = d.length;
 
-   let e = s + 1;
 
-   while (e < l && d[e].trim()) {
 
-     e++;
 
-   }
 
-   return d.slice(s, e).join(' ').trim()
 
- }
 
- var topLevel = {
 
- 	dependancies: "dependencies",
 
- 	dependecies: "dependencies",
 
- 	depdenencies: "dependencies",
 
- 	devEependencies: "devDependencies",
 
- 	depends: "dependencies",
 
- 	"dev-dependencies": "devDependencies",
 
- 	devDependences: "devDependencies",
 
- 	devDepenencies: "devDependencies",
 
- 	devdependencies: "devDependencies",
 
- 	repostitory: "repository",
 
- 	repo: "repository",
 
- 	prefereGlobal: "preferGlobal",
 
- 	hompage: "homepage",
 
- 	hampage: "homepage",
 
- 	autohr: "author",
 
- 	autor: "author",
 
- 	contributers: "contributors",
 
- 	publicationConfig: "publishConfig",
 
- 	script: "scripts"
 
- };
 
- var bugs = {
 
- 	web: "url",
 
- 	name: "url"
 
- };
 
- var script = {
 
- 	server: "start",
 
- 	tests: "test"
 
- };
 
- const require$$7 = {
 
- 	topLevel: topLevel,
 
- 	bugs: bugs,
 
- 	script: script
 
- };
 
- var isValidSemver = valid_1;
 
- var cleanSemver = clean_1;
 
- var validateLicense = validateNpmPackageLicense;
 
- var hostedGitInfo = lib$3;
 
- var isBuiltinModule = isCoreModule;
 
- var depTypes = ['dependencies', 'devDependencies', 'optionalDependencies'];
 
- var extractDescription = extract_description;
 
- var url = require$$0;
 
- var typos = require$$7;
 
- var isEmail = str => str.includes('@') && (str.indexOf('@') < str.lastIndexOf('.'));
 
- var fixer$1 = {
 
-   warn: function () {},
 
-   fixRepositoryField: function (data) {
 
-     if (data.repositories) {
 
-       this.warn('repositories');
 
-       data.repository = data.repositories[0];
 
-     }
 
-     if (!data.repository) {
 
-       return this.warn('missingRepository')
 
-     }
 
-     if (typeof data.repository === 'string') {
 
-       data.repository = {
 
-         type: 'git',
 
-         url: data.repository,
 
-       };
 
-     }
 
-     var r = data.repository.url || '';
 
-     if (r) {
 
-       var hosted = hostedGitInfo.fromUrl(r);
 
-       if (hosted) {
 
-         r = data.repository.url
 
-           = hosted.getDefaultRepresentation() === 'shortcut' ? hosted.https() : hosted.toString();
 
-       }
 
-     }
 
-     if (r.match(/github.com\/[^/]+\/[^/]+\.git\.git$/)) {
 
-       this.warn('brokenGitUrl', r);
 
-     }
 
-   },
 
-   fixTypos: function (data) {
 
-     Object.keys(typos.topLevel).forEach(function (d) {
 
-       if (Object.prototype.hasOwnProperty.call(data, d)) {
 
-         this.warn('typo', d, typos.topLevel[d]);
 
-       }
 
-     }, this);
 
-   },
 
-   fixScriptsField: function (data) {
 
-     if (!data.scripts) {
 
-       return
 
-     }
 
-     if (typeof data.scripts !== 'object') {
 
-       this.warn('nonObjectScripts');
 
-       delete data.scripts;
 
-       return
 
-     }
 
-     Object.keys(data.scripts).forEach(function (k) {
 
-       if (typeof data.scripts[k] !== 'string') {
 
-         this.warn('nonStringScript');
 
-         delete data.scripts[k];
 
-       } else if (typos.script[k] && !data.scripts[typos.script[k]]) {
 
-         this.warn('typo', k, typos.script[k], 'scripts');
 
-       }
 
-     }, this);
 
-   },
 
-   fixFilesField: function (data) {
 
-     var files = data.files;
 
-     if (files && !Array.isArray(files)) {
 
-       this.warn('nonArrayFiles');
 
-       delete data.files;
 
-     } else if (data.files) {
 
-       data.files = data.files.filter(function (file) {
 
-         if (!file || typeof file !== 'string') {
 
-           this.warn('invalidFilename', file);
 
-           return false
 
-         } else {
 
-           return true
 
-         }
 
-       }, this);
 
-     }
 
-   },
 
-   fixBinField: function (data) {
 
-     if (!data.bin) {
 
-       return
 
-     }
 
-     if (typeof data.bin === 'string') {
 
-       var b = {};
 
-       var match;
 
-       if (match = data.name.match(/^@[^/]+[/](.*)$/)) {
 
-         b[match[1]] = data.bin;
 
-       } else {
 
-         b[data.name] = data.bin;
 
-       }
 
-       data.bin = b;
 
-     }
 
-   },
 
-   fixManField: function (data) {
 
-     if (!data.man) {
 
-       return
 
-     }
 
-     if (typeof data.man === 'string') {
 
-       data.man = [data.man];
 
-     }
 
-   },
 
-   fixBundleDependenciesField: function (data) {
 
-     var bdd = 'bundledDependencies';
 
-     var bd = 'bundleDependencies';
 
-     if (data[bdd] && !data[bd]) {
 
-       data[bd] = data[bdd];
 
-       delete data[bdd];
 
-     }
 
-     if (data[bd] && !Array.isArray(data[bd])) {
 
-       this.warn('nonArrayBundleDependencies');
 
-       delete data[bd];
 
-     } else if (data[bd]) {
 
-       data[bd] = data[bd].filter(function (filtered) {
 
-         if (!filtered || typeof filtered !== 'string') {
 
-           this.warn('nonStringBundleDependency', filtered);
 
-           return false
 
-         } else {
 
-           if (!data.dependencies) {
 
-             data.dependencies = {};
 
-           }
 
-           if (!Object.prototype.hasOwnProperty.call(data.dependencies, filtered)) {
 
-             this.warn('nonDependencyBundleDependency', filtered);
 
-             data.dependencies[filtered] = '*';
 
-           }
 
-           return true
 
-         }
 
-       }, this);
 
-     }
 
-   },
 
-   fixDependencies: function (data, strict) {
 
-     objectifyDeps(data, this.warn);
 
-     addOptionalDepsToDeps(data, this.warn);
 
-     this.fixBundleDependenciesField(data)
 
-     ;['dependencies', 'devDependencies'].forEach(function (deps) {
 
-       if (!(deps in data)) {
 
-         return
 
-       }
 
-       if (!data[deps] || typeof data[deps] !== 'object') {
 
-         this.warn('nonObjectDependencies', deps);
 
-         delete data[deps];
 
-         return
 
-       }
 
-       Object.keys(data[deps]).forEach(function (d) {
 
-         var r = data[deps][d];
 
-         if (typeof r !== 'string') {
 
-           this.warn('nonStringDependency', d, JSON.stringify(r));
 
-           delete data[deps][d];
 
-         }
 
-         var hosted = hostedGitInfo.fromUrl(data[deps][d]);
 
-         if (hosted) {
 
-           data[deps][d] = hosted.toString();
 
-         }
 
-       }, this);
 
-     }, this);
 
-   },
 
-   fixModulesField: function (data) {
 
-     if (data.modules) {
 
-       this.warn('deprecatedModules');
 
-       delete data.modules;
 
-     }
 
-   },
 
-   fixKeywordsField: function (data) {
 
-     if (typeof data.keywords === 'string') {
 
-       data.keywords = data.keywords.split(/,\s+/);
 
-     }
 
-     if (data.keywords && !Array.isArray(data.keywords)) {
 
-       delete data.keywords;
 
-       this.warn('nonArrayKeywords');
 
-     } else if (data.keywords) {
 
-       data.keywords = data.keywords.filter(function (kw) {
 
-         if (typeof kw !== 'string' || !kw) {
 
-           this.warn('nonStringKeyword');
 
-           return false
 
-         } else {
 
-           return true
 
-         }
 
-       }, this);
 
-     }
 
-   },
 
-   fixVersionField: function (data, strict) {
 
-     var loose = !strict;
 
-     if (!data.version) {
 
-       data.version = '';
 
-       return true
 
-     }
 
-     if (!isValidSemver(data.version, loose)) {
 
-       throw new Error('Invalid version: "' + data.version + '"')
 
-     }
 
-     data.version = cleanSemver(data.version, loose);
 
-     return true
 
-   },
 
-   fixPeople: function (data) {
 
-     modifyPeople(data, unParsePerson);
 
-     modifyPeople(data, parsePerson);
 
-   },
 
-   fixNameField: function (data, options) {
 
-     if (typeof options === 'boolean') {
 
-       options = { strict: options };
 
-     } else if (typeof options === 'undefined') {
 
-       options = {};
 
-     }
 
-     var strict = options.strict;
 
-     if (!data.name && !strict) {
 
-       data.name = '';
 
-       return
 
-     }
 
-     if (typeof data.name !== 'string') {
 
-       throw new Error('name field must be a string.')
 
-     }
 
-     if (!strict) {
 
-       data.name = data.name.trim();
 
-     }
 
-     ensureValidName(data.name, strict, options.allowLegacyCase);
 
-     if (isBuiltinModule(data.name)) {
 
-       this.warn('conflictingName', data.name);
 
-     }
 
-   },
 
-   fixDescriptionField: function (data) {
 
-     if (data.description && typeof data.description !== 'string') {
 
-       this.warn('nonStringDescription');
 
-       delete data.description;
 
-     }
 
-     if (data.readme && !data.description) {
 
-       data.description = extractDescription(data.readme);
 
-     }
 
-     if (data.description === undefined) {
 
-       delete data.description;
 
-     }
 
-     if (!data.description) {
 
-       this.warn('missingDescription');
 
-     }
 
-   },
 
-   fixReadmeField: function (data) {
 
-     if (!data.readme) {
 
-       this.warn('missingReadme');
 
-       data.readme = 'ERROR: No README data found!';
 
-     }
 
-   },
 
-   fixBugsField: function (data) {
 
-     if (!data.bugs && data.repository && data.repository.url) {
 
-       var hosted = hostedGitInfo.fromUrl(data.repository.url);
 
-       if (hosted && hosted.bugs()) {
 
-         data.bugs = { url: hosted.bugs() };
 
-       }
 
-     } else if (data.bugs) {
 
-       if (typeof data.bugs === 'string') {
 
-         if (isEmail(data.bugs)) {
 
-           data.bugs = { email: data.bugs };
 
-         } else if (url.parse(data.bugs).protocol) {
 
-           data.bugs = { url: data.bugs };
 
-         } else {
 
-           this.warn('nonEmailUrlBugsString');
 
-         }
 
-       } else {
 
-         bugsTypos(data.bugs, this.warn);
 
-         var oldBugs = data.bugs;
 
-         data.bugs = {};
 
-         if (oldBugs.url) {
 
-           if (typeof (oldBugs.url) === 'string' && url.parse(oldBugs.url).protocol) {
 
-             data.bugs.url = oldBugs.url;
 
-           } else {
 
-             this.warn('nonUrlBugsUrlField');
 
-           }
 
-         }
 
-         if (oldBugs.email) {
 
-           if (typeof (oldBugs.email) === 'string' && isEmail(oldBugs.email)) {
 
-             data.bugs.email = oldBugs.email;
 
-           } else {
 
-             this.warn('nonEmailBugsEmailField');
 
-           }
 
-         }
 
-       }
 
-       if (!data.bugs.email && !data.bugs.url) {
 
-         delete data.bugs;
 
-         this.warn('emptyNormalizedBugs');
 
-       }
 
-     }
 
-   },
 
-   fixHomepageField: function (data) {
 
-     if (!data.homepage && data.repository && data.repository.url) {
 
-       var hosted = hostedGitInfo.fromUrl(data.repository.url);
 
-       if (hosted && hosted.docs()) {
 
-         data.homepage = hosted.docs();
 
-       }
 
-     }
 
-     if (!data.homepage) {
 
-       return
 
-     }
 
-     if (typeof data.homepage !== 'string') {
 
-       this.warn('nonUrlHomepage');
 
-       return delete data.homepage
 
-     }
 
-     if (!url.parse(data.homepage).protocol) {
 
-       data.homepage = 'http://' + data.homepage;
 
-     }
 
-   },
 
-   fixLicenseField: function (data) {
 
-     const license = data.license || data.licence;
 
-     if (!license) {
 
-       return this.warn('missingLicense')
 
-     }
 
-     if (
 
-       typeof (license) !== 'string' ||
 
-       license.length < 1 ||
 
-       license.trim() === ''
 
-     ) {
 
-       return this.warn('invalidLicense')
 
-     }
 
-     if (!validateLicense(license).validForNewPackages) {
 
-       return this.warn('invalidLicense')
 
-     }
 
-   },
 
- };
 
- function isValidScopedPackageName (spec) {
 
-   if (spec.charAt(0) !== '@') {
 
-     return false
 
-   }
 
-   var rest = spec.slice(1).split('/');
 
-   if (rest.length !== 2) {
 
-     return false
 
-   }
 
-   return rest[0] && rest[1] &&
 
-     rest[0] === encodeURIComponent(rest[0]) &&
 
-     rest[1] === encodeURIComponent(rest[1])
 
- }
 
- function isCorrectlyEncodedName (spec) {
 
-   return !spec.match(/[/@\s+%:]/) &&
 
-     spec === encodeURIComponent(spec)
 
- }
 
- function ensureValidName (name, strict, allowLegacyCase) {
 
-   if (name.charAt(0) === '.' ||
 
-       !(isValidScopedPackageName(name) || isCorrectlyEncodedName(name)) ||
 
-       (strict && (!allowLegacyCase) && name !== name.toLowerCase()) ||
 
-       name.toLowerCase() === 'node_modules' ||
 
-       name.toLowerCase() === 'favicon.ico') {
 
-     throw new Error('Invalid name: ' + JSON.stringify(name))
 
-   }
 
- }
 
- function modifyPeople (data, fn) {
 
-   if (data.author) {
 
-     data.author = fn(data.author);
 
-   }['maintainers', 'contributors'].forEach(function (set) {
 
-     if (!Array.isArray(data[set])) {
 
-       return
 
-     }
 
-     data[set] = data[set].map(fn);
 
-   });
 
-   return data
 
- }
 
- function unParsePerson (person) {
 
-   if (typeof person === 'string') {
 
-     return person
 
-   }
 
-   var name = person.name || '';
 
-   var u = person.url || person.web;
 
-   var wrappedUrl = u ? (' (' + u + ')') : '';
 
-   var e = person.email || person.mail;
 
-   var wrappedEmail = e ? (' <' + e + '>') : '';
 
-   return name + wrappedEmail + wrappedUrl
 
- }
 
- function parsePerson (person) {
 
-   if (typeof person !== 'string') {
 
-     return person
 
-   }
 
-   var matchedName = person.match(/^([^(<]+)/);
 
-   var matchedUrl = person.match(/\(([^()]+)\)/);
 
-   var matchedEmail = person.match(/<([^<>]+)>/);
 
-   var obj = {};
 
-   if (matchedName && matchedName[0].trim()) {
 
-     obj.name = matchedName[0].trim();
 
-   }
 
-   if (matchedEmail) {
 
-     obj.email = matchedEmail[1];
 
-   }
 
-   if (matchedUrl) {
 
-     obj.url = matchedUrl[1];
 
-   }
 
-   return obj
 
- }
 
- function addOptionalDepsToDeps (data, warn) {
 
-   var o = data.optionalDependencies;
 
-   if (!o) {
 
-     return
 
-   }
 
-   var d = data.dependencies || {};
 
-   Object.keys(o).forEach(function (k) {
 
-     d[k] = o[k];
 
-   });
 
-   data.dependencies = d;
 
- }
 
- function depObjectify (deps, type, warn) {
 
-   if (!deps) {
 
-     return {}
 
-   }
 
-   if (typeof deps === 'string') {
 
-     deps = deps.trim().split(/[\n\r\s\t ,]+/);
 
-   }
 
-   if (!Array.isArray(deps)) {
 
-     return deps
 
-   }
 
-   warn('deprecatedArrayDependencies', type);
 
-   var o = {};
 
-   deps.filter(function (d) {
 
-     return typeof d === 'string'
 
-   }).forEach(function (d) {
 
-     d = d.trim().split(/(:?[@\s><=])/);
 
-     var dn = d.shift();
 
-     var dv = d.join('');
 
-     dv = dv.trim();
 
-     dv = dv.replace(/^@/, '');
 
-     o[dn] = dv;
 
-   });
 
-   return o
 
- }
 
- function objectifyDeps (data, warn) {
 
-   depTypes.forEach(function (type) {
 
-     if (!data[type]) {
 
-       return
 
-     }
 
-     data[type] = depObjectify(data[type], type, warn);
 
-   });
 
- }
 
- function bugsTypos (bugs, warn) {
 
-   if (!bugs) {
 
-     return
 
-   }
 
-   Object.keys(bugs).forEach(function (k) {
 
-     if (typos.bugs[k]) {
 
-       warn('typo', k, typos.bugs[k], 'bugs');
 
-       bugs[typos.bugs[k]] = bugs[k];
 
-       delete bugs[k];
 
-     }
 
-   });
 
- }
 
- var repositories = "'repositories' (plural) Not supported. Please pick one as the 'repository' field";
 
- var missingRepository = "No repository field.";
 
- var brokenGitUrl = "Probably broken git url: %s";
 
- var nonObjectScripts = "scripts must be an object";
 
- var nonStringScript = "script values must be string commands";
 
- var nonArrayFiles = "Invalid 'files' member";
 
- var invalidFilename = "Invalid filename in 'files' list: %s";
 
- var nonArrayBundleDependencies = "Invalid 'bundleDependencies' list. Must be array of package names";
 
- var nonStringBundleDependency = "Invalid bundleDependencies member: %s";
 
- var nonDependencyBundleDependency = "Non-dependency in bundleDependencies: %s";
 
- var nonObjectDependencies = "%s field must be an object";
 
- var nonStringDependency = "Invalid dependency: %s %s";
 
- var deprecatedArrayDependencies = "specifying %s as array is deprecated";
 
- var deprecatedModules = "modules field is deprecated";
 
- var nonArrayKeywords = "keywords should be an array of strings";
 
- var nonStringKeyword = "keywords should be an array of strings";
 
- var conflictingName = "%s is also the name of a node core module.";
 
- var nonStringDescription = "'description' field should be a string";
 
- var missingDescription = "No description";
 
- var missingReadme = "No README data";
 
- var missingLicense = "No license field.";
 
- var nonEmailUrlBugsString = "Bug string field must be url, email, or {email,url}";
 
- var nonUrlBugsUrlField = "bugs.url field must be a string url. Deleted.";
 
- var nonEmailBugsEmailField = "bugs.email field must be a string email. Deleted.";
 
- var emptyNormalizedBugs = "Normalized value of bugs field is an empty object. Deleted.";
 
- var nonUrlHomepage = "homepage field must be a string url. Deleted.";
 
- var invalidLicense = "license should be a valid SPDX license expression";
 
- var typo = "%s should probably be %s.";
 
- const require$$1 = {
 
- 	repositories: repositories,
 
- 	missingRepository: missingRepository,
 
- 	brokenGitUrl: brokenGitUrl,
 
- 	nonObjectScripts: nonObjectScripts,
 
- 	nonStringScript: nonStringScript,
 
- 	nonArrayFiles: nonArrayFiles,
 
- 	invalidFilename: invalidFilename,
 
- 	nonArrayBundleDependencies: nonArrayBundleDependencies,
 
- 	nonStringBundleDependency: nonStringBundleDependency,
 
- 	nonDependencyBundleDependency: nonDependencyBundleDependency,
 
- 	nonObjectDependencies: nonObjectDependencies,
 
- 	nonStringDependency: nonStringDependency,
 
- 	deprecatedArrayDependencies: deprecatedArrayDependencies,
 
- 	deprecatedModules: deprecatedModules,
 
- 	nonArrayKeywords: nonArrayKeywords,
 
- 	nonStringKeyword: nonStringKeyword,
 
- 	conflictingName: conflictingName,
 
- 	nonStringDescription: nonStringDescription,
 
- 	missingDescription: missingDescription,
 
- 	missingReadme: missingReadme,
 
- 	missingLicense: missingLicense,
 
- 	nonEmailUrlBugsString: nonEmailUrlBugsString,
 
- 	nonUrlBugsUrlField: nonUrlBugsUrlField,
 
- 	nonEmailBugsEmailField: nonEmailBugsEmailField,
 
- 	emptyNormalizedBugs: emptyNormalizedBugs,
 
- 	nonUrlHomepage: nonUrlHomepage,
 
- 	invalidLicense: invalidLicense,
 
- 	typo: typo
 
- };
 
- var util = require$$0$1;
 
- var messages = require$$1;
 
- var make_warning = function () {
 
-   var args = Array.prototype.slice.call(arguments, 0);
 
-   var warningName = args.shift();
 
-   if (warningName === 'typo') {
 
-     return makeTypoWarning.apply(null, args)
 
-   } else {
 
-     var msgTemplate = messages[warningName] ? messages[warningName] : warningName + ": '%s'";
 
-     args.unshift(msgTemplate);
 
-     return util.format.apply(null, args)
 
-   }
 
- };
 
- function makeTypoWarning (providedName, probableName, field) {
 
-   if (field) {
 
-     providedName = field + "['" + providedName + "']";
 
-     probableName = field + "['" + probableName + "']";
 
-   }
 
-   return util.format(messages.typo, providedName, probableName)
 
- }
 
- var normalize_1 = normalize;
 
- var fixer = fixer$1;
 
- normalize.fixer = fixer;
 
- var makeWarning = make_warning;
 
- var fieldsToFix = ['name', 'version', 'description', 'repository', 'modules', 'scripts',
 
-   'files', 'bin', 'man', 'bugs', 'keywords', 'readme', 'homepage', 'license'];
 
- var otherThingsToFix = ['dependencies', 'people', 'typos'];
 
- var thingsToFix = fieldsToFix.map(function (fieldName) {
 
-   return ucFirst(fieldName) + 'Field'
 
- });
 
- thingsToFix = thingsToFix.concat(otherThingsToFix);
 
- function normalize (data, warn, strict) {
 
-   if (warn === true) {
 
-     warn = null;
 
-     strict = true;
 
-   }
 
-   if (!strict) {
 
-     strict = false;
 
-   }
 
-   if (!warn || data.private) {
 
-     warn = function (msg) {  };
 
-   }
 
-   if (data.scripts &&
 
-       data.scripts.install === 'node-gyp rebuild' &&
 
-       !data.scripts.preinstall) {
 
-     data.gypfile = true;
 
-   }
 
-   fixer.warn = function () {
 
-     warn(makeWarning.apply(null, arguments));
 
-   };
 
-   thingsToFix.forEach(function (thingName) {
 
-     fixer['fix' + ucFirst(thingName)](data, strict);
 
-   });
 
-   data._id = data.name + '@' + data.version;
 
- }
 
- function ucFirst (string) {
 
-   return string.charAt(0).toUpperCase() + string.slice(1)
 
- }
 
- const normalizePackageData = getDefaultExportFromCjs(normalize_1);
 
- const toPath$1 = urlOrPath => urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;
 
- function findUpSync(name, {
 
- 	cwd = process$2.cwd(),
 
- 	type = 'file',
 
- 	stopAt,
 
- } = {}) {
 
- 	let directory = path$1.resolve(toPath$1(cwd) ?? '');
 
- 	const {root} = path$1.parse(directory);
 
- 	stopAt = path$1.resolve(directory, toPath$1(stopAt) ?? root);
 
- 	while (directory && directory !== stopAt && directory !== root) {
 
- 		const filePath = path$1.isAbsolute(name) ? name : path$1.join(directory, name);
 
- 		try {
 
- 			const stats = fs$1.statSync(filePath, {throwIfNoEntry: false});
 
- 			if ((type === 'file' && stats?.isFile()) || (type === 'directory' && stats?.isDirectory())) {
 
- 				return filePath;
 
- 			}
 
- 		} catch {}
 
- 		directory = path$1.dirname(directory);
 
- 	}
 
- }
 
- var lib$2 = {};
 
- var lib$1 = {};
 
- var jsTokens = {};
 
- Object.defineProperty(jsTokens, "__esModule", {
 
-   value: true
 
- });
 
- jsTokens.default = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g;
 
- jsTokens.matchToToken = function(match) {
 
-   var token = {type: "invalid", value: match[0], closed: undefined};
 
-        if (match[ 1]) token.type = "string" , token.closed = !!(match[3] || match[4]);
 
-   else if (match[ 5]) token.type = "comment";
 
-   else if (match[ 6]) token.type = "comment", token.closed = !!match[7];
 
-   else if (match[ 8]) token.type = "regex";
 
-   else if (match[ 9]) token.type = "number";
 
-   else if (match[10]) token.type = "name";
 
-   else if (match[11]) token.type = "punctuator";
 
-   else if (match[12]) token.type = "whitespace";
 
-   return token
 
- };
 
- var lib = {};
 
- var identifier = {};
 
- Object.defineProperty(identifier, "__esModule", {
 
-   value: true
 
- });
 
- identifier.isIdentifierChar = isIdentifierChar;
 
- identifier.isIdentifierName = isIdentifierName;
 
- identifier.isIdentifierStart = isIdentifierStart;
 
- let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
 
- let nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65";
 
- const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
 
- const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
 
- nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;
 
- const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191];
 
- const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
 
- function isInAstralSet(code, set) {
 
-   let pos = 0x10000;
 
-   for (let i = 0, length = set.length; i < length; i += 2) {
 
-     pos += set[i];
 
-     if (pos > code) return false;
 
-     pos += set[i + 1];
 
-     if (pos >= code) return true;
 
-   }
 
-   return false;
 
- }
 
- function isIdentifierStart(code) {
 
-   if (code < 65) return code === 36;
 
-   if (code <= 90) return true;
 
-   if (code < 97) return code === 95;
 
-   if (code <= 122) return true;
 
-   if (code <= 0xffff) {
 
-     return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code));
 
-   }
 
-   return isInAstralSet(code, astralIdentifierStartCodes);
 
- }
 
- function isIdentifierChar(code) {
 
-   if (code < 48) return code === 36;
 
-   if (code < 58) return true;
 
-   if (code < 65) return false;
 
-   if (code <= 90) return true;
 
-   if (code < 97) return code === 95;
 
-   if (code <= 122) return true;
 
-   if (code <= 0xffff) {
 
-     return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));
 
-   }
 
-   return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes);
 
- }
 
- function isIdentifierName(name) {
 
-   let isFirst = true;
 
-   for (let i = 0; i < name.length; i++) {
 
-     let cp = name.charCodeAt(i);
 
-     if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) {
 
-       const trail = name.charCodeAt(++i);
 
-       if ((trail & 0xfc00) === 0xdc00) {
 
-         cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);
 
-       }
 
-     }
 
-     if (isFirst) {
 
-       isFirst = false;
 
-       if (!isIdentifierStart(cp)) {
 
-         return false;
 
-       }
 
-     } else if (!isIdentifierChar(cp)) {
 
-       return false;
 
-     }
 
-   }
 
-   return !isFirst;
 
- }
 
- var keyword = {};
 
- Object.defineProperty(keyword, "__esModule", {
 
-   value: true
 
- });
 
- keyword.isKeyword = isKeyword;
 
- keyword.isReservedWord = isReservedWord;
 
- keyword.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord;
 
- keyword.isStrictBindReservedWord = isStrictBindReservedWord;
 
- keyword.isStrictReservedWord = isStrictReservedWord;
 
- const reservedWords = {
 
-   keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"],
 
-   strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"],
 
-   strictBind: ["eval", "arguments"]
 
- };
 
- const keywords = new Set(reservedWords.keyword);
 
- const reservedWordsStrictSet = new Set(reservedWords.strict);
 
- const reservedWordsStrictBindSet = new Set(reservedWords.strictBind);
 
- function isReservedWord(word, inModule) {
 
-   return inModule && word === "await" || word === "enum";
 
- }
 
- function isStrictReservedWord(word, inModule) {
 
-   return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);
 
- }
 
- function isStrictBindOnlyReservedWord(word) {
 
-   return reservedWordsStrictBindSet.has(word);
 
- }
 
- function isStrictBindReservedWord(word, inModule) {
 
-   return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word);
 
- }
 
- function isKeyword(word) {
 
-   return keywords.has(word);
 
- }
 
- (function (exports) {
 
- 	Object.defineProperty(exports, "__esModule", {
 
- 	  value: true
 
- 	});
 
- 	Object.defineProperty(exports, "isIdentifierChar", {
 
- 	  enumerable: true,
 
- 	  get: function () {
 
- 	    return _identifier.isIdentifierChar;
 
- 	  }
 
- 	});
 
- 	Object.defineProperty(exports, "isIdentifierName", {
 
- 	  enumerable: true,
 
- 	  get: function () {
 
- 	    return _identifier.isIdentifierName;
 
- 	  }
 
- 	});
 
- 	Object.defineProperty(exports, "isIdentifierStart", {
 
- 	  enumerable: true,
 
- 	  get: function () {
 
- 	    return _identifier.isIdentifierStart;
 
- 	  }
 
- 	});
 
- 	Object.defineProperty(exports, "isKeyword", {
 
- 	  enumerable: true,
 
- 	  get: function () {
 
- 	    return _keyword.isKeyword;
 
- 	  }
 
- 	});
 
- 	Object.defineProperty(exports, "isReservedWord", {
 
- 	  enumerable: true,
 
- 	  get: function () {
 
- 	    return _keyword.isReservedWord;
 
- 	  }
 
- 	});
 
- 	Object.defineProperty(exports, "isStrictBindOnlyReservedWord", {
 
- 	  enumerable: true,
 
- 	  get: function () {
 
- 	    return _keyword.isStrictBindOnlyReservedWord;
 
- 	  }
 
- 	});
 
- 	Object.defineProperty(exports, "isStrictBindReservedWord", {
 
- 	  enumerable: true,
 
- 	  get: function () {
 
- 	    return _keyword.isStrictBindReservedWord;
 
- 	  }
 
- 	});
 
- 	Object.defineProperty(exports, "isStrictReservedWord", {
 
- 	  enumerable: true,
 
- 	  get: function () {
 
- 	    return _keyword.isStrictReservedWord;
 
- 	  }
 
- 	});
 
- 	var _identifier = identifier;
 
- 	var _keyword = keyword;
 
- } (lib));
 
- var chalk$1 = {exports: {}};
 
- var matchOperatorsRe$1 = /[|\\{}()[\]^$+*?.]/g;
 
- var escapeStringRegexp$1 = function (str) {
 
- 	if (typeof str !== 'string') {
 
- 		throw new TypeError('Expected a string');
 
- 	}
 
- 	return str.replace(matchOperatorsRe$1, '\\$&');
 
- };
 
- var ansiStyles$1 = {exports: {}};
 
- var conversions$2 = {exports: {}};
 
- var colorName = {
	"aliceblue": [240, 248, 255],
	"antiquewhite": [250, 235, 215],
	"aqua": [0, 255, 255],
	"aquamarine": [127, 255, 212],
	"azure": [240, 255, 255],
	"beige": [245, 245, 220],
	"bisque": [255, 228, 196],
	"black": [0, 0, 0],
	"blanchedalmond": [255, 235, 205],
	"blue": [0, 0, 255],
	"blueviolet": [138, 43, 226],
	"brown": [165, 42, 42],
	"burlywood": [222, 184, 135],
	"cadetblue": [95, 158, 160],
	"chartreuse": [127, 255, 0],
	"chocolate": [210, 105, 30],
	"coral": [255, 127, 80],
	"cornflowerblue": [100, 149, 237],
	"cornsilk": [255, 248, 220],
	"crimson": [220, 20, 60],
	"cyan": [0, 255, 255],
	"darkblue": [0, 0, 139],
	"darkcyan": [0, 139, 139],
	"darkgoldenrod": [184, 134, 11],
	"darkgray": [169, 169, 169],
	"darkgreen": [0, 100, 0],
	"darkgrey": [169, 169, 169],
	"darkkhaki": [189, 183, 107],
	"darkmagenta": [139, 0, 139],
	"darkolivegreen": [85, 107, 47],
	"darkorange": [255, 140, 0],
	"darkorchid": [153, 50, 204],
	"darkred": [139, 0, 0],
	"darksalmon": [233, 150, 122],
	"darkseagreen": [143, 188, 143],
	"darkslateblue": [72, 61, 139],
	"darkslategray": [47, 79, 79],
	"darkslategrey": [47, 79, 79],
	"darkturquoise": [0, 206, 209],
	"darkviolet": [148, 0, 211],
	"deeppink": [255, 20, 147],
	"deepskyblue": [0, 191, 255],
	"dimgray": [105, 105, 105],
	"dimgrey": [105, 105, 105],
	"dodgerblue": [30, 144, 255],
	"firebrick": [178, 34, 34],
	"floralwhite": [255, 250, 240],
	"forestgreen": [34, 139, 34],
	"fuchsia": [255, 0, 255],
	"gainsboro": [220, 220, 220],
	"ghostwhite": [248, 248, 255],
	"gold": [255, 215, 0],
	"goldenrod": [218, 165, 32],
	"gray": [128, 128, 128],
	"green": [0, 128, 0],
	"greenyellow": [173, 255, 47],
	"grey": [128, 128, 128],
	"honeydew": [240, 255, 240],
	"hotpink": [255, 105, 180],
	"indianred": [205, 92, 92],
	"indigo": [75, 0, 130],
	"ivory": [255, 255, 240],
	"khaki": [240, 230, 140],
	"lavender": [230, 230, 250],
	"lavenderblush": [255, 240, 245],
	"lawngreen": [124, 252, 0],
	"lemonchiffon": [255, 250, 205],
	"lightblue": [173, 216, 230],
	"lightcoral": [240, 128, 128],
	"lightcyan": [224, 255, 255],
	"lightgoldenrodyellow": [250, 250, 210],
	"lightgray": [211, 211, 211],
	"lightgreen": [144, 238, 144],
	"lightgrey": [211, 211, 211],
	"lightpink": [255, 182, 193],
	"lightsalmon": [255, 160, 122],
	"lightseagreen": [32, 178, 170],
	"lightskyblue": [135, 206, 250],
	"lightslategray": [119, 136, 153],
	"lightslategrey": [119, 136, 153],
	"lightsteelblue": [176, 196, 222],
	"lightyellow": [255, 255, 224],
	"lime": [0, 255, 0],
	"limegreen": [50, 205, 50],
	"linen": [250, 240, 230],
	"magenta": [255, 0, 255],
	"maroon": [128, 0, 0],
	"mediumaquamarine": [102, 205, 170],
	"mediumblue": [0, 0, 205],
	"mediumorchid": [186, 85, 211],
	"mediumpurple": [147, 112, 219],
	"mediumseagreen": [60, 179, 113],
	"mediumslateblue": [123, 104, 238],
	"mediumspringgreen": [0, 250, 154],
	"mediumturquoise": [72, 209, 204],
	"mediumvioletred": [199, 21, 133],
	"midnightblue": [25, 25, 112],
	"mintcream": [245, 255, 250],
	"mistyrose": [255, 228, 225],
	"moccasin": [255, 228, 181],
	"navajowhite": [255, 222, 173],
	"navy": [0, 0, 128],
	"oldlace": [253, 245, 230],
	"olive": [128, 128, 0],
	"olivedrab": [107, 142, 35],
	"orange": [255, 165, 0],
	"orangered": [255, 69, 0],
	"orchid": [218, 112, 214],
	"palegoldenrod": [238, 232, 170],
	"palegreen": [152, 251, 152],
	"paleturquoise": [175, 238, 238],
	"palevioletred": [219, 112, 147],
	"papayawhip": [255, 239, 213],
	"peachpuff": [255, 218, 185],
	"peru": [205, 133, 63],
	"pink": [255, 192, 203],
	"plum": [221, 160, 221],
	"powderblue": [176, 224, 230],
	"purple": [128, 0, 128],
	"rebeccapurple": [102, 51, 153],
	"red": [255, 0, 0],
	"rosybrown": [188, 143, 143],
	"royalblue": [65, 105, 225],
	"saddlebrown": [139, 69, 19],
	"salmon": [250, 128, 114],
	"sandybrown": [244, 164, 96],
	"seagreen": [46, 139, 87],
	"seashell": [255, 245, 238],
	"sienna": [160, 82, 45],
	"silver": [192, 192, 192],
	"skyblue": [135, 206, 235],
	"slateblue": [106, 90, 205],
	"slategray": [112, 128, 144],
	"slategrey": [112, 128, 144],
	"snow": [255, 250, 250],
	"springgreen": [0, 255, 127],
	"steelblue": [70, 130, 180],
	"tan": [210, 180, 140],
	"teal": [0, 128, 128],
	"thistle": [216, 191, 216],
	"tomato": [255, 99, 71],
	"turquoise": [64, 224, 208],
	"violet": [238, 130, 238],
	"wheat": [245, 222, 179],
	"white": [255, 255, 255],
	"whitesmoke": [245, 245, 245],
	"yellow": [255, 255, 0],
	"yellowgreen": [154, 205, 50]
};
 
- var cssKeywords = colorName;
 
- var reverseKeywords = {};
 
- for (var key in cssKeywords) {
 
- 	if (cssKeywords.hasOwnProperty(key)) {
 
- 		reverseKeywords[cssKeywords[key]] = key;
 
- 	}
 
- }
 
- var convert$1 = conversions$2.exports = {
 
- 	rgb: {channels: 3, labels: 'rgb'},
 
- 	hsl: {channels: 3, labels: 'hsl'},
 
- 	hsv: {channels: 3, labels: 'hsv'},
 
- 	hwb: {channels: 3, labels: 'hwb'},
 
- 	cmyk: {channels: 4, labels: 'cmyk'},
 
- 	xyz: {channels: 3, labels: 'xyz'},
 
- 	lab: {channels: 3, labels: 'lab'},
 
- 	lch: {channels: 3, labels: 'lch'},
 
- 	hex: {channels: 1, labels: ['hex']},
 
- 	keyword: {channels: 1, labels: ['keyword']},
 
- 	ansi16: {channels: 1, labels: ['ansi16']},
 
- 	ansi256: {channels: 1, labels: ['ansi256']},
 
- 	hcg: {channels: 3, labels: ['h', 'c', 'g']},
 
- 	apple: {channels: 3, labels: ['r16', 'g16', 'b16']},
 
- 	gray: {channels: 1, labels: ['gray']}
 
- };
 
- for (var model in convert$1) {
 
- 	if (convert$1.hasOwnProperty(model)) {
 
- 		if (!('channels' in convert$1[model])) {
 
- 			throw new Error('missing channels property: ' + model);
 
- 		}
 
- 		if (!('labels' in convert$1[model])) {
 
- 			throw new Error('missing channel labels property: ' + model);
 
- 		}
 
- 		if (convert$1[model].labels.length !== convert$1[model].channels) {
 
- 			throw new Error('channel and label counts mismatch: ' + model);
 
- 		}
 
- 		var channels = convert$1[model].channels;
 
- 		var labels = convert$1[model].labels;
 
- 		delete convert$1[model].channels;
 
- 		delete convert$1[model].labels;
 
- 		Object.defineProperty(convert$1[model], 'channels', {value: channels});
 
- 		Object.defineProperty(convert$1[model], 'labels', {value: labels});
 
- 	}
 
- }
 
- convert$1.rgb.hsl = function (rgb) {
 
- 	var r = rgb[0] / 255;
 
- 	var g = rgb[1] / 255;
 
- 	var b = rgb[2] / 255;
 
- 	var min = Math.min(r, g, b);
 
- 	var max = Math.max(r, g, b);
 
- 	var delta = max - min;
 
- 	var h;
 
- 	var s;
 
- 	var l;
 
- 	if (max === min) {
 
- 		h = 0;
 
- 	} else if (r === max) {
 
- 		h = (g - b) / delta;
 
- 	} else if (g === max) {
 
- 		h = 2 + (b - r) / delta;
 
- 	} else if (b === max) {
 
- 		h = 4 + (r - g) / delta;
 
- 	}
 
- 	h = Math.min(h * 60, 360);
 
- 	if (h < 0) {
 
- 		h += 360;
 
- 	}
 
- 	l = (min + max) / 2;
 
- 	if (max === min) {
 
- 		s = 0;
 
- 	} else if (l <= 0.5) {
 
- 		s = delta / (max + min);
 
- 	} else {
 
- 		s = delta / (2 - max - min);
 
- 	}
 
- 	return [h, s * 100, l * 100];
 
- };
 
- convert$1.rgb.hsv = function (rgb) {
 
- 	var rdif;
 
- 	var gdif;
 
- 	var bdif;
 
- 	var h;
 
- 	var s;
 
- 	var r = rgb[0] / 255;
 
- 	var g = rgb[1] / 255;
 
- 	var b = rgb[2] / 255;
 
- 	var v = Math.max(r, g, b);
 
- 	var diff = v - Math.min(r, g, b);
 
- 	var diffc = function (c) {
 
- 		return (v - c) / 6 / diff + 1 / 2;
 
- 	};
 
- 	if (diff === 0) {
 
- 		h = s = 0;
 
- 	} else {
 
- 		s = diff / v;
 
- 		rdif = diffc(r);
 
- 		gdif = diffc(g);
 
- 		bdif = diffc(b);
 
- 		if (r === v) {
 
- 			h = bdif - gdif;
 
- 		} else if (g === v) {
 
- 			h = (1 / 3) + rdif - bdif;
 
- 		} else if (b === v) {
 
- 			h = (2 / 3) + gdif - rdif;
 
- 		}
 
- 		if (h < 0) {
 
- 			h += 1;
 
- 		} else if (h > 1) {
 
- 			h -= 1;
 
- 		}
 
- 	}
 
- 	return [
 
- 		h * 360,
 
- 		s * 100,
 
- 		v * 100
 
- 	];
 
- };
 
- convert$1.rgb.hwb = function (rgb) {
 
- 	var r = rgb[0];
 
- 	var g = rgb[1];
 
- 	var b = rgb[2];
 
- 	var h = convert$1.rgb.hsl(rgb)[0];
 
- 	var w = 1 / 255 * Math.min(r, Math.min(g, b));
 
- 	b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));
 
- 	return [h, w * 100, b * 100];
 
- };
 
- convert$1.rgb.cmyk = function (rgb) {
 
- 	var r = rgb[0] / 255;
 
- 	var g = rgb[1] / 255;
 
- 	var b = rgb[2] / 255;
 
- 	var c;
 
- 	var m;
 
- 	var y;
 
- 	var k;
 
- 	k = Math.min(1 - r, 1 - g, 1 - b);
 
- 	c = (1 - r - k) / (1 - k) || 0;
 
- 	m = (1 - g - k) / (1 - k) || 0;
 
- 	y = (1 - b - k) / (1 - k) || 0;
 
- 	return [c * 100, m * 100, y * 100, k * 100];
 
- };
 
- function comparativeDistance(x, y) {
 
- 	return (
 
- 		Math.pow(x[0] - y[0], 2) +
 
- 		Math.pow(x[1] - y[1], 2) +
 
- 		Math.pow(x[2] - y[2], 2)
 
- 	);
 
- }
 
- convert$1.rgb.keyword = function (rgb) {
 
- 	var reversed = reverseKeywords[rgb];
 
- 	if (reversed) {
 
- 		return reversed;
 
- 	}
 
- 	var currentClosestDistance = Infinity;
 
- 	var currentClosestKeyword;
 
- 	for (var keyword in cssKeywords) {
 
- 		if (cssKeywords.hasOwnProperty(keyword)) {
 
- 			var value = cssKeywords[keyword];
 
- 			var distance = comparativeDistance(rgb, value);
 
- 			if (distance < currentClosestDistance) {
 
- 				currentClosestDistance = distance;
 
- 				currentClosestKeyword = keyword;
 
- 			}
 
- 		}
 
- 	}
 
- 	return currentClosestKeyword;
 
- };
 
- convert$1.keyword.rgb = function (keyword) {
 
- 	return cssKeywords[keyword];
 
- };
 
- convert$1.rgb.xyz = function (rgb) {
 
- 	var r = rgb[0] / 255;
 
- 	var g = rgb[1] / 255;
 
- 	var b = rgb[2] / 255;
 
- 	r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);
 
- 	g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);
 
- 	b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);
 
- 	var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);
 
- 	var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);
 
- 	var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);
 
- 	return [x * 100, y * 100, z * 100];
 
- };
 
- convert$1.rgb.lab = function (rgb) {
 
- 	var xyz = convert$1.rgb.xyz(rgb);
 
- 	var x = xyz[0];
 
- 	var y = xyz[1];
 
- 	var z = xyz[2];
 
- 	var l;
 
- 	var a;
 
- 	var b;
 
- 	x /= 95.047;
 
- 	y /= 100;
 
- 	z /= 108.883;
 
- 	x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);
 
- 	y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);
 
- 	z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);
 
- 	l = (116 * y) - 16;
 
- 	a = 500 * (x - y);
 
- 	b = 200 * (y - z);
 
- 	return [l, a, b];
 
- };
 
- convert$1.hsl.rgb = function (hsl) {
 
- 	var h = hsl[0] / 360;
 
- 	var s = hsl[1] / 100;
 
- 	var l = hsl[2] / 100;
 
- 	var t1;
 
- 	var t2;
 
- 	var t3;
 
- 	var rgb;
 
- 	var val;
 
- 	if (s === 0) {
 
- 		val = l * 255;
 
- 		return [val, val, val];
 
- 	}
 
- 	if (l < 0.5) {
 
- 		t2 = l * (1 + s);
 
- 	} else {
 
- 		t2 = l + s - l * s;
 
- 	}
 
- 	t1 = 2 * l - t2;
 
- 	rgb = [0, 0, 0];
 
- 	for (var i = 0; i < 3; i++) {
 
- 		t3 = h + 1 / 3 * -(i - 1);
 
- 		if (t3 < 0) {
 
- 			t3++;
 
- 		}
 
- 		if (t3 > 1) {
 
- 			t3--;
 
- 		}
 
- 		if (6 * t3 < 1) {
 
- 			val = t1 + (t2 - t1) * 6 * t3;
 
- 		} else if (2 * t3 < 1) {
 
- 			val = t2;
 
- 		} else if (3 * t3 < 2) {
 
- 			val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
 
- 		} else {
 
- 			val = t1;
 
- 		}
 
- 		rgb[i] = val * 255;
 
- 	}
 
- 	return rgb;
 
- };
 
- convert$1.hsl.hsv = function (hsl) {
 
- 	var h = hsl[0];
 
- 	var s = hsl[1] / 100;
 
- 	var l = hsl[2] / 100;
 
- 	var smin = s;
 
- 	var lmin = Math.max(l, 0.01);
 
- 	var sv;
 
- 	var v;
 
- 	l *= 2;
 
- 	s *= (l <= 1) ? l : 2 - l;
 
- 	smin *= lmin <= 1 ? lmin : 2 - lmin;
 
- 	v = (l + s) / 2;
 
- 	sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);
 
- 	return [h, sv * 100, v * 100];
 
- };
 
- convert$1.hsv.rgb = function (hsv) {
 
- 	var h = hsv[0] / 60;
 
- 	var s = hsv[1] / 100;
 
- 	var v = hsv[2] / 100;
 
- 	var hi = Math.floor(h) % 6;
 
- 	var f = h - Math.floor(h);
 
- 	var p = 255 * v * (1 - s);
 
- 	var q = 255 * v * (1 - (s * f));
 
- 	var t = 255 * v * (1 - (s * (1 - f)));
 
- 	v *= 255;
 
- 	switch (hi) {
 
- 		case 0:
 
- 			return [v, t, p];
 
- 		case 1:
 
- 			return [q, v, p];
 
- 		case 2:
 
- 			return [p, v, t];
 
- 		case 3:
 
- 			return [p, q, v];
 
- 		case 4:
 
- 			return [t, p, v];
 
- 		case 5:
 
- 			return [v, p, q];
 
- 	}
 
- };
 
- convert$1.hsv.hsl = function (hsv) {
 
- 	var h = hsv[0];
 
- 	var s = hsv[1] / 100;
 
- 	var v = hsv[2] / 100;
 
- 	var vmin = Math.max(v, 0.01);
 
- 	var lmin;
 
- 	var sl;
 
- 	var l;
 
- 	l = (2 - s) * v;
 
- 	lmin = (2 - s) * vmin;
 
- 	sl = s * vmin;
 
- 	sl /= (lmin <= 1) ? lmin : 2 - lmin;
 
- 	sl = sl || 0;
 
- 	l /= 2;
 
- 	return [h, sl * 100, l * 100];
 
- };
 
- convert$1.hwb.rgb = function (hwb) {
 
- 	var h = hwb[0] / 360;
 
- 	var wh = hwb[1] / 100;
 
- 	var bl = hwb[2] / 100;
 
- 	var ratio = wh + bl;
 
- 	var i;
 
- 	var v;
 
- 	var f;
 
- 	var n;
 
- 	if (ratio > 1) {
 
- 		wh /= ratio;
 
- 		bl /= ratio;
 
- 	}
 
- 	i = Math.floor(6 * h);
 
- 	v = 1 - bl;
 
- 	f = 6 * h - i;
 
- 	if ((i & 0x01) !== 0) {
 
- 		f = 1 - f;
 
- 	}
 
- 	n = wh + f * (v - wh); 
 
- 	var r;
 
- 	var g;
 
- 	var b;
 
- 	switch (i) {
 
- 		default:
 
- 		case 6:
 
- 		case 0: r = v; g = n; b = wh; break;
 
- 		case 1: r = n; g = v; b = wh; break;
 
- 		case 2: r = wh; g = v; b = n; break;
 
- 		case 3: r = wh; g = n; b = v; break;
 
- 		case 4: r = n; g = wh; b = v; break;
 
- 		case 5: r = v; g = wh; b = n; break;
 
- 	}
 
- 	return [r * 255, g * 255, b * 255];
 
- };
 
- convert$1.cmyk.rgb = function (cmyk) {
 
- 	var c = cmyk[0] / 100;
 
- 	var m = cmyk[1] / 100;
 
- 	var y = cmyk[2] / 100;
 
- 	var k = cmyk[3] / 100;
 
- 	var r;
 
- 	var g;
 
- 	var b;
 
- 	r = 1 - Math.min(1, c * (1 - k) + k);
 
- 	g = 1 - Math.min(1, m * (1 - k) + k);
 
- 	b = 1 - Math.min(1, y * (1 - k) + k);
 
- 	return [r * 255, g * 255, b * 255];
 
- };
 
- convert$1.xyz.rgb = function (xyz) {
 
- 	var x = xyz[0] / 100;
 
- 	var y = xyz[1] / 100;
 
- 	var z = xyz[2] / 100;
 
- 	var r;
 
- 	var g;
 
- 	var b;
 
- 	r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);
 
- 	g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);
 
- 	b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);
 
- 	r = r > 0.0031308
 
- 		? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)
 
- 		: r * 12.92;
 
- 	g = g > 0.0031308
 
- 		? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)
 
- 		: g * 12.92;
 
- 	b = b > 0.0031308
 
- 		? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)
 
- 		: b * 12.92;
 
- 	r = Math.min(Math.max(0, r), 1);
 
- 	g = Math.min(Math.max(0, g), 1);
 
- 	b = Math.min(Math.max(0, b), 1);
 
- 	return [r * 255, g * 255, b * 255];
 
- };
 
- convert$1.xyz.lab = function (xyz) {
 
- 	var x = xyz[0];
 
- 	var y = xyz[1];
 
- 	var z = xyz[2];
 
- 	var l;
 
- 	var a;
 
- 	var b;
 
- 	x /= 95.047;
 
- 	y /= 100;
 
- 	z /= 108.883;
 
- 	x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);
 
- 	y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);
 
- 	z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);
 
- 	l = (116 * y) - 16;
 
- 	a = 500 * (x - y);
 
- 	b = 200 * (y - z);
 
- 	return [l, a, b];
 
- };
 
- convert$1.lab.xyz = function (lab) {
 
- 	var l = lab[0];
 
- 	var a = lab[1];
 
- 	var b = lab[2];
 
- 	var x;
 
- 	var y;
 
- 	var z;
 
- 	y = (l + 16) / 116;
 
- 	x = a / 500 + y;
 
- 	z = y - b / 200;
 
- 	var y2 = Math.pow(y, 3);
 
- 	var x2 = Math.pow(x, 3);
 
- 	var z2 = Math.pow(z, 3);
 
- 	y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;
 
- 	x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;
 
- 	z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;
 
- 	x *= 95.047;
 
- 	y *= 100;
 
- 	z *= 108.883;
 
- 	return [x, y, z];
 
- };
 
- convert$1.lab.lch = function (lab) {
 
- 	var l = lab[0];
 
- 	var a = lab[1];
 
- 	var b = lab[2];
 
- 	var hr;
 
- 	var h;
 
- 	var c;
 
- 	hr = Math.atan2(b, a);
 
- 	h = hr * 360 / 2 / Math.PI;
 
- 	if (h < 0) {
 
- 		h += 360;
 
- 	}
 
- 	c = Math.sqrt(a * a + b * b);
 
- 	return [l, c, h];
 
- };
 
- convert$1.lch.lab = function (lch) {
 
- 	var l = lch[0];
 
- 	var c = lch[1];
 
- 	var h = lch[2];
 
- 	var a;
 
- 	var b;
 
- 	var hr;
 
- 	hr = h / 360 * 2 * Math.PI;
 
- 	a = c * Math.cos(hr);
 
- 	b = c * Math.sin(hr);
 
- 	return [l, a, b];
 
- };
 
- convert$1.rgb.ansi16 = function (args) {
 
- 	var r = args[0];
 
- 	var g = args[1];
 
- 	var b = args[2];
 
- 	var value = 1 in arguments ? arguments[1] : convert$1.rgb.hsv(args)[2]; 
 
- 	value = Math.round(value / 50);
 
- 	if (value === 0) {
 
- 		return 30;
 
- 	}
 
- 	var ansi = 30
 
- 		+ ((Math.round(b / 255) << 2)
 
- 		| (Math.round(g / 255) << 1)
 
- 		| Math.round(r / 255));
 
- 	if (value === 2) {
 
- 		ansi += 60;
 
- 	}
 
- 	return ansi;
 
- };
 
- convert$1.hsv.ansi16 = function (args) {
 
- 	return convert$1.rgb.ansi16(convert$1.hsv.rgb(args), args[2]);
 
- };
 
- convert$1.rgb.ansi256 = function (args) {
 
- 	var r = args[0];
 
- 	var g = args[1];
 
- 	var b = args[2];
 
- 	if (r === g && g === b) {
 
- 		if (r < 8) {
 
- 			return 16;
 
- 		}
 
- 		if (r > 248) {
 
- 			return 231;
 
- 		}
 
- 		return Math.round(((r - 8) / 247) * 24) + 232;
 
- 	}
 
- 	var ansi = 16
 
- 		+ (36 * Math.round(r / 255 * 5))
 
- 		+ (6 * Math.round(g / 255 * 5))
 
- 		+ Math.round(b / 255 * 5);
 
- 	return ansi;
 
- };
 
- convert$1.ansi16.rgb = function (args) {
 
- 	var color = args % 10;
 
- 	if (color === 0 || color === 7) {
 
- 		if (args > 50) {
 
- 			color += 3.5;
 
- 		}
 
- 		color = color / 10.5 * 255;
 
- 		return [color, color, color];
 
- 	}
 
- 	var mult = (~~(args > 50) + 1) * 0.5;
 
- 	var r = ((color & 1) * mult) * 255;
 
- 	var g = (((color >> 1) & 1) * mult) * 255;
 
- 	var b = (((color >> 2) & 1) * mult) * 255;
 
- 	return [r, g, b];
 
- };
 
- convert$1.ansi256.rgb = function (args) {
 
- 	if (args >= 232) {
 
- 		var c = (args - 232) * 10 + 8;
 
- 		return [c, c, c];
 
- 	}
 
- 	args -= 16;
 
- 	var rem;
 
- 	var r = Math.floor(args / 36) / 5 * 255;
 
- 	var g = Math.floor((rem = args % 36) / 6) / 5 * 255;
 
- 	var b = (rem % 6) / 5 * 255;
 
- 	return [r, g, b];
 
- };
 
- convert$1.rgb.hex = function (args) {
 
- 	var integer = ((Math.round(args[0]) & 0xFF) << 16)
 
- 		+ ((Math.round(args[1]) & 0xFF) << 8)
 
- 		+ (Math.round(args[2]) & 0xFF);
 
- 	var string = integer.toString(16).toUpperCase();
 
- 	return '000000'.substring(string.length) + string;
 
- };
 
- convert$1.hex.rgb = function (args) {
 
- 	var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);
 
- 	if (!match) {
 
- 		return [0, 0, 0];
 
- 	}
 
- 	var colorString = match[0];
 
- 	if (match[0].length === 3) {
 
- 		colorString = colorString.split('').map(function (char) {
 
- 			return char + char;
 
- 		}).join('');
 
- 	}
 
- 	var integer = parseInt(colorString, 16);
 
- 	var r = (integer >> 16) & 0xFF;
 
- 	var g = (integer >> 8) & 0xFF;
 
- 	var b = integer & 0xFF;
 
- 	return [r, g, b];
 
- };
 
- convert$1.rgb.hcg = function (rgb) {
 
- 	var r = rgb[0] / 255;
 
- 	var g = rgb[1] / 255;
 
- 	var b = rgb[2] / 255;
 
- 	var max = Math.max(Math.max(r, g), b);
 
- 	var min = Math.min(Math.min(r, g), b);
 
- 	var chroma = (max - min);
 
- 	var grayscale;
 
- 	var hue;
 
- 	if (chroma < 1) {
 
- 		grayscale = min / (1 - chroma);
 
- 	} else {
 
- 		grayscale = 0;
 
- 	}
 
- 	if (chroma <= 0) {
 
- 		hue = 0;
 
- 	} else
 
- 	if (max === r) {
 
- 		hue = ((g - b) / chroma) % 6;
 
- 	} else
 
- 	if (max === g) {
 
- 		hue = 2 + (b - r) / chroma;
 
- 	} else {
 
- 		hue = 4 + (r - g) / chroma + 4;
 
- 	}
 
- 	hue /= 6;
 
- 	hue %= 1;
 
- 	return [hue * 360, chroma * 100, grayscale * 100];
 
- };
 
- convert$1.hsl.hcg = function (hsl) {
 
- 	var s = hsl[1] / 100;
 
- 	var l = hsl[2] / 100;
 
- 	var c = 1;
 
- 	var f = 0;
 
- 	if (l < 0.5) {
 
- 		c = 2.0 * s * l;
 
- 	} else {
 
- 		c = 2.0 * s * (1.0 - l);
 
- 	}
 
- 	if (c < 1.0) {
 
- 		f = (l - 0.5 * c) / (1.0 - c);
 
- 	}
 
- 	return [hsl[0], c * 100, f * 100];
 
- };
 
- convert$1.hsv.hcg = function (hsv) {
 
- 	var s = hsv[1] / 100;
 
- 	var v = hsv[2] / 100;
 
- 	var c = s * v;
 
- 	var f = 0;
 
- 	if (c < 1.0) {
 
- 		f = (v - c) / (1 - c);
 
- 	}
 
- 	return [hsv[0], c * 100, f * 100];
 
- };
 
- convert$1.hcg.rgb = function (hcg) {
 
- 	var h = hcg[0] / 360;
 
- 	var c = hcg[1] / 100;
 
- 	var g = hcg[2] / 100;
 
- 	if (c === 0.0) {
 
- 		return [g * 255, g * 255, g * 255];
 
- 	}
 
- 	var pure = [0, 0, 0];
 
- 	var hi = (h % 1) * 6;
 
- 	var v = hi % 1;
 
- 	var w = 1 - v;
 
- 	var mg = 0;
 
- 	switch (Math.floor(hi)) {
 
- 		case 0:
 
- 			pure[0] = 1; pure[1] = v; pure[2] = 0; break;
 
- 		case 1:
 
- 			pure[0] = w; pure[1] = 1; pure[2] = 0; break;
 
- 		case 2:
 
- 			pure[0] = 0; pure[1] = 1; pure[2] = v; break;
 
- 		case 3:
 
- 			pure[0] = 0; pure[1] = w; pure[2] = 1; break;
 
- 		case 4:
 
- 			pure[0] = v; pure[1] = 0; pure[2] = 1; break;
 
- 		default:
 
- 			pure[0] = 1; pure[1] = 0; pure[2] = w;
 
- 	}
 
- 	mg = (1.0 - c) * g;
 
- 	return [
 
- 		(c * pure[0] + mg) * 255,
 
- 		(c * pure[1] + mg) * 255,
 
- 		(c * pure[2] + mg) * 255
 
- 	];
 
- };
 
- convert$1.hcg.hsv = function (hcg) {
 
- 	var c = hcg[1] / 100;
 
- 	var g = hcg[2] / 100;
 
- 	var v = c + g * (1.0 - c);
 
- 	var f = 0;
 
- 	if (v > 0.0) {
 
- 		f = c / v;
 
- 	}
 
- 	return [hcg[0], f * 100, v * 100];
 
- };
 
- convert$1.hcg.hsl = function (hcg) {
 
- 	var c = hcg[1] / 100;
 
- 	var g = hcg[2] / 100;
 
- 	var l = g * (1.0 - c) + 0.5 * c;
 
- 	var s = 0;
 
- 	if (l > 0.0 && l < 0.5) {
 
- 		s = c / (2 * l);
 
- 	} else
 
- 	if (l >= 0.5 && l < 1.0) {
 
- 		s = c / (2 * (1 - l));
 
- 	}
 
- 	return [hcg[0], s * 100, l * 100];
 
- };
 
- convert$1.hcg.hwb = function (hcg) {
 
- 	var c = hcg[1] / 100;
 
- 	var g = hcg[2] / 100;
 
- 	var v = c + g * (1.0 - c);
 
- 	return [hcg[0], (v - c) * 100, (1 - v) * 100];
 
- };
 
- convert$1.hwb.hcg = function (hwb) {
 
- 	var w = hwb[1] / 100;
 
- 	var b = hwb[2] / 100;
 
- 	var v = 1 - b;
 
- 	var c = v - w;
 
- 	var g = 0;
 
- 	if (c < 1) {
 
- 		g = (v - c) / (1 - c);
 
- 	}
 
- 	return [hwb[0], c * 100, g * 100];
 
- };
 
- convert$1.apple.rgb = function (apple) {
 
- 	return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];
 
- };
 
- convert$1.rgb.apple = function (rgb) {
 
- 	return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];
 
- };
 
- convert$1.gray.rgb = function (args) {
 
- 	return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];
 
- };
 
- convert$1.gray.hsl = convert$1.gray.hsv = function (args) {
 
- 	return [0, 0, args[0]];
 
- };
 
- convert$1.gray.hwb = function (gray) {
 
- 	return [0, 100, gray[0]];
 
- };
 
- convert$1.gray.cmyk = function (gray) {
 
- 	return [0, 0, 0, gray[0]];
 
- };
 
- convert$1.gray.lab = function (gray) {
 
- 	return [gray[0], 0, 0];
 
- };
 
- convert$1.gray.hex = function (gray) {
 
- 	var val = Math.round(gray[0] / 100 * 255) & 0xFF;
 
- 	var integer = (val << 16) + (val << 8) + val;
 
- 	var string = integer.toString(16).toUpperCase();
 
- 	return '000000'.substring(string.length) + string;
 
- };
 
- convert$1.rgb.gray = function (rgb) {
 
- 	var val = (rgb[0] + rgb[1] + rgb[2]) / 3;
 
- 	return [val / 255 * 100];
 
- };
 
- var conversionsExports = conversions$2.exports;
 
- var conversions$1 = conversionsExports;
 
- function buildGraph() {
 
- 	var graph = {};
 
- 	var models = Object.keys(conversions$1);
 
- 	for (var len = models.length, i = 0; i < len; i++) {
 
- 		graph[models[i]] = {
 
- 			distance: -1,
 
- 			parent: null
 
- 		};
 
- 	}
 
- 	return graph;
 
- }
 
- function deriveBFS(fromModel) {
 
- 	var graph = buildGraph();
 
- 	var queue = [fromModel]; 
 
- 	graph[fromModel].distance = 0;
 
- 	while (queue.length) {
 
- 		var current = queue.pop();
 
- 		var adjacents = Object.keys(conversions$1[current]);
 
- 		for (var len = adjacents.length, i = 0; i < len; i++) {
 
- 			var adjacent = adjacents[i];
 
- 			var node = graph[adjacent];
 
- 			if (node.distance === -1) {
 
- 				node.distance = graph[current].distance + 1;
 
- 				node.parent = current;
 
- 				queue.unshift(adjacent);
 
- 			}
 
- 		}
 
- 	}
 
- 	return graph;
 
- }
 
- function link(from, to) {
 
- 	return function (args) {
 
- 		return to(from(args));
 
- 	};
 
- }
 
- function wrapConversion(toModel, graph) {
 
- 	var path = [graph[toModel].parent, toModel];
 
- 	var fn = conversions$1[graph[toModel].parent][toModel];
 
- 	var cur = graph[toModel].parent;
 
- 	while (graph[cur].parent) {
 
- 		path.unshift(graph[cur].parent);
 
- 		fn = link(conversions$1[graph[cur].parent][cur], fn);
 
- 		cur = graph[cur].parent;
 
- 	}
 
- 	fn.conversion = path;
 
- 	return fn;
 
- }
 
- var route$1 = function (fromModel) {
 
- 	var graph = deriveBFS(fromModel);
 
- 	var conversion = {};
 
- 	var models = Object.keys(graph);
 
- 	for (var len = models.length, i = 0; i < len; i++) {
 
- 		var toModel = models[i];
 
- 		var node = graph[toModel];
 
- 		if (node.parent === null) {
 
- 			continue;
 
- 		}
 
- 		conversion[toModel] = wrapConversion(toModel, graph);
 
- 	}
 
- 	return conversion;
 
- };
 
- var conversions = conversionsExports;
 
- var route = route$1;
 
- var convert = {};
 
- var models = Object.keys(conversions);
 
- function wrapRaw(fn) {
 
- 	var wrappedFn = function (args) {
 
- 		if (args === undefined || args === null) {
 
- 			return args;
 
- 		}
 
- 		if (arguments.length > 1) {
 
- 			args = Array.prototype.slice.call(arguments);
 
- 		}
 
- 		return fn(args);
 
- 	};
 
- 	if ('conversion' in fn) {
 
- 		wrappedFn.conversion = fn.conversion;
 
- 	}
 
- 	return wrappedFn;
 
- }
 
- function wrapRounded(fn) {
 
- 	var wrappedFn = function (args) {
 
- 		if (args === undefined || args === null) {
 
- 			return args;
 
- 		}
 
- 		if (arguments.length > 1) {
 
- 			args = Array.prototype.slice.call(arguments);
 
- 		}
 
- 		var result = fn(args);
 
- 		if (typeof result === 'object') {
 
- 			for (var len = result.length, i = 0; i < len; i++) {
 
- 				result[i] = Math.round(result[i]);
 
- 			}
 
- 		}
 
- 		return result;
 
- 	};
 
- 	if ('conversion' in fn) {
 
- 		wrappedFn.conversion = fn.conversion;
 
- 	}
 
- 	return wrappedFn;
 
- }
 
- models.forEach(function (fromModel) {
 
- 	convert[fromModel] = {};
 
- 	Object.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});
 
- 	Object.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});
 
- 	var routes = route(fromModel);
 
- 	var routeModels = Object.keys(routes);
 
- 	routeModels.forEach(function (toModel) {
 
- 		var fn = routes[toModel];
 
- 		convert[fromModel][toModel] = wrapRounded(fn);
 
- 		convert[fromModel][toModel].raw = wrapRaw(fn);
 
- 	});
 
- });
 
- var colorConvert = convert;
 
- ansiStyles$1.exports;
 
- (function (module) {
 
- 	const colorConvert$1 = colorConvert;
 
- 	const wrapAnsi16 = (fn, offset) => function () {
 
- 		const code = fn.apply(colorConvert$1, arguments);
 
- 		return `\u001B[${code + offset}m`;
 
- 	};
 
- 	const wrapAnsi256 = (fn, offset) => function () {
 
- 		const code = fn.apply(colorConvert$1, arguments);
 
- 		return `\u001B[${38 + offset};5;${code}m`;
 
- 	};
 
- 	const wrapAnsi16m = (fn, offset) => function () {
 
- 		const rgb = fn.apply(colorConvert$1, arguments);
 
- 		return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;
 
- 	};
 
- 	function assembleStyles() {
 
- 		const codes = new Map();
 
- 		const styles = {
 
- 			modifier: {
 
- 				reset: [0, 0],
 
- 				bold: [1, 22],
 
- 				dim: [2, 22],
 
- 				italic: [3, 23],
 
- 				underline: [4, 24],
 
- 				inverse: [7, 27],
 
- 				hidden: [8, 28],
 
- 				strikethrough: [9, 29]
 
- 			},
 
- 			color: {
 
- 				black: [30, 39],
 
- 				red: [31, 39],
 
- 				green: [32, 39],
 
- 				yellow: [33, 39],
 
- 				blue: [34, 39],
 
- 				magenta: [35, 39],
 
- 				cyan: [36, 39],
 
- 				white: [37, 39],
 
- 				gray: [90, 39],
 
- 				redBright: [91, 39],
 
- 				greenBright: [92, 39],
 
- 				yellowBright: [93, 39],
 
- 				blueBright: [94, 39],
 
- 				magentaBright: [95, 39],
 
- 				cyanBright: [96, 39],
 
- 				whiteBright: [97, 39]
 
- 			},
 
- 			bgColor: {
 
- 				bgBlack: [40, 49],
 
- 				bgRed: [41, 49],
 
- 				bgGreen: [42, 49],
 
- 				bgYellow: [43, 49],
 
- 				bgBlue: [44, 49],
 
- 				bgMagenta: [45, 49],
 
- 				bgCyan: [46, 49],
 
- 				bgWhite: [47, 49],
 
- 				bgBlackBright: [100, 49],
 
- 				bgRedBright: [101, 49],
 
- 				bgGreenBright: [102, 49],
 
- 				bgYellowBright: [103, 49],
 
- 				bgBlueBright: [104, 49],
 
- 				bgMagentaBright: [105, 49],
 
- 				bgCyanBright: [106, 49],
 
- 				bgWhiteBright: [107, 49]
 
- 			}
 
- 		};
 
- 		styles.color.grey = styles.color.gray;
 
- 		for (const groupName of Object.keys(styles)) {
 
- 			const group = styles[groupName];
 
- 			for (const styleName of Object.keys(group)) {
 
- 				const style = group[styleName];
 
- 				styles[styleName] = {
 
- 					open: `\u001B[${style[0]}m`,
 
- 					close: `\u001B[${style[1]}m`
 
- 				};
 
- 				group[styleName] = styles[styleName];
 
- 				codes.set(style[0], style[1]);
 
- 			}
 
- 			Object.defineProperty(styles, groupName, {
 
- 				value: group,
 
- 				enumerable: false
 
- 			});
 
- 			Object.defineProperty(styles, 'codes', {
 
- 				value: codes,
 
- 				enumerable: false
 
- 			});
 
- 		}
 
- 		const ansi2ansi = n => n;
 
- 		const rgb2rgb = (r, g, b) => [r, g, b];
 
- 		styles.color.close = '\u001B[39m';
 
- 		styles.bgColor.close = '\u001B[49m';
 
- 		styles.color.ansi = {
 
- 			ansi: wrapAnsi16(ansi2ansi, 0)
 
- 		};
 
- 		styles.color.ansi256 = {
 
- 			ansi256: wrapAnsi256(ansi2ansi, 0)
 
- 		};
 
- 		styles.color.ansi16m = {
 
- 			rgb: wrapAnsi16m(rgb2rgb, 0)
 
- 		};
 
- 		styles.bgColor.ansi = {
 
- 			ansi: wrapAnsi16(ansi2ansi, 10)
 
- 		};
 
- 		styles.bgColor.ansi256 = {
 
- 			ansi256: wrapAnsi256(ansi2ansi, 10)
 
- 		};
 
- 		styles.bgColor.ansi16m = {
 
- 			rgb: wrapAnsi16m(rgb2rgb, 10)
 
- 		};
 
- 		for (let key of Object.keys(colorConvert$1)) {
 
- 			if (typeof colorConvert$1[key] !== 'object') {
 
- 				continue;
 
- 			}
 
- 			const suite = colorConvert$1[key];
 
- 			if (key === 'ansi16') {
 
- 				key = 'ansi';
 
- 			}
 
- 			if ('ansi16' in suite) {
 
- 				styles.color.ansi[key] = wrapAnsi16(suite.ansi16, 0);
 
- 				styles.bgColor.ansi[key] = wrapAnsi16(suite.ansi16, 10);
 
- 			}
 
- 			if ('ansi256' in suite) {
 
- 				styles.color.ansi256[key] = wrapAnsi256(suite.ansi256, 0);
 
- 				styles.bgColor.ansi256[key] = wrapAnsi256(suite.ansi256, 10);
 
- 			}
 
- 			if ('rgb' in suite) {
 
- 				styles.color.ansi16m[key] = wrapAnsi16m(suite.rgb, 0);
 
- 				styles.bgColor.ansi16m[key] = wrapAnsi16m(suite.rgb, 10);
 
- 			}
 
- 		}
 
- 		return styles;
 
- 	}
 
- 	Object.defineProperty(module, 'exports', {
 
- 		enumerable: true,
 
- 		get: assembleStyles
 
- 	}); 
 
- } (ansiStyles$1));
 
- var ansiStylesExports$1 = ansiStyles$1.exports;
 
- var hasFlag$3 = (flag, argv) => {
 
- 	argv = argv || process.argv;
 
- 	const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');
 
- 	const pos = argv.indexOf(prefix + flag);
 
- 	const terminatorPos = argv.indexOf('--');
 
- 	return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);
 
- };
 
- const os$1 = require$$0$2;
 
- const hasFlag$2 = hasFlag$3;
 
- const env$1 = process.env;
 
- let forceColor$1;
 
- if (hasFlag$2('no-color') ||
 
- 	hasFlag$2('no-colors') ||
 
- 	hasFlag$2('color=false')) {
 
- 	forceColor$1 = false;
 
- } else if (hasFlag$2('color') ||
 
- 	hasFlag$2('colors') ||
 
- 	hasFlag$2('color=true') ||
 
- 	hasFlag$2('color=always')) {
 
- 	forceColor$1 = true;
 
- }
 
- if ('FORCE_COLOR' in env$1) {
 
- 	forceColor$1 = env$1.FORCE_COLOR.length === 0 || parseInt(env$1.FORCE_COLOR, 10) !== 0;
 
- }
 
- function translateLevel$1(level) {
 
- 	if (level === 0) {
 
- 		return false;
 
- 	}
 
- 	return {
 
- 		level,
 
- 		hasBasic: true,
 
- 		has256: level >= 2,
 
- 		has16m: level >= 3
 
- 	};
 
- }
 
- function supportsColor$1(stream) {
 
- 	if (forceColor$1 === false) {
 
- 		return 0;
 
- 	}
 
- 	if (hasFlag$2('color=16m') ||
 
- 		hasFlag$2('color=full') ||
 
- 		hasFlag$2('color=truecolor')) {
 
- 		return 3;
 
- 	}
 
- 	if (hasFlag$2('color=256')) {
 
- 		return 2;
 
- 	}
 
- 	if (stream && !stream.isTTY && forceColor$1 !== true) {
 
- 		return 0;
 
- 	}
 
- 	const min = forceColor$1 ? 1 : 0;
 
- 	if (process.platform === 'win32') {
 
- 		const osRelease = os$1.release().split('.');
 
- 		if (
 
- 			Number(process.versions.node.split('.')[0]) >= 8 &&
 
- 			Number(osRelease[0]) >= 10 &&
 
- 			Number(osRelease[2]) >= 10586
 
- 		) {
 
- 			return Number(osRelease[2]) >= 14931 ? 3 : 2;
 
- 		}
 
- 		return 1;
 
- 	}
 
- 	if ('CI' in env$1) {
 
- 		if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env$1) || env$1.CI_NAME === 'codeship') {
 
- 			return 1;
 
- 		}
 
- 		return min;
 
- 	}
 
- 	if ('TEAMCITY_VERSION' in env$1) {
 
- 		return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env$1.TEAMCITY_VERSION) ? 1 : 0;
 
- 	}
 
- 	if (env$1.COLORTERM === 'truecolor') {
 
- 		return 3;
 
- 	}
 
- 	if ('TERM_PROGRAM' in env$1) {
 
- 		const version = parseInt((env$1.TERM_PROGRAM_VERSION || '').split('.')[0], 10);
 
- 		switch (env$1.TERM_PROGRAM) {
 
- 			case 'iTerm.app':
 
- 				return version >= 3 ? 3 : 2;
 
- 			case 'Apple_Terminal':
 
- 				return 2;
 
- 		}
 
- 	}
 
- 	if (/-256(color)?$/i.test(env$1.TERM)) {
 
- 		return 2;
 
- 	}
 
- 	if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env$1.TERM)) {
 
- 		return 1;
 
- 	}
 
- 	if ('COLORTERM' in env$1) {
 
- 		return 1;
 
- 	}
 
- 	if (env$1.TERM === 'dumb') {
 
- 		return min;
 
- 	}
 
- 	return min;
 
- }
 
- function getSupportLevel$1(stream) {
 
- 	const level = supportsColor$1(stream);
 
- 	return translateLevel$1(level);
 
- }
 
- var supportsColor_1$1 = {
 
- 	supportsColor: getSupportLevel$1,
 
- 	stdout: getSupportLevel$1(process.stdout),
 
- 	stderr: getSupportLevel$1(process.stderr)
 
- };
 
- const TEMPLATE_REGEX$1 = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi;
 
- const STYLE_REGEX$1 = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g;
 
- const STRING_REGEX$1 = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/;
 
- const ESCAPE_REGEX$1 = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi;
 
- const ESCAPES$1 = new Map([
 
- 	['n', '\n'],
 
- 	['r', '\r'],
 
- 	['t', '\t'],
 
- 	['b', '\b'],
 
- 	['f', '\f'],
 
- 	['v', '\v'],
 
- 	['0', '\0'],
 
- 	['\\', '\\'],
 
- 	['e', '\u001B'],
 
- 	['a', '\u0007']
 
- ]);
 
- function unescape$1(c) {
 
- 	if ((c[0] === 'u' && c.length === 5) || (c[0] === 'x' && c.length === 3)) {
 
- 		return String.fromCharCode(parseInt(c.slice(1), 16));
 
- 	}
 
- 	return ESCAPES$1.get(c) || c;
 
- }
 
- function parseArguments$1(name, args) {
 
- 	const results = [];
 
- 	const chunks = args.trim().split(/\s*,\s*/g);
 
- 	let matches;
 
- 	for (const chunk of chunks) {
 
- 		if (!isNaN(chunk)) {
 
- 			results.push(Number(chunk));
 
- 		} else if ((matches = chunk.match(STRING_REGEX$1))) {
 
- 			results.push(matches[2].replace(ESCAPE_REGEX$1, (m, escape, chr) => escape ? unescape$1(escape) : chr));
 
- 		} else {
 
- 			throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);
 
- 		}
 
- 	}
 
- 	return results;
 
- }
 
- function parseStyle$1(style) {
 
- 	STYLE_REGEX$1.lastIndex = 0;
 
- 	const results = [];
 
- 	let matches;
 
- 	while ((matches = STYLE_REGEX$1.exec(style)) !== null) {
 
- 		const name = matches[1];
 
- 		if (matches[2]) {
 
- 			const args = parseArguments$1(name, matches[2]);
 
- 			results.push([name].concat(args));
 
- 		} else {
 
- 			results.push([name]);
 
- 		}
 
- 	}
 
- 	return results;
 
- }
 
- function buildStyle$1(chalk, styles) {
 
- 	const enabled = {};
 
- 	for (const layer of styles) {
 
- 		for (const style of layer.styles) {
 
- 			enabled[style[0]] = layer.inverse ? null : style.slice(1);
 
- 		}
 
- 	}
 
- 	let current = chalk;
 
- 	for (const styleName of Object.keys(enabled)) {
 
- 		if (Array.isArray(enabled[styleName])) {
 
- 			if (!(styleName in current)) {
 
- 				throw new Error(`Unknown Chalk style: ${styleName}`);
 
- 			}
 
- 			if (enabled[styleName].length > 0) {
 
- 				current = current[styleName].apply(current, enabled[styleName]);
 
- 			} else {
 
- 				current = current[styleName];
 
- 			}
 
- 		}
 
- 	}
 
- 	return current;
 
- }
 
- var templates$1 = (chalk, tmp) => {
 
- 	const styles = [];
 
- 	const chunks = [];
 
- 	let chunk = [];
 
- 	tmp.replace(TEMPLATE_REGEX$1, (m, escapeChar, inverse, style, close, chr) => {
 
- 		if (escapeChar) {
 
- 			chunk.push(unescape$1(escapeChar));
 
- 		} else if (style) {
 
- 			const str = chunk.join('');
 
- 			chunk = [];
 
- 			chunks.push(styles.length === 0 ? str : buildStyle$1(chalk, styles)(str));
 
- 			styles.push({inverse, styles: parseStyle$1(style)});
 
- 		} else if (close) {
 
- 			if (styles.length === 0) {
 
- 				throw new Error('Found extraneous } in Chalk template literal');
 
- 			}
 
- 			chunks.push(buildStyle$1(chalk, styles)(chunk.join('')));
 
- 			chunk = [];
 
- 			styles.pop();
 
- 		} else {
 
- 			chunk.push(chr);
 
- 		}
 
- 	});
 
- 	chunks.push(chunk.join(''));
 
- 	if (styles.length > 0) {
 
- 		const errMsg = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\`}\`)`;
 
- 		throw new Error(errMsg);
 
- 	}
 
- 	return chunks.join('');
 
- };
 
- (function (module) {
 
- 	const escapeStringRegexp = escapeStringRegexp$1;
 
- 	const ansiStyles = ansiStylesExports$1;
 
- 	const stdoutColor = supportsColor_1$1.stdout;
 
- 	const template = templates$1;
 
- 	const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm');
 
- 	const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m'];
 
- 	const skipModels = new Set(['gray']);
 
- 	const styles = Object.create(null);
 
- 	function applyOptions(obj, options) {
 
- 		options = options || {};
 
- 		const scLevel = stdoutColor ? stdoutColor.level : 0;
 
- 		obj.level = options.level === undefined ? scLevel : options.level;
 
- 		obj.enabled = 'enabled' in options ? options.enabled : obj.level > 0;
 
- 	}
 
- 	function Chalk(options) {
 
- 		if (!this || !(this instanceof Chalk) || this.template) {
 
- 			const chalk = {};
 
- 			applyOptions(chalk, options);
 
- 			chalk.template = function () {
 
- 				const args = [].slice.call(arguments);
 
- 				return chalkTag.apply(null, [chalk.template].concat(args));
 
- 			};
 
- 			Object.setPrototypeOf(chalk, Chalk.prototype);
 
- 			Object.setPrototypeOf(chalk.template, chalk);
 
- 			chalk.template.constructor = Chalk;
 
- 			return chalk.template;
 
- 		}
 
- 		applyOptions(this, options);
 
- 	}
 
- 	if (isSimpleWindowsTerm) {
 
- 		ansiStyles.blue.open = '\u001B[94m';
 
- 	}
 
- 	for (const key of Object.keys(ansiStyles)) {
 
- 		ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');
 
- 		styles[key] = {
 
- 			get() {
 
- 				const codes = ansiStyles[key];
 
- 				return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key);
 
- 			}
 
- 		};
 
- 	}
 
- 	styles.visible = {
 
- 		get() {
 
- 			return build.call(this, this._styles || [], true, 'visible');
 
- 		}
 
- 	};
 
- 	ansiStyles.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles.color.close), 'g');
 
- 	for (const model of Object.keys(ansiStyles.color.ansi)) {
 
- 		if (skipModels.has(model)) {
 
- 			continue;
 
- 		}
 
- 		styles[model] = {
 
- 			get() {
 
- 				const level = this.level;
 
- 				return function () {
 
- 					const open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments);
 
- 					const codes = {
 
- 						open,
 
- 						close: ansiStyles.color.close,
 
- 						closeRe: ansiStyles.color.closeRe
 
- 					};
 
- 					return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);
 
- 				};
 
- 			}
 
- 		};
 
- 	}
 
- 	ansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp(ansiStyles.bgColor.close), 'g');
 
- 	for (const model of Object.keys(ansiStyles.bgColor.ansi)) {
 
- 		if (skipModels.has(model)) {
 
- 			continue;
 
- 		}
 
- 		const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);
 
- 		styles[bgModel] = {
 
- 			get() {
 
- 				const level = this.level;
 
- 				return function () {
 
- 					const open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments);
 
- 					const codes = {
 
- 						open,
 
- 						close: ansiStyles.bgColor.close,
 
- 						closeRe: ansiStyles.bgColor.closeRe
 
- 					};
 
- 					return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);
 
- 				};
 
- 			}
 
- 		};
 
- 	}
 
- 	const proto = Object.defineProperties(() => {}, styles);
 
- 	function build(_styles, _empty, key) {
 
- 		const builder = function () {
 
- 			return applyStyle.apply(builder, arguments);
 
- 		};
 
- 		builder._styles = _styles;
 
- 		builder._empty = _empty;
 
- 		const self = this;
 
- 		Object.defineProperty(builder, 'level', {
 
- 			enumerable: true,
 
- 			get() {
 
- 				return self.level;
 
- 			},
 
- 			set(level) {
 
- 				self.level = level;
 
- 			}
 
- 		});
 
- 		Object.defineProperty(builder, 'enabled', {
 
- 			enumerable: true,
 
- 			get() {
 
- 				return self.enabled;
 
- 			},
 
- 			set(enabled) {
 
- 				self.enabled = enabled;
 
- 			}
 
- 		});
 
- 		builder.hasGrey = this.hasGrey || key === 'gray' || key === 'grey';
 
- 		builder.__proto__ = proto; 
 
- 		return builder;
 
- 	}
 
- 	function applyStyle() {
 
- 		const args = arguments;
 
- 		const argsLen = args.length;
 
- 		let str = String(arguments[0]);
 
- 		if (argsLen === 0) {
 
- 			return '';
 
- 		}
 
- 		if (argsLen > 1) {
 
- 			for (let a = 1; a < argsLen; a++) {
 
- 				str += ' ' + args[a];
 
- 			}
 
- 		}
 
- 		if (!this.enabled || this.level <= 0 || !str) {
 
- 			return this._empty ? '' : str;
 
- 		}
 
- 		const originalDim = ansiStyles.dim.open;
 
- 		if (isSimpleWindowsTerm && this.hasGrey) {
 
- 			ansiStyles.dim.open = '';
 
- 		}
 
- 		for (const code of this._styles.slice().reverse()) {
 
- 			str = code.open + str.replace(code.closeRe, code.open) + code.close;
 
- 			str = str.replace(/\r?\n/g, `${code.close}$&${code.open}`);
 
- 		}
 
- 		ansiStyles.dim.open = originalDim;
 
- 		return str;
 
- 	}
 
- 	function chalkTag(chalk, strings) {
 
- 		if (!Array.isArray(strings)) {
 
- 			return [].slice.call(arguments, 1).join(' ');
 
- 		}
 
- 		const args = [].slice.call(arguments, 2);
 
- 		const parts = [strings.raw[0]];
 
- 		for (let i = 1; i < strings.length; i++) {
 
- 			parts.push(String(args[i - 1]).replace(/[{}\\]/g, '\\$&'));
 
- 			parts.push(String(strings.raw[i]));
 
- 		}
 
- 		return template(chalk, parts.join(''));
 
- 	}
 
- 	Object.defineProperties(Chalk.prototype, styles);
 
- 	module.exports = Chalk(); 
 
- 	module.exports.supportsColor = stdoutColor;
 
- 	module.exports.default = module.exports; 
 
- } (chalk$1));
 
- var chalkExports$1 = chalk$1.exports;
 
- Object.defineProperty(lib$1, "__esModule", {
 
-   value: true
 
- });
 
- lib$1.default = highlight;
 
- lib$1.shouldHighlight = shouldHighlight;
 
- var _jsTokens = jsTokens;
 
- var _helperValidatorIdentifier = lib;
 
- var _chalk$1 = _interopRequireWildcard$1(chalkExports$1, true);
 
- function _getRequireWildcardCache$1(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache$1 = function (e) { return e ? t : r; })(e); }
 
- function _interopRequireWildcard$1(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache$1(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
 
- const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]);
 
- function getDefs$1(chalk) {
 
-   return {
 
-     keyword: chalk.cyan,
 
-     capitalized: chalk.yellow,
 
-     jsxIdentifier: chalk.yellow,
 
-     punctuator: chalk.yellow,
 
-     number: chalk.magenta,
 
-     string: chalk.green,
 
-     regex: chalk.magenta,
 
-     comment: chalk.grey,
 
-     invalid: chalk.white.bgRed.bold
 
-   };
 
- }
 
- const NEWLINE$1 = /\r\n|[\n\r\u2028\u2029]/;
 
- const BRACKET = /^[()[\]{}]$/;
 
- let tokenize;
 
- {
 
-   const JSX_TAG = /^[a-z][\w-]*$/i;
 
-   const getTokenType = function (token, offset, text) {
 
-     if (token.type === "name") {
 
-       if ((0, _helperValidatorIdentifier.isKeyword)(token.value) || (0, _helperValidatorIdentifier.isStrictReservedWord)(token.value, true) || sometimesKeywords.has(token.value)) {
 
-         return "keyword";
 
-       }
 
-       if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.slice(offset - 2, offset) == "</")) {
 
-         return "jsxIdentifier";
 
-       }
 
-       if (token.value[0] !== token.value[0].toLowerCase()) {
 
-         return "capitalized";
 
-       }
 
-     }
 
-     if (token.type === "punctuator" && BRACKET.test(token.value)) {
 
-       return "bracket";
 
-     }
 
-     if (token.type === "invalid" && (token.value === "@" || token.value === "#")) {
 
-       return "punctuator";
 
-     }
 
-     return token.type;
 
-   };
 
-   tokenize = function* (text) {
 
-     let match;
 
-     while (match = _jsTokens.default.exec(text)) {
 
-       const token = _jsTokens.matchToToken(match);
 
-       yield {
 
-         type: getTokenType(token, match.index, text),
 
-         value: token.value
 
-       };
 
-     }
 
-   };
 
- }
 
- function highlightTokens(defs, text) {
 
-   let highlighted = "";
 
-   for (const {
 
-     type,
 
-     value
 
-   } of tokenize(text)) {
 
-     const colorize = defs[type];
 
-     if (colorize) {
 
-       highlighted += value.split(NEWLINE$1).map(str => colorize(str)).join("\n");
 
-     } else {
 
-       highlighted += value;
 
-     }
 
-   }
 
-   return highlighted;
 
- }
 
- function shouldHighlight(options) {
 
-   return _chalk$1.default.level > 0 || options.forceColor;
 
- }
 
- let chalkWithForcedColor$1 = undefined;
 
- function getChalk$1(forceColor) {
 
-   if (forceColor) {
 
-     var _chalkWithForcedColor;
 
-     (_chalkWithForcedColor = chalkWithForcedColor$1) != null ? _chalkWithForcedColor : chalkWithForcedColor$1 = new _chalk$1.default.constructor({
 
-       enabled: true,
 
-       level: 1
 
-     });
 
-     return chalkWithForcedColor$1;
 
-   }
 
-   return _chalk$1.default;
 
- }
 
- {
 
-   lib$1.getChalk = options => getChalk$1(options.forceColor);
 
- }
 
- function highlight(code, options = {}) {
 
-   if (code !== "" && shouldHighlight(options)) {
 
-     const defs = getDefs$1(getChalk$1(options.forceColor));
 
-     return highlightTokens(defs, code);
 
-   } else {
 
-     return code;
 
-   }
 
- }
 
- var chalk = {exports: {}};
 
- var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g;
 
- var escapeStringRegexp = function (str) {
 
- 	if (typeof str !== 'string') {
 
- 		throw new TypeError('Expected a string');
 
- 	}
 
- 	return str.replace(matchOperatorsRe, '\\$&');
 
- };
 
- var ansiStyles = {exports: {}};
 
- ansiStyles.exports;
 
- (function (module) {
 
- 	const colorConvert$1 = colorConvert;
 
- 	const wrapAnsi16 = (fn, offset) => function () {
 
- 		const code = fn.apply(colorConvert$1, arguments);
 
- 		return `\u001B[${code + offset}m`;
 
- 	};
 
- 	const wrapAnsi256 = (fn, offset) => function () {
 
- 		const code = fn.apply(colorConvert$1, arguments);
 
- 		return `\u001B[${38 + offset};5;${code}m`;
 
- 	};
 
- 	const wrapAnsi16m = (fn, offset) => function () {
 
- 		const rgb = fn.apply(colorConvert$1, arguments);
 
- 		return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;
 
- 	};
 
- 	function assembleStyles() {
 
- 		const codes = new Map();
 
- 		const styles = {
 
- 			modifier: {
 
- 				reset: [0, 0],
 
- 				bold: [1, 22],
 
- 				dim: [2, 22],
 
- 				italic: [3, 23],
 
- 				underline: [4, 24],
 
- 				inverse: [7, 27],
 
- 				hidden: [8, 28],
 
- 				strikethrough: [9, 29]
 
- 			},
 
- 			color: {
 
- 				black: [30, 39],
 
- 				red: [31, 39],
 
- 				green: [32, 39],
 
- 				yellow: [33, 39],
 
- 				blue: [34, 39],
 
- 				magenta: [35, 39],
 
- 				cyan: [36, 39],
 
- 				white: [37, 39],
 
- 				gray: [90, 39],
 
- 				redBright: [91, 39],
 
- 				greenBright: [92, 39],
 
- 				yellowBright: [93, 39],
 
- 				blueBright: [94, 39],
 
- 				magentaBright: [95, 39],
 
- 				cyanBright: [96, 39],
 
- 				whiteBright: [97, 39]
 
- 			},
 
- 			bgColor: {
 
- 				bgBlack: [40, 49],
 
- 				bgRed: [41, 49],
 
- 				bgGreen: [42, 49],
 
- 				bgYellow: [43, 49],
 
- 				bgBlue: [44, 49],
 
- 				bgMagenta: [45, 49],
 
- 				bgCyan: [46, 49],
 
- 				bgWhite: [47, 49],
 
- 				bgBlackBright: [100, 49],
 
- 				bgRedBright: [101, 49],
 
- 				bgGreenBright: [102, 49],
 
- 				bgYellowBright: [103, 49],
 
- 				bgBlueBright: [104, 49],
 
- 				bgMagentaBright: [105, 49],
 
- 				bgCyanBright: [106, 49],
 
- 				bgWhiteBright: [107, 49]
 
- 			}
 
- 		};
 
- 		styles.color.grey = styles.color.gray;
 
- 		for (const groupName of Object.keys(styles)) {
 
- 			const group = styles[groupName];
 
- 			for (const styleName of Object.keys(group)) {
 
- 				const style = group[styleName];
 
- 				styles[styleName] = {
 
- 					open: `\u001B[${style[0]}m`,
 
- 					close: `\u001B[${style[1]}m`
 
- 				};
 
- 				group[styleName] = styles[styleName];
 
- 				codes.set(style[0], style[1]);
 
- 			}
 
- 			Object.defineProperty(styles, groupName, {
 
- 				value: group,
 
- 				enumerable: false
 
- 			});
 
- 			Object.defineProperty(styles, 'codes', {
 
- 				value: codes,
 
- 				enumerable: false
 
- 			});
 
- 		}
 
- 		const ansi2ansi = n => n;
 
- 		const rgb2rgb = (r, g, b) => [r, g, b];
 
- 		styles.color.close = '\u001B[39m';
 
- 		styles.bgColor.close = '\u001B[49m';
 
- 		styles.color.ansi = {
 
- 			ansi: wrapAnsi16(ansi2ansi, 0)
 
- 		};
 
- 		styles.color.ansi256 = {
 
- 			ansi256: wrapAnsi256(ansi2ansi, 0)
 
- 		};
 
- 		styles.color.ansi16m = {
 
- 			rgb: wrapAnsi16m(rgb2rgb, 0)
 
- 		};
 
- 		styles.bgColor.ansi = {
 
- 			ansi: wrapAnsi16(ansi2ansi, 10)
 
- 		};
 
- 		styles.bgColor.ansi256 = {
 
- 			ansi256: wrapAnsi256(ansi2ansi, 10)
 
- 		};
 
- 		styles.bgColor.ansi16m = {
 
- 			rgb: wrapAnsi16m(rgb2rgb, 10)
 
- 		};
 
- 		for (let key of Object.keys(colorConvert$1)) {
 
- 			if (typeof colorConvert$1[key] !== 'object') {
 
- 				continue;
 
- 			}
 
- 			const suite = colorConvert$1[key];
 
- 			if (key === 'ansi16') {
 
- 				key = 'ansi';
 
- 			}
 
- 			if ('ansi16' in suite) {
 
- 				styles.color.ansi[key] = wrapAnsi16(suite.ansi16, 0);
 
- 				styles.bgColor.ansi[key] = wrapAnsi16(suite.ansi16, 10);
 
- 			}
 
- 			if ('ansi256' in suite) {
 
- 				styles.color.ansi256[key] = wrapAnsi256(suite.ansi256, 0);
 
- 				styles.bgColor.ansi256[key] = wrapAnsi256(suite.ansi256, 10);
 
- 			}
 
- 			if ('rgb' in suite) {
 
- 				styles.color.ansi16m[key] = wrapAnsi16m(suite.rgb, 0);
 
- 				styles.bgColor.ansi16m[key] = wrapAnsi16m(suite.rgb, 10);
 
- 			}
 
- 		}
 
- 		return styles;
 
- 	}
 
- 	Object.defineProperty(module, 'exports', {
 
- 		enumerable: true,
 
- 		get: assembleStyles
 
- 	}); 
 
- } (ansiStyles));
 
- var ansiStylesExports = ansiStyles.exports;
 
- var hasFlag$1 = (flag, argv) => {
 
- 	argv = argv || process.argv;
 
- 	const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');
 
- 	const pos = argv.indexOf(prefix + flag);
 
- 	const terminatorPos = argv.indexOf('--');
 
- 	return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);
 
- };
 
- const os = require$$0$2;
 
- const hasFlag = hasFlag$1;
 
- const env = process.env;
 
- let forceColor;
 
- if (hasFlag('no-color') ||
 
- 	hasFlag('no-colors') ||
 
- 	hasFlag('color=false')) {
 
- 	forceColor = false;
 
- } else if (hasFlag('color') ||
 
- 	hasFlag('colors') ||
 
- 	hasFlag('color=true') ||
 
- 	hasFlag('color=always')) {
 
- 	forceColor = true;
 
- }
 
- if ('FORCE_COLOR' in env) {
 
- 	forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0;
 
- }
 
- function translateLevel(level) {
 
- 	if (level === 0) {
 
- 		return false;
 
- 	}
 
- 	return {
 
- 		level,
 
- 		hasBasic: true,
 
- 		has256: level >= 2,
 
- 		has16m: level >= 3
 
- 	};
 
- }
 
- function supportsColor(stream) {
 
- 	if (forceColor === false) {
 
- 		return 0;
 
- 	}
 
- 	if (hasFlag('color=16m') ||
 
- 		hasFlag('color=full') ||
 
- 		hasFlag('color=truecolor')) {
 
- 		return 3;
 
- 	}
 
- 	if (hasFlag('color=256')) {
 
- 		return 2;
 
- 	}
 
- 	if (stream && !stream.isTTY && forceColor !== true) {
 
- 		return 0;
 
- 	}
 
- 	const min = forceColor ? 1 : 0;
 
- 	if (process.platform === 'win32') {
 
- 		const osRelease = os.release().split('.');
 
- 		if (
 
- 			Number(process.versions.node.split('.')[0]) >= 8 &&
 
- 			Number(osRelease[0]) >= 10 &&
 
- 			Number(osRelease[2]) >= 10586
 
- 		) {
 
- 			return Number(osRelease[2]) >= 14931 ? 3 : 2;
 
- 		}
 
- 		return 1;
 
- 	}
 
- 	if ('CI' in env) {
 
- 		if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') {
 
- 			return 1;
 
- 		}
 
- 		return min;
 
- 	}
 
- 	if ('TEAMCITY_VERSION' in env) {
 
- 		return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
 
- 	}
 
- 	if (env.COLORTERM === 'truecolor') {
 
- 		return 3;
 
- 	}
 
- 	if ('TERM_PROGRAM' in env) {
 
- 		const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);
 
- 		switch (env.TERM_PROGRAM) {
 
- 			case 'iTerm.app':
 
- 				return version >= 3 ? 3 : 2;
 
- 			case 'Apple_Terminal':
 
- 				return 2;
 
- 		}
 
- 	}
 
- 	if (/-256(color)?$/i.test(env.TERM)) {
 
- 		return 2;
 
- 	}
 
- 	if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
 
- 		return 1;
 
- 	}
 
- 	if ('COLORTERM' in env) {
 
- 		return 1;
 
- 	}
 
- 	if (env.TERM === 'dumb') {
 
- 		return min;
 
- 	}
 
- 	return min;
 
- }
 
- function getSupportLevel(stream) {
 
- 	const level = supportsColor(stream);
 
- 	return translateLevel(level);
 
- }
 
- var supportsColor_1 = {
 
- 	supportsColor: getSupportLevel,
 
- 	stdout: getSupportLevel(process.stdout),
 
- 	stderr: getSupportLevel(process.stderr)
 
- };
 
- const TEMPLATE_REGEX = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi;
 
- const STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g;
 
- const STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/;
 
- const ESCAPE_REGEX = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi;
 
- const ESCAPES = new Map([
 
- 	['n', '\n'],
 
- 	['r', '\r'],
 
- 	['t', '\t'],
 
- 	['b', '\b'],
 
- 	['f', '\f'],
 
- 	['v', '\v'],
 
- 	['0', '\0'],
 
- 	['\\', '\\'],
 
- 	['e', '\u001B'],
 
- 	['a', '\u0007']
 
- ]);
 
- function unescape(c) {
 
- 	if ((c[0] === 'u' && c.length === 5) || (c[0] === 'x' && c.length === 3)) {
 
- 		return String.fromCharCode(parseInt(c.slice(1), 16));
 
- 	}
 
- 	return ESCAPES.get(c) || c;
 
- }
 
- function parseArguments(name, args) {
 
- 	const results = [];
 
- 	const chunks = args.trim().split(/\s*,\s*/g);
 
- 	let matches;
 
- 	for (const chunk of chunks) {
 
- 		if (!isNaN(chunk)) {
 
- 			results.push(Number(chunk));
 
- 		} else if ((matches = chunk.match(STRING_REGEX))) {
 
- 			results.push(matches[2].replace(ESCAPE_REGEX, (m, escape, chr) => escape ? unescape(escape) : chr));
 
- 		} else {
 
- 			throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);
 
- 		}
 
- 	}
 
- 	return results;
 
- }
 
- function parseStyle(style) {
 
- 	STYLE_REGEX.lastIndex = 0;
 
- 	const results = [];
 
- 	let matches;
 
- 	while ((matches = STYLE_REGEX.exec(style)) !== null) {
 
- 		const name = matches[1];
 
- 		if (matches[2]) {
 
- 			const args = parseArguments(name, matches[2]);
 
- 			results.push([name].concat(args));
 
- 		} else {
 
- 			results.push([name]);
 
- 		}
 
- 	}
 
- 	return results;
 
- }
 
- function buildStyle(chalk, styles) {
 
- 	const enabled = {};
 
- 	for (const layer of styles) {
 
- 		for (const style of layer.styles) {
 
- 			enabled[style[0]] = layer.inverse ? null : style.slice(1);
 
- 		}
 
- 	}
 
- 	let current = chalk;
 
- 	for (const styleName of Object.keys(enabled)) {
 
- 		if (Array.isArray(enabled[styleName])) {
 
- 			if (!(styleName in current)) {
 
- 				throw new Error(`Unknown Chalk style: ${styleName}`);
 
- 			}
 
- 			if (enabled[styleName].length > 0) {
 
- 				current = current[styleName].apply(current, enabled[styleName]);
 
- 			} else {
 
- 				current = current[styleName];
 
- 			}
 
- 		}
 
- 	}
 
- 	return current;
 
- }
 
- var templates = (chalk, tmp) => {
 
- 	const styles = [];
 
- 	const chunks = [];
 
- 	let chunk = [];
 
- 	tmp.replace(TEMPLATE_REGEX, (m, escapeChar, inverse, style, close, chr) => {
 
- 		if (escapeChar) {
 
- 			chunk.push(unescape(escapeChar));
 
- 		} else if (style) {
 
- 			const str = chunk.join('');
 
- 			chunk = [];
 
- 			chunks.push(styles.length === 0 ? str : buildStyle(chalk, styles)(str));
 
- 			styles.push({inverse, styles: parseStyle(style)});
 
- 		} else if (close) {
 
- 			if (styles.length === 0) {
 
- 				throw new Error('Found extraneous } in Chalk template literal');
 
- 			}
 
- 			chunks.push(buildStyle(chalk, styles)(chunk.join('')));
 
- 			chunk = [];
 
- 			styles.pop();
 
- 		} else {
 
- 			chunk.push(chr);
 
- 		}
 
- 	});
 
- 	chunks.push(chunk.join(''));
 
- 	if (styles.length > 0) {
 
- 		const errMsg = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\`}\`)`;
 
- 		throw new Error(errMsg);
 
- 	}
 
- 	return chunks.join('');
 
- };
 
- (function (module) {
 
- 	const escapeStringRegexp$1 = escapeStringRegexp;
 
- 	const ansiStyles = ansiStylesExports;
 
- 	const stdoutColor = supportsColor_1.stdout;
 
- 	const template = templates;
 
- 	const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm');
 
- 	const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m'];
 
- 	const skipModels = new Set(['gray']);
 
- 	const styles = Object.create(null);
 
- 	function applyOptions(obj, options) {
 
- 		options = options || {};
 
- 		const scLevel = stdoutColor ? stdoutColor.level : 0;
 
- 		obj.level = options.level === undefined ? scLevel : options.level;
 
- 		obj.enabled = 'enabled' in options ? options.enabled : obj.level > 0;
 
- 	}
 
- 	function Chalk(options) {
 
- 		if (!this || !(this instanceof Chalk) || this.template) {
 
- 			const chalk = {};
 
- 			applyOptions(chalk, options);
 
- 			chalk.template = function () {
 
- 				const args = [].slice.call(arguments);
 
- 				return chalkTag.apply(null, [chalk.template].concat(args));
 
- 			};
 
- 			Object.setPrototypeOf(chalk, Chalk.prototype);
 
- 			Object.setPrototypeOf(chalk.template, chalk);
 
- 			chalk.template.constructor = Chalk;
 
- 			return chalk.template;
 
- 		}
 
- 		applyOptions(this, options);
 
- 	}
 
- 	if (isSimpleWindowsTerm) {
 
- 		ansiStyles.blue.open = '\u001B[94m';
 
- 	}
 
- 	for (const key of Object.keys(ansiStyles)) {
 
- 		ansiStyles[key].closeRe = new RegExp(escapeStringRegexp$1(ansiStyles[key].close), 'g');
 
- 		styles[key] = {
 
- 			get() {
 
- 				const codes = ansiStyles[key];
 
- 				return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key);
 
- 			}
 
- 		};
 
- 	}
 
- 	styles.visible = {
 
- 		get() {
 
- 			return build.call(this, this._styles || [], true, 'visible');
 
- 		}
 
- 	};
 
- 	ansiStyles.color.closeRe = new RegExp(escapeStringRegexp$1(ansiStyles.color.close), 'g');
 
- 	for (const model of Object.keys(ansiStyles.color.ansi)) {
 
- 		if (skipModels.has(model)) {
 
- 			continue;
 
- 		}
 
- 		styles[model] = {
 
- 			get() {
 
- 				const level = this.level;
 
- 				return function () {
 
- 					const open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments);
 
- 					const codes = {
 
- 						open,
 
- 						close: ansiStyles.color.close,
 
- 						closeRe: ansiStyles.color.closeRe
 
- 					};
 
- 					return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);
 
- 				};
 
- 			}
 
- 		};
 
- 	}
 
- 	ansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp$1(ansiStyles.bgColor.close), 'g');
 
- 	for (const model of Object.keys(ansiStyles.bgColor.ansi)) {
 
- 		if (skipModels.has(model)) {
 
- 			continue;
 
- 		}
 
- 		const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);
 
- 		styles[bgModel] = {
 
- 			get() {
 
- 				const level = this.level;
 
- 				return function () {
 
- 					const open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments);
 
- 					const codes = {
 
- 						open,
 
- 						close: ansiStyles.bgColor.close,
 
- 						closeRe: ansiStyles.bgColor.closeRe
 
- 					};
 
- 					return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);
 
- 				};
 
- 			}
 
- 		};
 
- 	}
 
- 	const proto = Object.defineProperties(() => {}, styles);
 
- 	function build(_styles, _empty, key) {
 
- 		const builder = function () {
 
- 			return applyStyle.apply(builder, arguments);
 
- 		};
 
- 		builder._styles = _styles;
 
- 		builder._empty = _empty;
 
- 		const self = this;
 
- 		Object.defineProperty(builder, 'level', {
 
- 			enumerable: true,
 
- 			get() {
 
- 				return self.level;
 
- 			},
 
- 			set(level) {
 
- 				self.level = level;
 
- 			}
 
- 		});
 
- 		Object.defineProperty(builder, 'enabled', {
 
- 			enumerable: true,
 
- 			get() {
 
- 				return self.enabled;
 
- 			},
 
- 			set(enabled) {
 
- 				self.enabled = enabled;
 
- 			}
 
- 		});
 
- 		builder.hasGrey = this.hasGrey || key === 'gray' || key === 'grey';
 
- 		builder.__proto__ = proto; 
 
- 		return builder;
 
- 	}
 
- 	function applyStyle() {
 
- 		const args = arguments;
 
- 		const argsLen = args.length;
 
- 		let str = String(arguments[0]);
 
- 		if (argsLen === 0) {
 
- 			return '';
 
- 		}
 
- 		if (argsLen > 1) {
 
- 			for (let a = 1; a < argsLen; a++) {
 
- 				str += ' ' + args[a];
 
- 			}
 
- 		}
 
- 		if (!this.enabled || this.level <= 0 || !str) {
 
- 			return this._empty ? '' : str;
 
- 		}
 
- 		const originalDim = ansiStyles.dim.open;
 
- 		if (isSimpleWindowsTerm && this.hasGrey) {
 
- 			ansiStyles.dim.open = '';
 
- 		}
 
- 		for (const code of this._styles.slice().reverse()) {
 
- 			str = code.open + str.replace(code.closeRe, code.open) + code.close;
 
- 			str = str.replace(/\r?\n/g, `${code.close}$&${code.open}`);
 
- 		}
 
- 		ansiStyles.dim.open = originalDim;
 
- 		return str;
 
- 	}
 
- 	function chalkTag(chalk, strings) {
 
- 		if (!Array.isArray(strings)) {
 
- 			return [].slice.call(arguments, 1).join(' ');
 
- 		}
 
- 		const args = [].slice.call(arguments, 2);
 
- 		const parts = [strings.raw[0]];
 
- 		for (let i = 1; i < strings.length; i++) {
 
- 			parts.push(String(args[i - 1]).replace(/[{}\\]/g, '\\$&'));
 
- 			parts.push(String(strings.raw[i]));
 
- 		}
 
- 		return template(chalk, parts.join(''));
 
- 	}
 
- 	Object.defineProperties(Chalk.prototype, styles);
 
- 	module.exports = Chalk(); 
 
- 	module.exports.supportsColor = stdoutColor;
 
- 	module.exports.default = module.exports; 
 
- } (chalk));
 
- var chalkExports = chalk.exports;
 
- Object.defineProperty(lib$2, "__esModule", {
 
-   value: true
 
- });
 
- var codeFrameColumns_1 = lib$2.codeFrameColumns = codeFrameColumns;
 
- lib$2.default = _default;
 
- var _highlight = lib$1;
 
- var _chalk = _interopRequireWildcard(chalkExports, true);
 
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
 
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
 
- let chalkWithForcedColor = undefined;
 
- function getChalk(forceColor) {
 
-   if (forceColor) {
 
-     var _chalkWithForcedColor;
 
-     (_chalkWithForcedColor = chalkWithForcedColor) != null ? _chalkWithForcedColor : chalkWithForcedColor = new _chalk.default.constructor({
 
-       enabled: true,
 
-       level: 1
 
-     });
 
-     return chalkWithForcedColor;
 
-   }
 
-   return _chalk.default;
 
- }
 
- let deprecationWarningShown = false;
 
- function getDefs(chalk) {
 
-   return {
 
-     gutter: chalk.grey,
 
-     marker: chalk.red.bold,
 
-     message: chalk.red.bold
 
-   };
 
- }
 
- const NEWLINE = /\r\n|[\n\r\u2028\u2029]/;
 
- function getMarkerLines(loc, source, opts) {
 
-   const startLoc = Object.assign({
 
-     column: 0,
 
-     line: -1
 
-   }, loc.start);
 
-   const endLoc = Object.assign({}, startLoc, loc.end);
 
-   const {
 
-     linesAbove = 2,
 
-     linesBelow = 3
 
-   } = opts || {};
 
-   const startLine = startLoc.line;
 
-   const startColumn = startLoc.column;
 
-   const endLine = endLoc.line;
 
-   const endColumn = endLoc.column;
 
-   let start = Math.max(startLine - (linesAbove + 1), 0);
 
-   let end = Math.min(source.length, endLine + linesBelow);
 
-   if (startLine === -1) {
 
-     start = 0;
 
-   }
 
-   if (endLine === -1) {
 
-     end = source.length;
 
-   }
 
-   const lineDiff = endLine - startLine;
 
-   const markerLines = {};
 
-   if (lineDiff) {
 
-     for (let i = 0; i <= lineDiff; i++) {
 
-       const lineNumber = i + startLine;
 
-       if (!startColumn) {
 
-         markerLines[lineNumber] = true;
 
-       } else if (i === 0) {
 
-         const sourceLength = source[lineNumber - 1].length;
 
-         markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];
 
-       } else if (i === lineDiff) {
 
-         markerLines[lineNumber] = [0, endColumn];
 
-       } else {
 
-         const sourceLength = source[lineNumber - i].length;
 
-         markerLines[lineNumber] = [0, sourceLength];
 
-       }
 
-     }
 
-   } else {
 
-     if (startColumn === endColumn) {
 
-       if (startColumn) {
 
-         markerLines[startLine] = [startColumn, 0];
 
-       } else {
 
-         markerLines[startLine] = true;
 
-       }
 
-     } else {
 
-       markerLines[startLine] = [startColumn, endColumn - startColumn];
 
-     }
 
-   }
 
-   return {
 
-     start,
 
-     end,
 
-     markerLines
 
-   };
 
- }
 
- function codeFrameColumns(rawLines, loc, opts = {}) {
 
-   const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight.shouldHighlight)(opts);
 
-   const chalk = getChalk(opts.forceColor);
 
-   const defs = getDefs(chalk);
 
-   const maybeHighlight = (chalkFn, string) => {
 
-     return highlighted ? chalkFn(string) : string;
 
-   };
 
-   const lines = rawLines.split(NEWLINE);
 
-   const {
 
-     start,
 
-     end,
 
-     markerLines
 
-   } = getMarkerLines(loc, lines, opts);
 
-   const hasColumns = loc.start && typeof loc.start.column === "number";
 
-   const numberMaxWidth = String(end).length;
 
-   const highlightedLines = highlighted ? (0, _highlight.default)(rawLines, opts) : rawLines;
 
-   let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => {
 
-     const number = start + 1 + index;
 
-     const paddedNumber = ` ${number}`.slice(-numberMaxWidth);
 
-     const gutter = ` ${paddedNumber} |`;
 
-     const hasMarker = markerLines[number];
 
-     const lastMarkerLine = !markerLines[number + 1];
 
-     if (hasMarker) {
 
-       let markerLine = "";
 
-       if (Array.isArray(hasMarker)) {
 
-         const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " ");
 
-         const numberOfMarkers = hasMarker[1] || 1;
 
-         markerLine = ["\n ", maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")), " ", markerSpacing, maybeHighlight(defs.marker, "^").repeat(numberOfMarkers)].join("");
 
-         if (lastMarkerLine && opts.message) {
 
-           markerLine += " " + maybeHighlight(defs.message, opts.message);
 
-         }
 
-       }
 
-       return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line.length > 0 ? ` ${line}` : "", markerLine].join("");
 
-     } else {
 
-       return ` ${maybeHighlight(defs.gutter, gutter)}${line.length > 0 ? ` ${line}` : ""}`;
 
-     }
 
-   }).join("\n");
 
-   if (opts.message && !hasColumns) {
 
-     frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`;
 
-   }
 
-   if (highlighted) {
 
-     return chalk.reset(frame);
 
-   } else {
 
-     return frame;
 
-   }
 
- }
 
- function _default(rawLines, lineNumber, colNumber, opts = {}) {
 
-   if (!deprecationWarningShown) {
 
-     deprecationWarningShown = true;
 
-     const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";
 
-     if (process.emitWarning) {
 
-       process.emitWarning(message, "DeprecationWarning");
 
-     } else {
 
-       const deprecationError = new Error(message);
 
-       deprecationError.name = "DeprecationWarning";
 
-       console.warn(new Error(message));
 
-     }
 
-   }
 
-   colNumber = Math.max(colNumber, 0);
 
-   const location = {
 
-     start: {
 
-       column: colNumber,
 
-       line: lineNumber
 
-     }
 
-   };
 
-   return codeFrameColumns(rawLines, location, opts);
 
- }
 
- const safeLastIndexOf = (string, searchString, index) =>
 
- 	index < 0 ? -1 : string.lastIndexOf(searchString, index);
 
- function getPosition(text, textIndex) {
 
- 	const lineBreakBefore = safeLastIndexOf(text, '\n', textIndex - 1);
 
- 	const column = textIndex - lineBreakBefore - 1;
 
- 	let line = 0;
 
- 	for (
 
- 		let index = lineBreakBefore;
 
- 		index >= 0;
 
- 		index = safeLastIndexOf(text, '\n', index - 1)
 
- 	) {
 
- 		line++;
 
- 	}
 
- 	return {line, column};
 
- }
 
- function indexToLineColumn(text, textIndex, {oneBased = false} = {}) {
 
- 	if (textIndex < 0 || (textIndex >= text.length && text.length > 0)) {
 
- 		throw new RangeError('Index out of bounds');
 
- 	}
 
- 	const position = getPosition(text, textIndex);
 
- 	return oneBased ? {line: position.line + 1, column: position.column + 1} : position;
 
- }
 
- const getCodePoint = character => `\\u{${character.codePointAt(0).toString(16)}}`;
 
- class JSONError extends Error {
 
- 	name = 'JSONError';
 
- 	fileName;
 
- 	codeFrame;
 
- 	rawCodeFrame;
 
- 	#message;
 
- 	constructor(message) {
 
- 		super();
 
- 		this.#message = message;
 
- 		Error.captureStackTrace?.(this, JSONError);
 
- 	}
 
- 	get message() {
 
- 		const {fileName, codeFrame} = this;
 
- 		return `${this.#message}${fileName ? ` in ${fileName}` : ''}${codeFrame ? `\n\n${codeFrame}\n` : ''}`;
 
- 	}
 
- 	set message(message) {
 
- 		this.#message = message;
 
- 	}
 
- }
 
- const generateCodeFrame = (string, location, highlightCode = true) =>
 
- 	codeFrameColumns_1(string, {start: location}, {highlightCode});
 
- const getErrorLocation = (string, message) => {
 
- 	const match = message.match(/in JSON at position (?<index>\d+)(?: \(line (?<line>\d+) column (?<column>\d+)\))?$/);
 
- 	if (!match) {
 
- 		return;
 
- 	}
 
- 	let {index, line, column} = match.groups;
 
- 	if (line && column) {
 
- 		return {line: Number(line), column: Number(column)};
 
- 	}
 
- 	index = Number(index);
 
- 	if (index === string.length) {
 
- 		const {line, column} = indexToLineColumn(string, string.length - 1, {oneBased: true});
 
- 		return {line, column: column + 1};
 
- 	}
 
- 	return indexToLineColumn(string, index, {oneBased: true});
 
- };
 
- const addCodePointToUnexpectedToken = message => message.replace(
 
- 	/(?<=^Unexpected token )(?<quote>')?(.)\k<quote>/,
 
- 	(_, _quote, token) => `"${token}"(${getCodePoint(token)})`,
 
- );
 
- function parseJson(string, reviver, fileName) {
 
- 	if (typeof reviver === 'string') {
 
- 		fileName = reviver;
 
- 		reviver = undefined;
 
- 	}
 
- 	let message;
 
- 	try {
 
- 		return JSON.parse(string, reviver);
 
- 	} catch (error) {
 
- 		message = error.message;
 
- 	}
 
- 	let location;
 
- 	if (string) {
 
- 		location = getErrorLocation(string, message);
 
- 		message = addCodePointToUnexpectedToken(message);
 
- 	} else {
 
- 		message += ' while parsing empty string';
 
- 	}
 
- 	const jsonError = new JSONError(message);
 
- 	jsonError.fileName = fileName;
 
- 	if (location) {
 
- 		jsonError.codeFrame = generateCodeFrame(string, location);
 
- 		jsonError.rawCodeFrame = generateCodeFrame(string, location, /* highlightCode */ false);
 
- 	}
 
- 	throw jsonError;
 
- }
 
- function toPath(urlOrPath) {
 
- 	return urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;
 
- }
 
- const getPackagePath = cwd => path$1.resolve(toPath(cwd) ?? '.', 'package.json');
 
- const _readPackage = (file, normalize) => {
 
- 	const json = typeof file === 'string'
 
- 		? parseJson(file)
 
- 		: file;
 
- 	if (normalize) {
 
- 		normalizePackageData(json);
 
- 	}
 
- 	return json;
 
- };
 
- function readPackageSync({cwd, normalize = true} = {}) {
 
- 	const packageFile = fs$1.readFileSync(getPackagePath(cwd), 'utf8');
 
- 	return _readPackage(packageFile, normalize);
 
- }
 
- function readPackageUpSync(options) {
 
- 	const filePath = findUpSync('package.json', options);
 
- 	if (!filePath) {
 
- 		return;
 
- 	}
 
- 	return {
 
- 		packageJson: readPackageSync({...options, cwd: path$1.dirname(filePath)}),
 
- 		path: filePath,
 
- 	};
 
- }
 
- const handlePreserveConsecutiveUppercase = (decamelized, separator) => {
 
- 	// Lowercase all single uppercase characters. As we
 
- 	// want to preserve uppercase sequences, we cannot
 
- 	// simply lowercase the separated string at the end.
 
- 	// `data_For_USACounties` → `data_for_USACounties`
 
- 	decamelized = decamelized.replace(
 
- 		/((?<![\p{Uppercase_Letter}\d])[\p{Uppercase_Letter}\d](?![\p{Uppercase_Letter}\d]))/gu,
 
- 		$0 => $0.toLowerCase(),
 
- 	);
 
- 	// Remaining uppercase sequences will be separated from lowercase sequences.
 
- 	// `data_For_USACounties` → `data_for_USA_counties`
 
- 	return decamelized.replace(
 
- 		/(\p{Uppercase_Letter}+)(\p{Uppercase_Letter}\p{Lowercase_Letter}+)/gu,
 
- 		(_, $1, $2) => $1 + separator + $2.toLowerCase(),
 
- 	);
 
- };
 
- function decamelize(
 
- 	text,
 
- 	{
 
- 		separator = '_',
 
- 		preserveConsecutiveUppercase = false,
 
- 	} = {},
 
- ) {
 
- 	if (!(typeof text === 'string' && typeof separator === 'string')) {
 
- 		throw new TypeError(
 
- 			'The `text` and `separator` arguments should be of type `string`',
 
- 		);
 
- 	}
 
- 	// Checking the second character is done later on. Therefore process shorter strings here.
 
- 	if (text.length < 2) {
 
- 		return preserveConsecutiveUppercase ? text : text.toLowerCase();
 
- 	}
 
- 	const replacement = `$1${separator}$2`;
 
- 	// Split lowercase sequences followed by uppercase character.
 
- 	// `dataForUSACounties` → `data_For_USACounties`
 
- 	// `myURLstring → `my_URLstring`
 
- 	const decamelized = text.replace(
 
- 		/([\p{Lowercase_Letter}\d])(\p{Uppercase_Letter})/gu,
 
- 		replacement,
 
- 	);
 
- 	if (preserveConsecutiveUppercase) {
 
- 		return handlePreserveConsecutiveUppercase(decamelized, separator);
 
- 	}
 
- 	// Split multiple uppercase characters followed by one or more lowercase characters.
 
- 	// `my_URLstring` → `my_ur_lstring`
 
- 	return decamelized
 
- 		.replace(
 
- 			/(\p{Uppercase_Letter})(\p{Uppercase_Letter}\p{Lowercase_Letter}+)/gu,
 
- 			replacement,
 
- 		)
 
- 		.toLowerCase();
 
- }
 
- var minimistOptions = {exports: {}};
 
- var toString$1 = Object.prototype.toString;
 
- var isPlainObj = function (x) {
 
- 	var prototype;
 
- 	return toString$1.call(x) === '[object Object]' && (prototype = Object.getPrototypeOf(x), prototype === null || prototype === Object.getPrototypeOf({}));
 
- };
 
- var arrify$1 = function (val) {
 
- 	if (val === null || val === undefined) {
 
- 		return [];
 
- 	}
 
- 	return Array.isArray(val) ? val : [val];
 
- };
 
- var toString = Object.prototype.toString;
 
- var kindOf$1 = function kindOf(val) {
 
-   if (val === void 0) return 'undefined';
 
-   if (val === null) return 'null';
 
-   var type = typeof val;
 
-   if (type === 'boolean') return 'boolean';
 
-   if (type === 'string') return 'string';
 
-   if (type === 'number') return 'number';
 
-   if (type === 'symbol') return 'symbol';
 
-   if (type === 'function') {
 
-     return isGeneratorFn(val) ? 'generatorfunction' : 'function';
 
-   }
 
-   if (isArray(val)) return 'array';
 
-   if (isBuffer(val)) return 'buffer';
 
-   if (isArguments(val)) return 'arguments';
 
-   if (isDate(val)) return 'date';
 
-   if (isError(val)) return 'error';
 
-   if (isRegexp(val)) return 'regexp';
 
-   switch (ctorName(val)) {
 
-     case 'Symbol': return 'symbol';
 
-     case 'Promise': return 'promise';
 
-     // Set, Map, WeakSet, WeakMap
 
-     case 'WeakMap': return 'weakmap';
 
-     case 'WeakSet': return 'weakset';
 
-     case 'Map': return 'map';
 
-     case 'Set': return 'set';
 
-     // 8-bit typed arrays
 
-     case 'Int8Array': return 'int8array';
 
-     case 'Uint8Array': return 'uint8array';
 
-     case 'Uint8ClampedArray': return 'uint8clampedarray';
 
-     // 16-bit typed arrays
 
-     case 'Int16Array': return 'int16array';
 
-     case 'Uint16Array': return 'uint16array';
 
-     // 32-bit typed arrays
 
-     case 'Int32Array': return 'int32array';
 
-     case 'Uint32Array': return 'uint32array';
 
-     case 'Float32Array': return 'float32array';
 
-     case 'Float64Array': return 'float64array';
 
-   }
 
-   if (isGeneratorObj(val)) {
 
-     return 'generator';
 
-   }
 
-   // Non-plain objects
 
-   type = toString.call(val);
 
-   switch (type) {
 
-     case '[object Object]': return 'object';
 
-     // iterators
 
-     case '[object Map Iterator]': return 'mapiterator';
 
-     case '[object Set Iterator]': return 'setiterator';
 
-     case '[object String Iterator]': return 'stringiterator';
 
-     case '[object Array Iterator]': return 'arrayiterator';
 
-   }
 
-   // other
 
-   return type.slice(8, -1).toLowerCase().replace(/\s/g, '');
 
- };
 
- function ctorName(val) {
 
-   return typeof val.constructor === 'function' ? val.constructor.name : null;
 
- }
 
- function isArray(val) {
 
-   if (Array.isArray) return Array.isArray(val);
 
-   return val instanceof Array;
 
- }
 
- function isError(val) {
 
-   return val instanceof Error || (typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number');
 
- }
 
- function isDate(val) {
 
-   if (val instanceof Date) return true;
 
-   return typeof val.toDateString === 'function'
 
-     && typeof val.getDate === 'function'
 
-     && typeof val.setDate === 'function';
 
- }
 
- function isRegexp(val) {
 
-   if (val instanceof RegExp) return true;
 
-   return typeof val.flags === 'string'
 
-     && typeof val.ignoreCase === 'boolean'
 
-     && typeof val.multiline === 'boolean'
 
-     && typeof val.global === 'boolean';
 
- }
 
- function isGeneratorFn(name, val) {
 
-   return ctorName(name) === 'GeneratorFunction';
 
- }
 
- function isGeneratorObj(val) {
 
-   return typeof val.throw === 'function'
 
-     && typeof val.return === 'function'
 
-     && typeof val.next === 'function';
 
- }
 
- function isArguments(val) {
 
-   try {
 
-     if (typeof val.length === 'number' && typeof val.callee === 'function') {
 
-       return true;
 
-     }
 
-   } catch (err) {
 
-     if (err.message.indexOf('callee') !== -1) {
 
-       return true;
 
-     }
 
-   }
 
-   return false;
 
- }
 
- /**
 
-  * If you need to support Safari 5-7 (8-10 yr-old browser),
 
-  * take a look at https://github.com/feross/is-buffer
 
-  */
 
- function isBuffer(val) {
 
-   if (val.constructor && typeof val.constructor.isBuffer === 'function') {
 
-     return val.constructor.isBuffer(val);
 
-   }
 
-   return false;
 
- }
 
- const isPlainObject = isPlainObj;
 
- const arrify = arrify$1;
 
- const kindOf = kindOf$1;
 
- const push = (obj, prop, value) => {
 
- 	if (!obj[prop]) {
 
- 		obj[prop] = [];
 
- 	}
 
- 	obj[prop].push(value);
 
- };
 
- const insert = (obj, prop, key, value) => {
 
- 	if (!obj[prop]) {
 
- 		obj[prop] = {};
 
- 	}
 
- 	obj[prop][key] = value;
 
- };
 
- const prettyPrint = output => {
 
- 	return Array.isArray(output) ?
 
- 		`[${output.map(prettyPrint).join(', ')}]` :
 
- 		kindOf(output) === 'string' ? JSON.stringify(output) : output;
 
- };
 
- const resolveType = value => {
 
- 	if (Array.isArray(value) && value.length > 0) {
 
- 		const [element] = value;
 
- 		return `${kindOf(element)}-array`;
 
- 	}
 
- 	return kindOf(value);
 
- };
 
- const normalizeExpectedType = (type, defaultValue) => {
 
- 	const inferredType = type === 'array' ? 'string-array' : type;
 
- 	if (arrayTypes.includes(inferredType) && Array.isArray(defaultValue) && defaultValue.length === 0) {
 
- 		return 'array';
 
- 	}
 
- 	return inferredType;
 
- };
 
- const passthroughOptions = ['stopEarly', 'unknown', '--'];
 
- const primitiveTypes = ['string', 'boolean', 'number'];
 
- const arrayTypes = primitiveTypes.map(t => `${t}-array`);
 
- const availableTypes = [...primitiveTypes, 'array', ...arrayTypes];
 
- const buildOptions = options => {
 
- 	options = options || {};
 
- 	const result = {};
 
- 	passthroughOptions.forEach(key => {
 
- 		if (options[key]) {
 
- 			result[key] = options[key];
 
- 		}
 
- 	});
 
- 	Object.keys(options).forEach(key => {
 
- 		let value = options[key];
 
- 		if (key === 'arguments') {
 
- 			key = '_';
 
- 		}
 
- 		// If short form is used
 
- 		// convert it to long form
 
- 		// e.g. { 'name': 'string' }
 
- 		if (typeof value === 'string') {
 
- 			value = {type: value};
 
- 		}
 
- 		if (isPlainObject(value)) {
 
- 			const props = value;
 
- 			const {type} = props;
 
- 			if (type) {
 
- 				if (!availableTypes.includes(type)) {
 
- 					throw new TypeError(`Expected type of "${key}" to be one of ${prettyPrint(availableTypes)}, got ${prettyPrint(type)}`);
 
- 				}
 
- 				if (arrayTypes.includes(type)) {
 
- 					const [elementType] = type.split('-');
 
- 					push(result, 'array', {key, [elementType]: true});
 
- 				} else {
 
- 					push(result, type, key);
 
- 				}
 
- 			}
 
- 			if ({}.hasOwnProperty.call(props, 'default')) {
 
- 				const {default: defaultValue} = props;
 
- 				const defaultType = resolveType(defaultValue);
 
- 				const expectedType = normalizeExpectedType(type, defaultValue);
 
- 				if (expectedType && expectedType !== defaultType) {
 
- 					throw new TypeError(`Expected "${key}" default value to be of type "${expectedType}", got ${prettyPrint(defaultType)}`);
 
- 				}
 
- 				insert(result, 'default', key, defaultValue);
 
- 			}
 
- 			arrify(props.alias).forEach(alias => {
 
- 				insert(result, 'alias', alias, key);
 
- 			});
 
- 		}
 
- 	});
 
- 	return result;
 
- };
 
- minimistOptions.exports = buildOptions;
 
- minimistOptions.exports.default = buildOptions;
 
- var minimistOptionsExports = minimistOptions.exports;
 
- const constructParserOptions = /*@__PURE__*/getDefaultExportFromCjs(minimistOptionsExports);
 
- var mapObj = {exports: {}};
 
- const isObject$1 = value => typeof value === 'object' && value !== null;
 
- const mapObjectSkip = Symbol('skip');
 
- // Customized for this use-case
 
- const isObjectCustom = value =>
 
- 	isObject$1(value) &&
 
- 	!(value instanceof RegExp) &&
 
- 	!(value instanceof Error) &&
 
- 	!(value instanceof Date);
 
- const mapObject = (object, mapper, options, isSeen = new WeakMap()) => {
 
- 	options = {
 
- 		deep: false,
 
- 		target: {},
 
- 		...options
 
- 	};
 
- 	if (isSeen.has(object)) {
 
- 		return isSeen.get(object);
 
- 	}
 
- 	isSeen.set(object, options.target);
 
- 	const {target} = options;
 
- 	delete options.target;
 
- 	const mapArray = array => array.map(element => isObjectCustom(element) ? mapObject(element, mapper, options, isSeen) : element);
 
- 	if (Array.isArray(object)) {
 
- 		return mapArray(object);
 
- 	}
 
- 	for (const [key, value] of Object.entries(object)) {
 
- 		const mapResult = mapper(key, value, object);
 
- 		if (mapResult === mapObjectSkip) {
 
- 			continue;
 
- 		}
 
- 		let [newKey, newValue, {shouldRecurse = true} = {}] = mapResult;
 
- 		// Drop `__proto__` keys.
 
- 		if (newKey === '__proto__') {
 
- 			continue;
 
- 		}
 
- 		if (options.deep && shouldRecurse && isObjectCustom(newValue)) {
 
- 			newValue = Array.isArray(newValue) ?
 
- 				mapArray(newValue) :
 
- 				mapObject(newValue, mapper, options, isSeen);
 
- 		}
 
- 		target[newKey] = newValue;
 
- 	}
 
- 	return target;
 
- };
 
- mapObj.exports = (object, mapper, options) => {
 
- 	if (!isObject$1(object)) {
 
- 		throw new TypeError(`Expected an object, got \`${object}\` (${typeof object})`);
 
- 	}
 
- 	return mapObject(object, mapper, options);
 
- };
 
- mapObj.exports.mapObjectSkip = mapObjectSkip;
 
- var mapObjExports = mapObj.exports;
 
- const mapObject$1 = /*@__PURE__*/getDefaultExportFromCjs(mapObjExports);
 
- const has = (array, key) => array.some(element => {
 
- 	if (typeof element === 'string') {
 
- 		return element === key;
 
- 	}
 
- 	element.lastIndex = 0;
 
- 	return element.test(key);
 
- });
 
- const cache = new QuickLRU({maxSize: 100_000});
 
- // Reproduces behavior from `map-obj`.
 
- const isObject = value =>
 
- 	typeof value === 'object'
 
- 		&& value !== null
 
- 		&& !(value instanceof RegExp)
 
- 		&& !(value instanceof Error)
 
- 		&& !(value instanceof Date);
 
- const transform = (input, options = {}) => {
 
- 	if (!isObject(input)) {
 
- 		return input;
 
- 	}
 
- 	const {
 
- 		separator = '_',
 
- 		exclude,
 
- 		deep = false,
 
- 	} = options;
 
- 	const makeMapper = parentPath => (key, value) => {
 
- 		if (deep && isObject(value)) {
 
- 			value = mapObject$1(value, makeMapper());
 
- 		}
 
- 		if (!(exclude && has(exclude, key))) {
 
- 			const cacheKey = `${separator}${key}`;
 
- 			if (cache.has(cacheKey)) {
 
- 				key = cache.get(cacheKey);
 
- 			} else {
 
- 				const returnValue = decamelize(key, {separator});
 
- 				if (key.length < 100) { // Prevent abuse
 
- 					cache.set(cacheKey, returnValue);
 
- 				}
 
- 				key = returnValue;
 
- 			}
 
- 		}
 
- 		return [key, value];
 
- 	};
 
- 	return mapObject$1(input, makeMapper());
 
- };
 
- function decamelizeKeys(input, options) {
 
- 	if (Array.isArray(input)) {
 
- 		return Object.keys(input).map(key => transform(input[key], options));
 
- 	}
 
- 	return transform(input, options);
 
- }
 
- export { readPackageUpSync as a, constructParserOptions as b, camelcaseKeys as c, decamelizeKeys as d, decamelize as e, normalizePackageData as n, redent as r, trimNewlines as t, yargsParser as y };
 
 
  |