{"version":3,"sources":["webpack:///./src/assets/images/logos/enugu.png","webpack:///./src/assets/images/logos/kaduna.png","webpack:///./src/assets/images/logos/abia.png","webpack:///./node_modules/@iconify/vue2/dist/iconify.mjs","webpack:///./src/assets/images/logos sync ^\\.\\/.*\\.png$"],"names":["module","exports","matchIconName","stringToIcon","value","validate","allowSimpleName","provider","colonSeparated","split","slice","length","shift","name2","pop","prefix","result","name","validateIconName","dashSeparated","join","icon","match","defaultIconDimensions","Object","freeze","left","top","width","height","defaultIconTransformations","rotate","vFlip","hFlip","defaultIconProps","defaultExtendedIconProps","body","hidden","mergeIconTransformations","obj1","obj2","mergeIconData","parent","child","key","getIconsTree","data","names","icons","aliases","create","resolved","resolve","concat","keys","forEach","internalGetIconData","tree","currentProps","parse","parseIconSet","callback","not_found","Array","push","item","optionalPropertyDefaults","checkOptionalProps","defaults","prop","quicklyValidateIconSet","obj","dataStorage","newStorage","missing","Set","getStorage","providerStorage","addIconSet","storage","add","addIconToStorage","err","simpleNames","allowSimpleNames","allow","getIconData","iconName","has","addIcon","addCollection","added","defaultIconSizeCustomisations","defaultIconCustomisations","unitsSplit","unitsTest","calculateSize","size","ratio","precision","Math","ceil","oldParts","newParts","code","isNumber","test","num","parseFloat","isNaN","isUnsetKeyword","iconToSVG","customisations","fullIcon","fullCustomisations","box","props","transformations","tempValue","rotation","toString","floor","unshift","customisationsWidth","customisationsHeight","boxWidth","boxHeight","attributes","setAttr","viewBox","regex","randomPrefix","Date","now","random","counter","replaceIDs","ids","exec","suffix","id","newID","escapedID","replace","RegExp","setAPIModule","getAPIModule","createAPIConfig","source","resources","path","maxURL","timeout","index","dataAfterTimeout","configStorage","fallBackAPISources","fallBackAPI","addAPIProvider","customConfig","config","getAPIConfig","detectFetch","fetch","fetchModule","calculateMaxLength","maxHostLength","host","max","url","shouldAbort","status","prepare","results","maxLength","type","getPath","send","params","iconsList","urlParams","URLSearchParams","uri","defaultError","then","response","json","setTimeout","catch","fetchAPIModule","sortIcons","loaded","pending","sort","a","b","localeCompare","lastIcon","localStorage","list","removeCallback","storages","items","loaderCallbacks","filter","row","updateCallbacks","pendingCallbacksFlag","hasPending","oldLength","abort","idCounter","storeCallback","pendingSources","bind","listToIcons","defaultConfig","sendQuery","payload","query","done","resourcesCount","startIndex","nextIndex","startTime","lastError","queriesSent","timer","queue","doneCallbacks","resetTimer","clearTimeout","subscribe","overwrite","getQueryStatus","queriesPending","failQuery","clearQueue","moduleResponse","isError","queued","execNext","indexOf","resource","status2","initRedundancy","cfg","queries","cleanup","queryCallback","doneCallback","query2","error","find","instance","setIndex","getIndex","emptyCallback$1","redundancyCache","getRedundancyCache","redundancy","cachedReundancy","sendAPIQuery","target","api","cached","moduleKey","browserCacheVersion","browserCachePrefix","browserCacheCountKey","browserCacheVersionKey","browserStorageHour","browserStorageCacheExpiration","getStoredItem","func","getItem","setStoredItem","setItem","removeStoredItem","removeItem","setBrowserStorageItemsCount","getBrowserStorageItemsCount","parseInt","browserStorageConfig","local","session","browserStorageEmptyItems","browserStorageStatus","setBrowserStorageStatus","_window","window","getBrowserStorage","attr","iterateBrowserStorage","version","total2","i","minTime","parseItem","JSON","total","initBrowserStorage","iconSet","lastModified","lastModifiedCached","min","updateLastModified","lastValue","storeInBrowserStorage","store","set","delete","from","stringify","assign","emptyCallback","loadedNewIcons","iconsLoaderFlag","loadNewIcons","iconsToLoad","iconsQueueFlag","icons2","parsed","pendingIcons","console","loadIcons","cleanedIcons","sortedIcons","callCallback","newIcons","sources","lastProvider","lastPrefix","providerNewIcons","pendingQueue","mergeCustomisations","valueType","separator","flipFromString","custom","flip","str","trim","rotateFromString","defaultValue","units","value2","defaultExtendedIconCustomisations","inline","svgDefaults","customisationAliases","render","createElement","contextData","componentProps","style","color","alias","verticalAlign","localCounter","attrs","domProps","innerHTML","class","document","IconifyPreload","preload","e","IconifyProviders","providers","emptyIcon","Icon","extend","inheritAttrs","iconMounted","this","_name","_loadingIcon","abortLoading","methods","onload","$forceUpdate","classes","$attrs","context","$data","getIcon","onLoad","map","webpackContext","req","webpackContextResolve","__webpack_require__","o","Error"],"mappings":"wHAAAA,EAAOC,QAAU,IAA0B,0B,uBCA3CD,EAAOC,QAAU,IAA0B,2B,uBCA3CD,EAAOC,QAAU,IAA0B,yB,oCCA3C,mDAEA,MAAMC,EAAgB,2BAChBC,EAAe,CAACC,EAAOC,EAAUC,EAAiBC,EAAW,MACjE,MAAMC,EAAiBJ,EAAMK,MAAM,KACnC,GAA0B,MAAtBL,EAAMM,MAAM,EAAG,GAAY,CAC7B,GAAIF,EAAeG,OAAS,GAAKH,EAAeG,OAAS,EACvD,OAAO,KAETJ,EAAWC,EAAeI,QAAQF,MAAM,GAE1C,GAAIF,EAAeG,OAAS,IAAMH,EAAeG,OAC/C,OAAO,KAET,GAAIH,EAAeG,OAAS,EAAG,CAC7B,MAAME,EAAQL,EAAeM,MACvBC,EAASP,EAAeM,MACxBE,EAAS,CACbT,SAAUC,EAAeG,OAAS,EAAIH,EAAe,GAAKD,EAC1DQ,SACAE,KAAMJ,GAER,OAAOR,IAAaa,EAAiBF,GAAU,KAAOA,EAExD,MAAMC,EAAOT,EAAe,GACtBW,EAAgBF,EAAKR,MAAM,KACjC,GAAIU,EAAcR,OAAS,EAAG,CAC5B,MAAMK,EAAS,CACbT,WACAQ,OAAQI,EAAcP,QACtBK,KAAME,EAAcC,KAAK,MAE3B,OAAOf,IAAaa,EAAiBF,GAAU,KAAOA,EAExD,GAAIV,GAAgC,KAAbC,EAAiB,CACtC,MAAMS,EAAS,CACbT,WACAQ,OAAQ,GACRE,QAEF,OAAOZ,IAAaa,EAAiBF,EAAQV,GAAmB,KAAOU,EAEzE,OAAO,MAEHE,EAAmB,CAACG,EAAMf,MACzBe,KAGwB,KAAlBA,EAAKd,WAAmBc,EAAKd,SAASe,MAAMpB,MAAoBI,GAAmC,KAAhBe,EAAKN,QAAiBM,EAAKN,OAAOO,MAAMpB,MAAmBmB,EAAKJ,KAAKK,MAAMpB,IAGrKqB,EAAwBC,OAAOC,OACnC,CACEC,KAAM,EACNC,IAAK,EACLC,MAAO,GACPC,OAAQ,KAGNC,EAA6BN,OAAOC,OAAO,CAC/CM,OAAQ,EACRC,OAAO,EACPC,OAAO,IAEHC,EAAmBV,OAAOC,OAAO,IAClCF,KACAO,IAECK,EAA2BX,OAAOC,OAAO,IAC1CS,EACHE,KAAM,GACNC,QAAQ,IAGV,SAASC,EAAyBC,EAAMC,GACtC,MAAMxB,EAAS,IACVuB,EAAKN,SAAWO,EAAKP,QACxBjB,EAAOiB,OAAQ,IAEZM,EAAKP,SAAWQ,EAAKR,QACxBhB,EAAOgB,OAAQ,GAEjB,MAAMD,IAAWQ,EAAKR,QAAU,IAAMS,EAAKT,QAAU,IAAM,EAI3D,OAHIA,IACFf,EAAOe,OAASA,GAEXf,EAGT,SAASyB,EAAcC,EAAQC,GAC7B,MAAM3B,EAASsB,EAAyBI,EAAQC,GAChD,IAAK,MAAMC,KAAOT,EACZS,KAAOd,EACLc,KAAOF,KAAYE,KAAO5B,KAC5BA,EAAO4B,GAAOd,EAA2Bc,IAElCA,KAAOD,EAChB3B,EAAO4B,GAAOD,EAAMC,GACXA,KAAOF,IAChB1B,EAAO4B,GAAOF,EAAOE,IAGzB,OAAO5B,EAGT,SAAS6B,EAAaC,EAAMC,GAC1B,MAAMC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,SAA2BzB,OAAO0B,OAAO,MACxDC,EAA2B3B,OAAO0B,OAAO,MAC/C,SAASE,EAAQnC,GACf,GAAI+B,EAAM/B,GACR,OAAOkC,EAASlC,GAAQ,GAE1B,KAAMA,KAAQkC,GAAW,CACvBA,EAASlC,GAAQ,KACjB,MAAMyB,EAASO,EAAQhC,IAASgC,EAAQhC,GAAMyB,OACxCtC,EAAQsC,GAAUU,EAAQV,GAC5BtC,IACF+C,EAASlC,GAAQ,CAACyB,GAAQW,OAAOjD,IAGrC,OAAO+C,EAASlC,GAGlB,OADC8B,GAASvB,OAAO8B,KAAKN,GAAOK,OAAO7B,OAAO8B,KAAKL,KAAWM,QAAQH,GAC5DD,EAGT,SAASK,EAAoBV,EAAM7B,EAAMwC,GACvC,MAAMT,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,SAA2BzB,OAAO0B,OAAO,MAC9D,IAAIQ,EAAe,GACnB,SAASC,EAAM9C,GACb6C,EAAejB,EACbO,EAAMnC,IAAUoC,EAAQpC,GACxB6C,GAKJ,OAFAC,EAAM1C,GACNwC,EAAKF,QAAQI,GACNlB,EAAcK,EAAMY,GAG7B,SAASE,EAAad,EAAMe,GAC1B,MAAMd,EAAQ,GACd,GAAoB,kBAATD,GAA2C,kBAAfA,EAAKE,MAC1C,OAAOD,EAELD,EAAKgB,qBAAqBC,OAC5BjB,EAAKgB,UAAUP,QAAStC,IACtB4C,EAAS5C,EAAM,MACf8B,EAAMiB,KAAK/C,KAGf,MAAMwC,EAAOZ,EAAaC,GAC1B,IAAK,MAAM7B,KAAQwC,EAAM,CACvB,MAAMQ,EAAOR,EAAKxC,GACdgD,IACFJ,EAAS5C,EAAMuC,EAAoBV,EAAM7B,EAAMgD,IAC/ClB,EAAMiB,KAAK/C,IAGf,OAAO8B,EAGT,MAAMmB,EAA2B,CAC/B3D,SAAU,GACV0C,QAAS,GACTa,UAAW,MACRvC,GAEL,SAAS4C,EAAmBF,EAAMG,GAChC,IAAK,MAAMC,KAAQD,EACjB,GAAIC,KAAQJ,UAAeA,EAAKI,YAAiBD,EAASC,GACxD,OAAO,EAGX,OAAO,EAET,SAASC,EAAuBC,GAC9B,GAAmB,kBAARA,GAA4B,OAARA,EAC7B,OAAO,KAET,MAAMzB,EAAOyB,EACb,GAA2B,kBAAhBzB,EAAK/B,SAAwBwD,EAAIvB,OAA8B,kBAAduB,EAAIvB,MAC9D,OAAO,KAET,IAAKmB,EAAmBI,EAAKL,GAC3B,OAAO,KAET,MAAMlB,EAAQF,EAAKE,MACnB,IAAK,MAAM/B,KAAQ+B,EAAO,CACxB,MAAM3B,EAAO2B,EAAM/B,GACnB,IAAKA,EAAKK,MAAMpB,IAAuC,kBAAdmB,EAAKe,OAAsB+B,EAClE9C,EACAc,GAEA,OAAO,KAGX,MAAMc,EAAUH,EAAKG,SAA2BzB,OAAO0B,OAAO,MAC9D,IAAK,MAAMjC,KAAQgC,EAAS,CAC1B,MAAM5B,EAAO4B,EAAQhC,GACfyB,EAASrB,EAAKqB,OACpB,IAAKzB,EAAKK,MAAMpB,IAAoC,kBAAXwC,IAAwBM,EAAMN,KAAYO,EAAQP,KAAYyB,EACrG9C,EACAc,GAEA,OAAO,KAGX,OAAOW,EAGT,MAAM0B,EAA8BhD,OAAO0B,OAAO,MAClD,SAASuB,EAAWlE,EAAUQ,GAC5B,MAAO,CACLR,WACAQ,SACAiC,MAAuBxB,OAAO0B,OAAO,MACrCwB,QAAyB,IAAIC,KAGjC,SAASC,EAAWrE,EAAUQ,GAC5B,MAAM8D,EAAkBL,EAAYjE,KAAciE,EAAYjE,GAA4BiB,OAAO0B,OAAO,OACxG,OAAO2B,EAAgB9D,KAAY8D,EAAgB9D,GAAU0D,EAAWlE,EAAUQ,IAEpF,SAAS+D,EAAWC,EAASjC,GAC3B,OAAKwB,EAAuBxB,GAGrBc,EAAad,EAAM,CAAC7B,EAAMI,KAC3BA,EACF0D,EAAQ/B,MAAM/B,GAAQI,EAEtB0D,EAAQL,QAAQM,IAAI/D,KANf,GAUX,SAASgE,EAAiBF,EAAS9D,EAAMI,GACvC,IACE,GAAyB,kBAAdA,EAAKe,KAEd,OADA2C,EAAQ/B,MAAM/B,GAAQ,IAAKI,IACpB,EAET,MAAO6D,IAET,OAAO,EAmBT,IAAIC,GAAc,EAClB,SAASC,EAAiBC,GAIxB,MAHqB,mBAAVA,IACTF,EAAcE,GAETF,EAET,SAASG,EAAYrE,GACnB,MAAMI,EAAuB,kBAATJ,EAAoBd,EAAac,GAAM,EAAMkE,GAAelE,EAChF,GAAII,EAAM,CACR,MAAM0D,EAAUH,EAAWvD,EAAKd,SAAUc,EAAKN,QACzCwE,EAAWlE,EAAKJ,KACtB,OAAO8D,EAAQ/B,MAAMuC,KAAcR,EAAQL,QAAQc,IAAID,GAAY,UAAO,IAG9E,SAASE,EAAQxE,EAAM6B,GACrB,MAAMzB,EAAOlB,EAAac,GAAM,EAAMkE,GACtC,IAAK9D,EACH,OAAO,EAET,MAAM0D,EAAUH,EAAWvD,EAAKd,SAAUc,EAAKN,QAC/C,OAAOkE,EAAiBF,EAAS1D,EAAKJ,KAAM6B,GAE9C,SAAS4C,EAAc5C,EAAMvC,GAC3B,GAAoB,kBAATuC,EACT,OAAO,EAKT,GAHwB,kBAAbvC,IACTA,EAAWuC,EAAKvC,UAAY,IAE1B4E,IAAgB5E,IAAauC,EAAK/B,OAAQ,CAC5C,IAAI4E,GAAQ,EASZ,OARIrB,EAAuBxB,KACzBA,EAAK/B,OAAS,GACd6C,EAAad,EAAM,CAAC7B,EAAMI,KACpBA,GAAQoE,EAAQxE,EAAMI,KACxBsE,GAAQ,MAIPA,EAET,MAAM5E,EAAS+B,EAAK/B,OACpB,IAAKG,EAAiB,CACpBX,WACAQ,SACAE,KAAM,MAEN,OAAO,EAET,MAAM8D,EAAUH,EAAWrE,EAAUQ,GACrC,QAAS+D,EAAWC,EAASjC,GAa/B,MAAM8C,EAAgCpE,OAAOC,OAAO,CAClDG,MAAO,KACPC,OAAQ,OAEJgE,EAA4BrE,OAAOC,OAAO,IAC3CmE,KACA9D,IAGCgE,EAAa,4BACbC,EAAY,4BAClB,SAASC,EAAcC,EAAMC,EAAOC,GAClC,GAAc,IAAVD,EACF,OAAOD,EAGT,GADAE,EAAYA,GAAa,IACL,kBAATF,EACT,OAAOG,KAAKC,KAAKJ,EAAOC,EAAQC,GAAaA,EAE/C,GAAoB,kBAATF,EACT,OAAOA,EAET,MAAMK,EAAWL,EAAKxF,MAAMqF,GAC5B,GAAiB,OAAbQ,IAAsBA,EAAS3F,OACjC,OAAOsF,EAET,MAAMM,EAAW,GACjB,IAAIC,EAAOF,EAAS1F,QAChB6F,EAAWV,EAAUW,KAAKF,GAC9B,MAAO,EAAM,CACX,GAAIC,EAAU,CACZ,MAAME,EAAMC,WAAWJ,GACnBK,MAAMF,GACRJ,EAASvC,KAAKwC,GAEdD,EAASvC,KAAKoC,KAAKC,KAAKM,EAAMT,EAAQC,GAAaA,QAGrDI,EAASvC,KAAKwC,GAGhB,GADAA,EAAOF,EAAS1F,aACH,IAAT4F,EACF,OAAOD,EAASnF,KAAK,IAEvBqF,GAAYA,GAIhB,MAAMK,EAAkB1G,GAAoB,UAAVA,GAA+B,cAAVA,GAAmC,SAAVA,EAChF,SAAS2G,EAAU1F,EAAM2F,GACvB,MAAMC,EAAW,IACZ/E,KACAb,GAEC6F,EAAqB,IACtBrB,KACAmB,GAECG,EAAM,CACVzF,KAAMuF,EAASvF,KACfC,IAAKsF,EAAStF,IACdC,MAAOqF,EAASrF,MAChBC,OAAQoF,EAASpF,QAEnB,IAAIO,EAAO6E,EAAS7E,KACpB,CAAC6E,EAAUC,GAAoB3D,QAAS6D,IACtC,MAAMC,EAAkB,GAClBpF,EAAQmF,EAAMnF,MACdD,EAAQoF,EAAMpF,MACpB,IAkBIsF,EAlBAC,EAAWH,EAAMrF,OAuBrB,OAtBIE,EACED,EACFuF,GAAY,GAEZF,EAAgBrD,KACd,cAAgBmD,EAAIvF,MAAQuF,EAAIzF,MAAM8F,WAAa,KAAO,EAAIL,EAAIxF,KAAK6F,WAAa,KAEtFH,EAAgBrD,KAAK,eACrBmD,EAAIxF,IAAMwF,EAAIzF,KAAO,GAEdM,IACTqF,EAAgBrD,KACd,cAAgB,EAAImD,EAAIzF,MAAM8F,WAAa,KAAOL,EAAItF,OAASsF,EAAIxF,KAAK6F,WAAa,KAEvFH,EAAgBrD,KAAK,eACrBmD,EAAIxF,IAAMwF,EAAIzF,KAAO,GAGnB6F,EAAW,IACbA,GAAuC,EAA3BnB,KAAKqB,MAAMF,EAAW,IAEpCA,GAAsB,EACdA,GACN,KAAK,EACHD,EAAYH,EAAItF,OAAS,EAAIsF,EAAIxF,IACjC0F,EAAgBK,QACd,aAAeJ,EAAUE,WAAa,IAAMF,EAAUE,WAAa,KAErE,MACF,KAAK,EACHH,EAAgBK,QACd,eAAiBP,EAAIvF,MAAQ,EAAIuF,EAAIzF,MAAM8F,WAAa,KAAOL,EAAItF,OAAS,EAAIsF,EAAIxF,KAAK6F,WAAa,KAExG,MACF,KAAK,EACHF,EAAYH,EAAIvF,MAAQ,EAAIuF,EAAIzF,KAChC2F,EAAgBK,QACd,cAAgBJ,EAAUE,WAAa,IAAMF,EAAUE,WAAa,KAEtE,MAEAD,EAAW,IAAM,IACfJ,EAAIzF,OAASyF,EAAIxF,MACnB2F,EAAYH,EAAIzF,KAChByF,EAAIzF,KAAOyF,EAAIxF,IACfwF,EAAIxF,IAAM2F,GAERH,EAAIvF,QAAUuF,EAAItF,SACpByF,EAAYH,EAAIvF,MAChBuF,EAAIvF,MAAQuF,EAAItF,OAChBsF,EAAItF,OAASyF,IAGbD,EAAgB1G,SAClByB,EAAO,iBAAmBiF,EAAgBjG,KAAK,KAAO,KAAOgB,EAAO,UAGxE,MAAMuF,EAAsBT,EAAmBtF,MACzCgG,EAAuBV,EAAmBrF,OAC1CgG,EAAWV,EAAIvF,MACfkG,EAAYX,EAAItF,OACtB,IAAID,EACAC,EACwB,OAAxB8F,GACF9F,EAAkC,OAAzB+F,EAAgC,MAAiC,SAAzBA,EAAkCE,EAAYF,EAC/FhG,EAAQoE,EAAcnE,EAAQgG,EAAWC,KAEzClG,EAAgC,SAAxB+F,EAAiCE,EAAWF,EACpD9F,EAAkC,OAAzB+F,EAAgC5B,EAAcpE,EAAOkG,EAAYD,GAAqC,SAAzBD,EAAkCE,EAAYF,GAEtI,MAAMG,EAAa,GACbC,EAAU,CAAC3D,EAAMjE,KAChB0G,EAAe1G,KAClB2H,EAAW1D,GAAQjE,EAAMoH,aAM7B,OAHAQ,EAAQ,QAASpG,GACjBoG,EAAQ,SAAUnG,GAClBkG,EAAWE,QAAUd,EAAIzF,KAAK8F,WAAa,IAAML,EAAIxF,IAAI6F,WAAa,IAAMK,EAASL,WAAa,IAAMM,EAAUN,WAC3G,CACLO,aACA3F,QAIJ,MAAM8F,EAAQ,gBACRC,EAAe,YAAcC,KAAKC,MAAMb,SAAS,KAAuB,SAAhBpB,KAAKkC,SAAsB,GAAGd,SAAS,IACrG,IAAIe,EAAU,EACd,SAASC,EAAWpG,EAAMrB,EAASoH,GACjC,MAAMM,EAAM,GACZ,IAAInH,EACJ,MAAOA,EAAQ4G,EAAMQ,KAAKtG,GACxBqG,EAAIzE,KAAK1C,EAAM,IAEjB,IAAKmH,EAAI9H,OACP,OAAOyB,EAET,MAAMuG,EAAS,UAA4B,SAAhBvC,KAAKkC,SAAsBF,KAAKC,OAAOb,SAAS,IAU3E,OATAiB,EAAIlF,QAASqF,IACX,MAAMC,EAA0B,oBAAX9H,EAAwBA,EAAO6H,GAAM7H,GAAUwH,KAAWf,WACzEsB,EAAYF,EAAGG,QAAQ,sBAAuB,QACpD3G,EAAOA,EAAK2G,QACV,IAAIC,OAAO,WAAaF,EAAY,mBAAoB,KACxD,KAAOD,EAAQF,EAAS,QAG5BvG,EAAOA,EAAK2G,QAAQ,IAAIC,OAAOL,EAAQ,KAAM,IACtCvG,EAGT,MAAM2C,EAA0BvD,OAAO0B,OAAO,MAC9C,SAAS+F,EAAa1I,EAAU0D,GAC9Bc,EAAQxE,GAAY0D,EAEtB,SAASiF,EAAa3I,GACpB,OAAOwE,EAAQxE,IAAawE,EAAQ,IAGtC,SAASoE,EAAgBC,GACvB,IAAIC,EACJ,GAAgC,kBAArBD,EAAOC,UAChBA,EAAY,CAACD,EAAOC,gBAGpB,GADAA,EAAYD,EAAOC,YACbA,aAAqBtF,SAAWsF,EAAU1I,OAC9C,OAAO,KAGX,MAAMK,EAAS,CACbqI,YACAC,KAAMF,EAAOE,MAAQ,IACrBC,OAAQH,EAAOG,QAAU,IACzBxH,OAAQqH,EAAOrH,QAAU,IACzByH,QAASJ,EAAOI,SAAW,IAC3BlB,QAA0B,IAAlBc,EAAOd,OACfmB,MAAOL,EAAOK,OAAS,EACvBC,kBAA8C,IAA5BN,EAAOM,kBAE3B,OAAO1I,EAET,MAAM2I,EAAgCnI,OAAO0B,OAAO,MAC9C0G,EAAqB,CACzB,4BACA,0BAEIC,EAAc,GACpB,MAAOD,EAAmBjJ,OAAS,EACC,IAA9BiJ,EAAmBjJ,QAGjByF,KAAKkC,SAAW,GAFpBuB,EAAY7F,KAAK4F,EAAmBhJ,SAKlCiJ,EAAY7F,KAAK4F,EAAmB9I,OAO1C,SAASgJ,EAAevJ,EAAUwJ,GAChC,MAAMC,EAASb,EAAgBY,GAC/B,OAAe,OAAXC,IAGJL,EAAcpJ,GAAYyJ,GACnB,GAET,SAASC,EAAa1J,GACpB,OAAOoJ,EAAcpJ,GAZvBoJ,EAAc,IAAMR,EAAgB,CAClCE,UAAW,CAAC,8BAA8BhG,OAAOwG,KAiBnD,MAAMK,EAAc,KAClB,IAAIrG,EACJ,IAEE,GADAA,EAAWsG,MACa,oBAAbtG,EACT,OAAOA,EAET,MAAOqB,MAGX,IAAIkF,EAAcF,IAOlB,SAASG,EAAmB9J,EAAUQ,GACpC,MAAMiJ,EAASC,EAAa1J,GAC5B,IAAKyJ,EACH,OAAO,EAET,IAAIhJ,EACJ,GAAKgJ,EAAOT,OAEL,CACL,IAAIe,EAAgB,EACpBN,EAAOX,UAAU9F,QAASU,IACxB,MAAMsG,EAAOtG,EACbqG,EAAgBlE,KAAKoE,IAAIF,EAAeC,EAAK5J,UAE/C,MAAM8J,EAAM1J,EAAS,eACrBC,EAASgJ,EAAOT,OAASe,EAAgBN,EAAOV,KAAK3I,OAAS8J,EAAI9J,YARlEK,EAAS,EAUX,OAAOA,EAET,SAAS0J,EAAYC,GACnB,OAAkB,MAAXA,EAET,MAAMC,EAAU,CAACrK,EAAUQ,EAAQiC,KACjC,MAAM6H,EAAU,GACVC,EAAYT,EAAmB9J,EAAUQ,GACzCgK,EAAO,QACb,IAAI9G,EAAO,CACT8G,OACAxK,WACAQ,SACAiC,MAAO,IAELrC,EAAS,EAgBb,OAfAqC,EAAMO,QAAQ,CAACtC,EAAMwI,KACnB9I,GAAUM,EAAKN,OAAS,EACpBA,GAAUmK,GAAarB,EAAQ,IACjCoB,EAAQ7G,KAAKC,GACbA,EAAO,CACL8G,OACAxK,WACAQ,SACAiC,MAAO,IAETrC,EAASM,EAAKN,QAEhBsD,EAAKjB,MAAMgB,KAAK/C,KAElB4J,EAAQ7G,KAAKC,GACN4G,GAET,SAASG,GAAQzK,GACf,GAAwB,kBAAbA,EAAuB,CAChC,MAAMyJ,EAASC,EAAa1J,GAC5B,GAAIyJ,EACF,OAAOA,EAAOV,KAGlB,MAAO,IAET,MAAM2B,GAAO,CAACV,EAAMW,EAAQrH,KAC1B,IAAKuG,EAEH,YADAvG,EAAS,QAAS,KAGpB,IAAIyF,EAAO0B,GAAQE,EAAO3K,UAC1B,OAAQ2K,EAAOH,MACb,IAAK,QAAS,CACZ,MAAMhK,EAASmK,EAAOnK,OAChBiC,EAAQkI,EAAOlI,MACfmI,EAAYnI,EAAM5B,KAAK,KACvBgK,EAAY,IAAIC,gBAAgB,CACpCrI,MAAOmI,IAET7B,GAAQvI,EAAS,SAAWqK,EAAU5D,WACtC,MAEF,IAAK,SAAU,CACb,MAAM8D,EAAMJ,EAAOI,IACnBhC,GAA4B,MAApBgC,EAAI5K,MAAM,EAAG,GAAa4K,EAAI5K,MAAM,GAAK4K,EACjD,MAEF,QAEE,YADAzH,EAAS,QAAS,KAGtB,IAAI0H,EAAe,IACnBnB,EAAYG,EAAOjB,GAAMkC,KAAMC,IAC7B,MAAMd,EAASc,EAASd,OACxB,GAAe,MAAXA,EAOJ,OADAY,EAAe,IACRE,EAASC,OANdC,WAAW,KACT9H,EAAS6G,EAAYC,GAAU,QAAU,OAAQA,OAMpDa,KAAM1I,IACa,kBAATA,GAA8B,OAATA,EAUhC6I,WAAW,KACT9H,EAAS,UAAWf,KAVpB6I,WAAW,KACI,MAAT7I,EACFe,EAAS,QAASf,GAElBe,EAAS,OAAQ0H,OAQtBK,MAAM,KACP/H,EAAS,OAAQ0H,MAGfM,GAAiB,CACrBjB,UACAK,SAGF,SAASa,GAAU9I,GACjB,MAAMhC,EAAS,CACb+K,OAAQ,GACRrH,QAAS,GACTsH,QAAS,IAELjH,EAA0BvD,OAAO0B,OAAO,MAC9CF,EAAMiJ,KAAK,CAACC,EAAGC,IACTD,EAAE3L,WAAa4L,EAAE5L,SACZ2L,EAAE3L,SAAS6L,cAAcD,EAAE5L,UAEhC2L,EAAEnL,SAAWoL,EAAEpL,OACVmL,EAAEnL,OAAOqL,cAAcD,EAAEpL,QAE3BmL,EAAEjL,KAAKmL,cAAcD,EAAElL,OAEhC,IAAIoL,EAAW,CACb9L,SAAU,GACVQ,OAAQ,GACRE,KAAM,IA2BR,OAzBA+B,EAAMO,QAASlC,IACb,GAAIgL,EAASpL,OAASI,EAAKJ,MAAQoL,EAAStL,SAAWM,EAAKN,QAAUsL,EAAS9L,WAAac,EAAKd,SAC/F,OAEF8L,EAAWhL,EACX,MAAMd,EAAWc,EAAKd,SAChBQ,EAASM,EAAKN,OACdE,EAAOI,EAAKJ,KACZ4D,EAAkBE,EAAQxE,KAAcwE,EAAQxE,GAA4BiB,OAAO0B,OAAO,OAC1FoJ,EAAezH,EAAgB9D,KAAY8D,EAAgB9D,GAAU6D,EAAWrE,EAAUQ,IAChG,IAAIwL,EAEFA,EADEtL,KAAQqL,EAAatJ,MAChBhC,EAAO+K,OACM,KAAXhL,GAAiBuL,EAAa5H,QAAQc,IAAIvE,GAC5CD,EAAO0D,QAEP1D,EAAOgL,QAEhB,MAAM/H,EAAO,CACX1D,WACAQ,SACAE,QAEFsL,EAAKvI,KAAKC,KAELjD,EAGT,SAASwL,GAAeC,EAAU7D,GAChC6D,EAASlJ,QAASwB,IAChB,MAAM2H,EAAQ3H,EAAQ4H,gBAClBD,IACF3H,EAAQ4H,gBAAkBD,EAAME,OAAQC,GAAQA,EAAIjE,KAAOA,MAIjE,SAASkE,GAAgB/H,GAClBA,EAAQgI,uBACXhI,EAAQgI,sBAAuB,EAC/BpB,WAAW,KACT5G,EAAQgI,sBAAuB,EAC/B,MAAML,EAAQ3H,EAAQ4H,gBAAkB5H,EAAQ4H,gBAAgBjM,MAAM,GAAK,GAC3E,IAAKgM,EAAM/L,OACT,OAEF,IAAIqM,GAAa,EACjB,MAAMzM,EAAWwE,EAAQxE,SACnBQ,EAASgE,EAAQhE,OACvB2L,EAAMnJ,QAASU,IACb,MAAMjB,EAAQiB,EAAKjB,MACbiK,EAAYjK,EAAMgJ,QAAQrL,OAChCqC,EAAMgJ,QAAUhJ,EAAMgJ,QAAQY,OAAQvL,IACpC,GAAIA,EAAKN,SAAWA,EAClB,OAAO,EAET,MAAME,EAAOI,EAAKJ,KAClB,GAAI8D,EAAQ/B,MAAM/B,GAChB+B,EAAM+I,OAAO/H,KAAK,CAChBzD,WACAQ,SACAE,aAEG,KAAI8D,EAAQL,QAAQc,IAAIvE,GAQ7B,OADA+L,GAAa,GACN,EAPPhK,EAAM0B,QAAQV,KAAK,CACjBzD,WACAQ,SACAE,SAMJ,OAAO,IAEL+B,EAAMgJ,QAAQrL,SAAWsM,IACtBD,GACHR,GAAe,CAACzH,GAAUd,EAAK2E,IAEjC3E,EAAKJ,SACHb,EAAM+I,OAAOrL,MAAM,GACnBsC,EAAM0B,QAAQhE,MAAM,GACpBsC,EAAMgJ,QAAQtL,MAAM,GACpBuD,EAAKiJ,aAOjB,IAAIC,GAAY,EAChB,SAASC,GAAcvJ,EAAUb,EAAOqK,GACtC,MAAMzE,EAAKuE,KACLD,EAAQV,GAAec,KAAK,KAAMD,EAAgBzE,GACxD,IAAK5F,EAAMgJ,QAAQrL,OACjB,OAAOuM,EAET,MAAMjJ,EAAO,CACX2E,KACA5F,QACAa,WACAqJ,SAKF,OAHAG,EAAe9J,QAASwB,KACrBA,EAAQ4H,kBAAoB5H,EAAQ4H,gBAAkB,KAAK3I,KAAKC,KAE5DiJ,EAGT,SAASK,GAAYhB,EAAMlM,GAAW,EAAM8E,GAAc,GACxD,MAAMnE,EAAS,GAOf,OANAuL,EAAKhJ,QAASU,IACZ,MAAM5C,EAAuB,kBAAT4C,EAAoB9D,EAAa8D,EAAM5D,EAAU8E,GAAelB,EAChF5C,GACFL,EAAOgD,KAAK3C,KAGTL,EAIT,IAAIwM,GAAgB,CAClBnE,UAAW,GACXI,MAAO,EACPD,QAAS,IACTzH,OAAQ,IACRuG,QAAQ,EACRoB,kBAAkB,GAIpB,SAAS+D,GAAUzD,EAAQ0D,EAASC,EAAOC,GACzC,MAAMC,EAAiB7D,EAAOX,UAAU1I,OAClCmN,EAAa9D,EAAO1B,OAASlC,KAAKqB,MAAMrB,KAAKkC,SAAWuF,GAAkB7D,EAAOP,MACvF,IAAIJ,EACJ,GAAIW,EAAO1B,OAAQ,CACjB,IAAIiE,EAAOvC,EAAOX,UAAU3I,MAAM,GAClC2I,EAAY,GACZ,MAAOkD,EAAK5L,OAAS,EAAG,CACtB,MAAMoN,EAAY3H,KAAKqB,MAAMrB,KAAKkC,SAAWiE,EAAK5L,QAClD0I,EAAUrF,KAAKuI,EAAKwB,IACpBxB,EAAOA,EAAK7L,MAAM,EAAGqN,GAAW1K,OAAOkJ,EAAK7L,MAAMqN,EAAY,IAEhE1E,EAAYA,EAAUhG,OAAOkJ,QAE7BlD,EAAYW,EAAOX,UAAU3I,MAAMoN,GAAYzK,OAAO2G,EAAOX,UAAU3I,MAAM,EAAGoN,IAElF,MAAME,EAAY5F,KAAKC,MACvB,IAEI4F,EAFAtD,EAAS,UACTuD,EAAc,EAEdC,EAAQ,KACRC,EAAQ,GACRC,EAAgB,GAIpB,SAASC,IACHH,IACFI,aAAaJ,GACbA,EAAQ,MAGZ,SAASjB,IACQ,YAAXvC,IACFA,EAAS,WAEX2D,IACAF,EAAM7K,QAASU,IACO,YAAhBA,EAAK0G,SACP1G,EAAK0G,OAAS,aAGlByD,EAAQ,GAEV,SAASI,EAAU3K,EAAU4K,GACvBA,IACFJ,EAAgB,IAEM,oBAAbxK,GACTwK,EAAcrK,KAAKH,GAGvB,SAAS6K,IACP,MAAO,CACLV,YACAN,UACA/C,SACAuD,cACAS,eAAgBP,EAAMzN,OACtB6N,YACAtB,SAGJ,SAAS0B,IACPjE,EAAS,SACT0D,EAAc9K,QAASM,IACrBA,OAAS,EAAQoK,KAGrB,SAASY,IACPT,EAAM7K,QAASU,IACO,YAAhBA,EAAK0G,SACP1G,EAAK0G,OAAS,aAGlByD,EAAQ,GAEV,SAASU,EAAe7K,EAAMwH,EAAU3I,GACtC,MAAMiM,EAAuB,YAAbtD,EAEhB,OADA2C,EAAQA,EAAMxB,OAAQoC,GAAWA,IAAW/K,GACpC0G,GACN,IAAK,UACH,MACF,IAAK,SACH,GAAIoE,IAAY/E,EAAON,iBACrB,OAEF,MACF,QACE,OAEJ,GAAiB,UAAb+B,EAGF,OAFAwC,EAAYnL,OACZ8L,IAGF,GAAIG,EASF,OARAd,EAAYnL,OACPsL,EAAMzN,SACJ0I,EAAU1I,OAGbsO,IAFAL,MASN,GAFAN,IACAO,KACK7E,EAAO1B,OAAQ,CAClB,MAAMmB,EAAQO,EAAOX,UAAU6F,QAAQjL,EAAKkL,WAC7B,IAAX1F,GAAgBA,IAAUO,EAAOP,QACnCO,EAAOP,MAAQA,GAGnBkB,EAAS,YACT0D,EAAc9K,QAASM,IACrBA,EAASf,KAGb,SAASmM,IACP,GAAe,YAAXtE,EACF,OAEF2D,IACA,MAAMa,EAAW9F,EAAUzI,QAC3B,QAAiB,IAAbuO,EACF,OAAIf,EAAMzN,YACRwN,EAAQxC,WAAW,KACjB2C,IACe,YAAX3D,IACFkE,IACAD,MAED5E,EAAOR,eAGZoF,IAGF,MAAM3K,EAAO,CACX0G,OAAQ,UACRwE,WACAtL,SAAU,CAACuL,EAAStM,KAClBgM,EAAe7K,EAAMmL,EAAStM,KAGlCsL,EAAMpK,KAAKC,GACXiK,IACAC,EAAQxC,WAAWsD,EAAUjF,EAAOjI,QACpC4L,EAAMwB,EAAUzB,EAASzJ,EAAKJ,UAGhC,MAlIoB,oBAAT+J,GACTS,EAAcrK,KAAK4J,GAgIrBjC,WAAWsD,GACJP,EAIT,SAASW,GAAeC,GACtB,MAAMtF,EAAS,IACVwD,MACA8B,GAEL,IAAIC,EAAU,GACd,SAASC,IACPD,EAAUA,EAAQ3C,OAAQ3I,GAA2B,YAAlBA,IAAO0G,QAE5C,SAASgD,EAAMD,EAAS+B,EAAeC,GACrC,MAAMC,EAASlC,GACbzD,EACA0D,EACA+B,EACA,CAAC3M,EAAM8M,KACLJ,IACIE,GACFA,EAAa5M,EAAM8M,KAKzB,OADAL,EAAQvL,KAAK2L,GACNA,EAET,SAASE,EAAKhM,GACZ,OAAO0L,EAAQM,KAAMzP,GACZyD,EAASzD,KACZ,KAER,MAAM0P,EAAW,CACfnC,QACAkC,OACAE,SAAWtG,IACTO,EAAOP,MAAQA,GAEjBuG,SAAU,IAAMhG,EAAOP,MACvB+F,WAEF,OAAOM,EAGT,SAASG,MAET,MAAMC,GAAkC1O,OAAO0B,OAAO,MACtD,SAASiN,GAAmB5P,GAC1B,IAAK2P,GAAgB3P,GAAW,CAC9B,MAAMyJ,EAASC,EAAa1J,GAC5B,IAAKyJ,EACH,OAEF,MAAMoG,EAAaf,GAAerF,GAC5BqG,EAAkB,CACtBrG,SACAoG,cAEFF,GAAgB3P,GAAY8P,EAE9B,OAAOH,GAAgB3P,GAEzB,SAAS+P,GAAaC,EAAQ5C,EAAO9J,GACnC,IAAIuM,EACAnF,EACJ,GAAsB,kBAAXsF,EAAqB,CAC9B,MAAMC,EAAMtH,EAAaqH,GACzB,IAAKC,EAEH,OADA3M,OAAS,EAAQ,KACVoM,GAEThF,EAAOuF,EAAIvF,KACX,MAAMwF,EAASN,GAAmBI,GAC9BE,IACFL,EAAaK,EAAOL,gBAEjB,CACL,MAAMpG,EAASb,EAAgBoH,GAC/B,GAAIvG,EAAQ,CACVoG,EAAaf,GAAerF,GAC5B,MAAM0G,EAAYH,EAAOlH,UAAYkH,EAAOlH,UAAU,GAAK,GACrDmH,EAAMtH,EAAawH,GACrBF,IACFvF,EAAOuF,EAAIvF,OAIjB,OAAKmF,GAAenF,EAIbmF,EAAWzC,MAAMA,EAAO1C,EAAMpH,EAA9BuM,GAA0ClD,OAH/CrJ,OAAS,EAAQ,KACVoM,IAKX,MAAMU,GAAsB,WACtBC,GAAqB,UACrBC,GAAuBD,GAAqB,SAC5CE,GAAyBF,GAAqB,WAC9CG,GAAqB,KACrBC,GAAgC,IAEtC,SAASC,GAAcC,EAAMtO,GAC3B,IACE,OAAOsO,EAAKC,QAAQvO,GACpB,MAAOsC,KAGX,SAASkM,GAAcF,EAAMtO,EAAKxC,GAChC,IAEE,OADA8Q,EAAKG,QAAQzO,EAAKxC,IACX,EACP,MAAO8E,KAGX,SAASoM,GAAiBJ,EAAMtO,GAC9B,IACEsO,EAAKK,WAAW3O,GAChB,MAAOsC,KAIX,SAASsM,GAA4BzM,EAAS3E,GAC5C,OAAOgR,GAAcrM,EAAS8L,GAAsBzQ,EAAMoH,YAE5D,SAASiK,GAA4B1M,GACnC,OAAO2M,SAAST,GAAclM,EAAS8L,MAA0B,EAGnE,MAAMc,GAAuB,CAC3BC,OAAO,EACPC,SAAS,GAELC,GAA2B,CAC/BF,MAAuB,IAAIjN,IAC3BkN,QAAyB,IAAIlN,KAE/B,IAAIoN,IAAuB,EAC3B,SAASC,GAAwBrH,GAC/BoH,GAAuBpH,EAGzB,IAAIsH,GAA4B,qBAAXC,OAAyB,GAAKA,OACnD,SAASC,GAAkBvP,GACzB,MAAMwP,EAAOxP,EAAM,UACnB,IACE,GAAIqP,IAAWA,GAAQG,IAAyC,kBAAzBH,GAAQG,GAAMzR,OACnD,OAAOsR,GAAQG,GAEjB,MAAOlN,IAETyM,GAAqB/O,IAAO,EAG9B,SAASyP,GAAsBzP,EAAKiB,GAClC,MAAMqN,EAAOiB,GAAkBvP,GAC/B,IAAKsO,EACH,OAEF,MAAMoB,EAAUrB,GAAcC,EAAMJ,IACpC,GAAIwB,IAAY3B,GAAqB,CACnC,GAAI2B,EAAS,CACX,MAAMC,EAASd,GAA4BP,GAC3C,IAAK,IAAIsB,EAAI,EAAGA,EAAID,EAAQC,IAC1BlB,GAAiBJ,EAAMN,GAAqB4B,EAAEhL,YAKlD,OAFA4J,GAAcF,EAAMJ,GAAwBH,SAC5Ca,GAA4BN,EAAM,GAGpC,MAAMuB,EAAUrM,KAAKqB,MAAMW,KAAKC,MAAQ0I,IAAsBC,GACxD0B,EAAajJ,IACjB,MAAMxI,EAAO2P,GAAqBnH,EAAMjC,WAClCvD,EAAOgN,GAAcC,EAAMjQ,GACjC,GAAoB,kBAATgD,EAAX,CAGA,IACE,MAAMnB,EAAO6P,KAAKhP,MAAMM,GACxB,GAAoB,kBAATnB,GAA4C,kBAAhBA,EAAK2N,QAAuB3N,EAAK2N,OAASgC,GAAoC,kBAAlB3P,EAAKvC,UAA8C,kBAAduC,EAAKA,MAAiD,kBAArBA,EAAKA,KAAK/B,QAAuB8C,EAASf,EAAM2G,GACvN,OAAO,EAET,MAAOvE,IAEToM,GAAiBJ,EAAMjQ,KAEzB,IAAI2R,EAAQnB,GAA4BP,GACxC,IAAK,IAAIsB,EAAII,EAAQ,EAAGJ,GAAK,EAAGA,IACzBE,EAAUF,KACTA,IAAMI,EAAQ,GAChBA,IACApB,GAA4BN,EAAM0B,IAElCd,GAAyBlP,GAAKoC,IAAIwN,IAM1C,SAASK,KACP,IAAId,GAAJ,CAGAC,IAAwB,GACxB,IAAK,MAAMpP,KAAO+O,GAChBU,GAAsBzP,EAAMqB,IAC1B,MAAM6O,EAAU7O,EAAKnB,KACfvC,EAAW0D,EAAK1D,SAChBQ,EAAS+R,EAAQ/R,OACjBgE,EAAUH,EACdrE,EACAQ,GAEF,IAAK+D,EAAWC,EAAS+N,GAASnS,OAChC,OAAO,EAET,MAAMoS,EAAeD,EAAQC,eAAiB,EAE9C,OADAhO,EAAQiO,mBAAqBjO,EAAQiO,mBAAqB5M,KAAK6M,IAAIlO,EAAQiO,mBAAoBD,GAAgBA,GACxG,KAKb,SAASG,GAAmBnO,EAASgO,GACnC,MAAMI,EAAYpO,EAAQiO,mBAC1B,GAAIG,GAAaA,GAAaJ,EAC5B,OAAOI,IAAcJ,EAGvB,GADAhO,EAAQiO,mBAAqBD,EACzBI,EACF,IAAK,MAAMvQ,KAAO+O,GAChBU,GAAsBzP,EAAMqB,IAC1B,MAAM6O,EAAU7O,EAAKnB,KACrB,OAAOmB,EAAK1D,WAAawE,EAAQxE,UAAYuS,EAAQ/R,SAAWgE,EAAQhE,QAAU+R,EAAQC,eAAiBA,IAIjH,OAAO,EAET,SAASK,GAAsBrO,EAASjC,GAItC,SAASuQ,EAAMzQ,GACb,IAAIsO,EACJ,IAAKS,GAAqB/O,MAAUsO,EAAOiB,GAAkBvP,IAC3D,OAEF,MAAM0Q,EAAMxB,GAAyBlP,GACrC,IAAI6G,EACJ,GAAI6J,EAAIrN,KACNqN,EAAIC,OAAO9J,EAAQ1F,MAAMyP,KAAKF,GAAK1S,cAGnC,GADA6I,EAAQgI,GAA4BP,IAC/BM,GAA4BN,EAAMzH,EAAQ,GAC7C,OAGJ,MAAMxF,EAAO,CACXwM,OAAQrK,KAAKqB,MAAMW,KAAKC,MAAQ0I,IAChCxQ,SAAUwE,EAAQxE,SAClBuC,QAEF,OAAOsO,GACLF,EACAN,GAAqBnH,EAAMjC,WAC3BmL,KAAKc,UAAUxP,IA1Bd8N,IACHc,KA4BE/P,EAAKiQ,eAAiBG,GAAmBnO,EAASjC,EAAKiQ,eAGtDvR,OAAO8B,KAAKR,EAAKE,OAAOrC,SAGzBmC,EAAKgB,YACPhB,EAAOtB,OAAOkS,OAAO,GAAI5Q,UAClBA,EAAKgB,WAETuP,EAAM,UACTA,EAAM,YAIV,SAASM,MAET,SAASC,GAAe7O,GACjBA,EAAQ8O,kBACX9O,EAAQ8O,iBAAkB,EAC1BlI,WAAW,KACT5G,EAAQ8O,iBAAkB,EAC1B/G,GAAgB/H,MAItB,SAAS+O,GAAa/O,EAAS/B,GACxB+B,EAAQgP,YAGXhP,EAAQgP,YAAchP,EAAQgP,YAAY1Q,OAAOL,GAAOiJ,OAFxDlH,EAAQgP,YAAc/Q,EAInB+B,EAAQiP,iBACXjP,EAAQiP,gBAAiB,EACzBrI,WAAW,KACT5G,EAAQiP,gBAAiB,EACzB,MAAM,SAAEzT,EAAQ,OAAEQ,GAAWgE,EACvBkP,EAASlP,EAAQgP,YAEvB,IAAIvD,EACJ,UAFOzL,EAAQgP,aAEVE,KAAYzD,EAAMtH,EAAa3I,IAClC,OAEF,MAAM2K,EAASsF,EAAI5F,QAAQrK,EAAUQ,EAAQkT,GAC7C/I,EAAO3H,QAASU,IACdqM,GAAa/P,EAAU0D,EAAOnB,IAC5B,GAAoB,kBAATA,EACTmB,EAAKjB,MAAMO,QAAStC,IAClB8D,EAAQL,QAAQM,IAAI/D,UAGtB,IACE,MAAMiT,EAASpP,EACbC,EACAjC,GAEF,IAAKoR,EAAOvT,OACV,OAEF,MAAMqL,EAAUjH,EAAQoP,aACpBnI,GACFkI,EAAO3Q,QAAStC,IACd+K,EAAQuH,OAAOtS,KAGnBmS,GAAsBrO,EAASjC,GAC/B,MAAOoC,GACPkP,QAAQxE,MAAM1K,GAGlB0O,GAAe7O,UAMzB,MAAMsP,GAAY,CAACrR,EAAOa,KACxB,MAAMyQ,EAAe/G,GAAYvK,GAAO,EAAMoC,KACxCmP,EAAczI,GAAUwI,GAC9B,IAAKC,EAAYvI,QAAQrL,OAAQ,CAC/B,IAAI6T,GAAe,EAanB,OAZI3Q,GACF8H,WAAW,KACL6I,GACF3Q,EACE0Q,EAAYxI,OACZwI,EAAY7P,QACZ6P,EAAYvI,QACZ2H,MAKD,KACLa,GAAe,GAGnB,MAAMC,EAA2BjT,OAAO0B,OAAO,MACzCwR,EAAU,GAChB,IAAIC,EAAcC,EA6BlB,OA5BAL,EAAYvI,QAAQzI,QAASlC,IAC3B,MAAM,SAAEd,EAAQ,OAAEQ,GAAWM,EAC7B,GAAIN,IAAW6T,GAAcrU,IAAaoU,EACxC,OAEFA,EAAepU,EACfqU,EAAa7T,EACb2T,EAAQ1Q,KAAKY,EAAWrE,EAAUQ,IAClC,MAAM8T,EAAmBJ,EAASlU,KAAckU,EAASlU,GAA4BiB,OAAO0B,OAAO,OAC9F2R,EAAiB9T,KACpB8T,EAAiB9T,GAAU,MAG/BwT,EAAYvI,QAAQzI,QAASlC,IAC3B,MAAM,SAAEd,EAAQ,OAAEQ,EAAM,KAAEE,GAASI,EAC7B0D,EAAUH,EAAWrE,EAAUQ,GAC/B+T,EAAe/P,EAAQoP,eAAiBpP,EAAQoP,aAA+B,IAAIxP,KACpFmQ,EAAatP,IAAIvE,KACpB6T,EAAa9P,IAAI/D,GACjBwT,EAASlU,GAAUQ,GAAQiD,KAAK/C,MAGpCyT,EAAQnR,QAASwB,IACf,MAAM,SAAExE,EAAQ,OAAEQ,GAAWgE,EACzB0P,EAASlU,GAAUQ,GAAQJ,QAC7BmT,GAAa/O,EAAS0P,EAASlU,GAAUQ,MAGtC8C,EAAWuJ,GAAcvJ,EAAU0Q,EAAaG,GAAWf,IAuCpE,SAASoB,GAAoB3Q,EAAUH,GACrC,MAAMjD,EAAS,IACVoD,GAEL,IAAK,MAAMxB,KAAOqB,EAAM,CACtB,MAAM7D,EAAQ6D,EAAKrB,GACboS,SAAmB5U,EACrBwC,KAAOgD,GACK,OAAVxF,GAAkBA,IAAwB,WAAd4U,GAAwC,WAAdA,MACxDhU,EAAO4B,GAAOxC,GAEP4U,WAAqBhU,EAAO4B,KACrC5B,EAAO4B,GAAe,WAARA,EAAmBxC,EAAQ,EAAIA,GAGjD,OAAOY,EAGT,MAAMiU,GAAY,SAClB,SAASC,GAAeC,EAAQC,GAC9BA,EAAK3U,MAAMwU,IAAW1R,QAAS8R,IAC7B,MAAMjV,EAAQiV,EAAIC,OAClB,OAAQlV,GACN,IAAK,aACH+U,EAAOlT,OAAQ,EACf,MACF,IAAK,WACHkT,EAAOnT,OAAQ,EACf,SAKR,SAASuT,GAAiBnV,EAAOoV,EAAe,GAC9C,MAAMC,EAAQrV,EAAM2I,QAAQ,aAAc,IAC1C,SAASyG,EAAQkG,GACf,MAAOA,EAAS,EACdA,GAAU,EAEZ,OAAOA,EAAS,EAElB,GAAc,KAAVD,EAAc,CAChB,MAAM9O,EAAM+K,SAAStR,GACrB,OAAOyG,MAAMF,GAAO,EAAI6I,EAAQ7I,GAC3B,GAAI8O,IAAUrV,EAAO,CAC1B,IAAIK,EAAQ,EACZ,OAAQgV,GACN,IAAK,IACHhV,EAAQ,GACR,MACF,IAAK,MACHA,EAAQ,GAEZ,GAAIA,EAAO,CACT,IAAIkG,EAAMC,WAAWxG,EAAMM,MAAM,EAAGN,EAAMO,OAAS8U,EAAM9U,SACzD,OAAIkG,MAAMF,GACD,GAETA,GAAYlG,EACLkG,EAAM,IAAM,EAAI6I,EAAQ7I,GAAO,IAG1C,OAAO6O,EAGT,MAAMG,GAAoC,IACnC9P,EACH+P,QAAQ,GAMNC,GAAc,CAChB,MAAS,6BACT,cAAe,+BACf,eAAe,EACf,KAAQ,OAMNC,GAAuB,GAC7B,CAAC,aAAc,YAAYvS,QAASxC,IAChC,MAAMqR,EAAOrR,EAAOL,MAAM,EAAG,GAAK,OAElCoV,GAAqB/U,EAAS,SAAWqR,EAEzC0D,GAAqB/U,EAAOL,MAAM,EAAG,GAAK,SAAW0R,EAErD0D,GAAqB/U,EAAS,QAAUqR,IAK5C,MAAM2D,GAAS,CAACC,EAEhB5O,EAEA6O,EAEA5U,KAEI,MAAM2F,EAAiB+N,GAAoBY,GAAmCvO,GACxE8O,EAAiB,IAAKL,IAEtBM,EAAQ,GAEd,IAAK,IAAIvT,KAAOwE,EAAO,CACnB,MAAMhH,EAAQgH,EAAMxE,GACpB,QAAc,IAAVxC,EAGJ,OAAQwC,GAEJ,IAAK,OACL,IAAK,QACL,IAAK,SACD,MAEJ,IAAK,SACL,IAAK,QACL,IAAK,QACDoE,EAAepE,IACD,IAAVxC,GAA4B,SAAVA,GAA8B,IAAVA,EAC1C,MAEJ,IAAK,OACoB,kBAAVA,GACP8U,GAAelO,EAAgB5G,GAEnC,MAEJ,IAAK,QACD+V,EAAMC,MAAQhW,EACd,MAEJ,IAAK,SACoB,kBAAVA,EACP4G,EAAepE,GAAO2S,GAAiBnV,GAEjB,kBAAVA,IACZ4G,EAAepE,GAAOxC,GAE1B,MAEJ,IAAK,aACL,IAAK,eAEa,IAAVA,GAA4B,SAAVA,UACX8V,EAAe,eAE1B,MACJ,QACI,MAAMG,EAAQP,GAAqBlT,GAC/ByT,GAEc,IAAVjW,GAA4B,SAAVA,GAA8B,IAAVA,IACtC4G,EAAeqP,IAAS,QAGoB,IAA3CV,GAAkC/S,KAEvCsT,EAAetT,GAAOxC,IAKtC,MAAM6D,EAAO8C,EAAU1F,EAAM2F,GAE7B,IAAK,IAAIpE,KAAOqB,EAAK8D,WACjBmO,EAAetT,GAAOqB,EAAK8D,WAAWnF,GAEtCoE,EAAe4O,SACfO,EAAMG,cAAgB,YAG1B,IAAIC,EAAe,EACf3N,EAAKxB,EAAMwB,GACG,kBAAPA,IAEPA,EAAKA,EAAGG,QAAQ,KAAM,MAG1B,MAAMjG,EAAO,CACT0T,MAAON,EACPO,SAAU,CACNC,UAAWlO,EAAWvE,EAAK7B,KAAMwG,EAAK,IAAMA,EAAK,KAAO2N,IAAiB,gBAmBjF,OAhBI/U,OAAO8B,KAAK6S,GAAOxV,OAAS,IAC5BmC,EAAKqT,MAAQA,GAEbF,IACA,CAAC,KAAM,OAAO1S,QAAS6O,SACO,IAAtB6D,EAAY7D,KACZtP,EAAKsP,GAAQ6D,EAAY7D,MAGjC,CAAC,cAAe,SAAS7O,QAAS6O,SACJ,IAAtB6D,EAAY7D,KACZtP,EAAK6T,MAAQV,EAAY7D,OAK9B4D,EAAc,MAAOlT,IAyBhC,GANAsC,GAAiB,GAEjB6D,EAAa,GAAI4C,IAIO,qBAAb+K,UAA8C,qBAAX1E,OAAwB,CAElEW,KACA,MAAMZ,EAAUC,OAEhB,QAA+B,IAA3BD,EAAQ4E,eAA2B,CACnC,MAAMC,EAAU7E,EAAQ4E,eAClB3R,EAAM,iCACW,kBAAZ4R,GAAoC,OAAZA,IAC9BA,aAAmB/S,MAAQ+S,EAAU,CAACA,IAAUvT,QAASU,IACtD,KAGoB,kBAATA,GACM,OAATA,GACAA,aAAgBF,OAEM,kBAAfE,EAAKjB,OACW,kBAAhBiB,EAAKlD,SAEX2E,EAAczB,KACfmQ,QAAQxE,MAAM1K,GAGtB,MAAO6R,GACH3C,QAAQxE,MAAM1K,MAM9B,QAAiC,IAA7B+M,EAAQ+E,iBAA6B,CACrC,MAAMC,EAAYhF,EAAQ+E,iBAC1B,GAAyB,kBAAdC,GAAwC,OAAdA,EACjC,IAAK,IAAIrU,KAAOqU,EAAW,CACvB,MAAM/R,EAAM,oBAAsBtC,EAAM,gBACxC,IACI,MAAMxC,EAAQ6W,EAAUrU,GACxB,GAAqB,kBAAVxC,IACNA,QACmB,IAApBA,EAAMiJ,UACN,SAECS,EAAelH,EAAKxC,IACrBgU,QAAQxE,MAAM1K,GAGtB,MAAO6R,IACH3C,QAAQxE,MAAM1K,MASlC,MAAMgS,GAAY,CACd9U,KAAM,IAEJ+U,GAAO,aAAIC,OAAO,CAGpBC,cAAc,EAEd,OACI,MAAO,CAEHC,aAAa,IAGrB,cAEIC,KAAKC,MAAQ,GAEbD,KAAKE,aAAe,KAEpBF,KAAKD,aAAc,GAEvB,gBACIC,KAAKG,gBAETC,QAAS,CACL,eACQJ,KAAKE,eACLF,KAAKE,aAAavK,QAClBqK,KAAKE,aAAe,OAI5B,QAAQpW,EAAMuW,GAEV,GAAoB,kBAATvW,GACE,OAATA,GACqB,kBAAdA,EAAKe,KAIZ,OAFAmV,KAAKC,MAAQ,GACbD,KAAKG,eACE,CACH5U,KAAMzB,GAId,IAAIkE,EACJ,GAAoB,kBAATlE,GAC0C,QAAhDkE,EAAWpF,EAAakB,GAAM,GAAO,IAEtC,OADAkW,KAAKG,eACE,KAGX,MAAM5U,EAAOwC,EAAYC,GACzB,IAAKzC,EAgBD,OAdKyU,KAAKE,cAAgBF,KAAKE,aAAaxW,OAASI,IAEjDkW,KAAKG,eACLH,KAAKC,MAAQ,GACA,OAAT1U,IAEAyU,KAAKE,aAAe,CAChBxW,KAAMI,EACN6L,MAAOmH,GAAU,CAAC9O,GAAW,KACzBgS,KAAKM,oBAKd,KAGXN,KAAKG,eACDH,KAAKC,QAAUnW,IACfkW,KAAKC,MAAQnW,EACTuW,GACAA,EAAOvW,IAIf,MAAMyW,EAAU,CAAC,WAOjB,MANwB,KAApBvS,EAASxE,QACT+W,EAAQ9T,KAAK,YAAcuB,EAASxE,QAEd,KAAtBwE,EAAShF,UACTuX,EAAQ9T,KAAK,YAAcuB,EAAShF,UAEjC,CAAEuC,OAAMgV,aAIvB,OAAO9B,GACH,MAAM5O,EAAQ5F,OAAOkS,OAAO,GAAI6D,KAAKQ,QACrC,IAAIC,EAAUT,KAAKU,MAEnB,MAAM5W,EAAOkW,KAAKD,YACZC,KAAKW,QAAQ9Q,EAAM/F,KAAM+F,EAAM+Q,QAC/B,KAEN,OAAK9W,GAIDA,EAAKyW,UACLE,EAAU,IACHA,EACHrB,OAAoC,kBAArBqB,EAAQ,SACjBA,EAAQ,SAAW,IACnB,IAAM3W,EAAKyW,QAAQ1W,KAAK,OAI/B2U,GAAOC,EAAe5O,EAAO4Q,EAAS3W,EAAKyB,OAZvCiT,GAAOC,EAAe5O,EAAO4Q,EAASd,Q,qBCjzDzD,IAAIkB,EAAM,CACT,aAAc,OACd,cAAe,OACf,eAAgB,QAIjB,SAASC,EAAeC,GACvB,IAAI1P,EAAK2P,EAAsBD,GAC/B,OAAOE,EAAoB5P,GAE5B,SAAS2P,EAAsBD,GAC9B,IAAIE,EAAoBC,EAAEL,EAAKE,GAAM,CACpC,IAAIvB,EAAI,IAAI2B,MAAM,uBAAyBJ,EAAM,KAEjD,MADAvB,EAAEvQ,KAAO,mBACHuQ,EAEP,OAAOqB,EAAIE,GAEZD,EAAe/U,KAAO,WACrB,OAAO9B,OAAO8B,KAAK8U,IAEpBC,EAAejV,QAAUmV,EACzBvY,EAAOC,QAAUoY,EACjBA,EAAezP,GAAK","file":"admin~admin-staff~dashboard~staff.0c98451077f5806e3db0.js","sourcesContent":["module.exports = __webpack_public_path__ + \"img/enugu.fa333ef2.png\";","module.exports = __webpack_public_path__ + \"img/kaduna.29b1043b.png\";","module.exports = __webpack_public_path__ + \"img/abia.a627ade8.png\";","import Vue from 'vue';\n\nconst matchIconName = /^[a-z0-9]+(-[a-z0-9]+)*$/;\nconst stringToIcon = (value, validate, allowSimpleName, provider = \"\") => {\n const colonSeparated = value.split(\":\");\n if (value.slice(0, 1) === \"@\") {\n if (colonSeparated.length < 2 || colonSeparated.length > 3) {\n return null;\n }\n provider = colonSeparated.shift().slice(1);\n }\n if (colonSeparated.length > 3 || !colonSeparated.length) {\n return null;\n }\n if (colonSeparated.length > 1) {\n const name2 = colonSeparated.pop();\n const prefix = colonSeparated.pop();\n const result = {\n provider: colonSeparated.length > 0 ? colonSeparated[0] : provider,\n prefix,\n name: name2\n };\n return validate && !validateIconName(result) ? null : result;\n }\n const name = colonSeparated[0];\n const dashSeparated = name.split(\"-\");\n if (dashSeparated.length > 1) {\n const result = {\n provider,\n prefix: dashSeparated.shift(),\n name: dashSeparated.join(\"-\")\n };\n return validate && !validateIconName(result) ? null : result;\n }\n if (allowSimpleName && provider === \"\") {\n const result = {\n provider,\n prefix: \"\",\n name\n };\n return validate && !validateIconName(result, allowSimpleName) ? null : result;\n }\n return null;\n};\nconst validateIconName = (icon, allowSimpleName) => {\n if (!icon) {\n return false;\n }\n return !!((icon.provider === \"\" || icon.provider.match(matchIconName)) && (allowSimpleName && icon.prefix === \"\" || icon.prefix.match(matchIconName)) && icon.name.match(matchIconName));\n};\n\nconst defaultIconDimensions = Object.freeze(\n {\n left: 0,\n top: 0,\n width: 16,\n height: 16\n }\n);\nconst defaultIconTransformations = Object.freeze({\n rotate: 0,\n vFlip: false,\n hFlip: false\n});\nconst defaultIconProps = Object.freeze({\n ...defaultIconDimensions,\n ...defaultIconTransformations\n});\nconst defaultExtendedIconProps = Object.freeze({\n ...defaultIconProps,\n body: \"\",\n hidden: false\n});\n\nfunction mergeIconTransformations(obj1, obj2) {\n const result = {};\n if (!obj1.hFlip !== !obj2.hFlip) {\n result.hFlip = true;\n }\n if (!obj1.vFlip !== !obj2.vFlip) {\n result.vFlip = true;\n }\n const rotate = ((obj1.rotate || 0) + (obj2.rotate || 0)) % 4;\n if (rotate) {\n result.rotate = rotate;\n }\n return result;\n}\n\nfunction mergeIconData(parent, child) {\n const result = mergeIconTransformations(parent, child);\n for (const key in defaultExtendedIconProps) {\n if (key in defaultIconTransformations) {\n if (key in parent && !(key in result)) {\n result[key] = defaultIconTransformations[key];\n }\n } else if (key in child) {\n result[key] = child[key];\n } else if (key in parent) {\n result[key] = parent[key];\n }\n }\n return result;\n}\n\nfunction getIconsTree(data, names) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n const resolved = /* @__PURE__ */ Object.create(null);\n function resolve(name) {\n if (icons[name]) {\n return resolved[name] = [];\n }\n if (!(name in resolved)) {\n resolved[name] = null;\n const parent = aliases[name] && aliases[name].parent;\n const value = parent && resolve(parent);\n if (value) {\n resolved[name] = [parent].concat(value);\n }\n }\n return resolved[name];\n }\n (names || Object.keys(icons).concat(Object.keys(aliases))).forEach(resolve);\n return resolved;\n}\n\nfunction internalGetIconData(data, name, tree) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n let currentProps = {};\n function parse(name2) {\n currentProps = mergeIconData(\n icons[name2] || aliases[name2],\n currentProps\n );\n }\n parse(name);\n tree.forEach(parse);\n return mergeIconData(data, currentProps);\n}\n\nfunction parseIconSet(data, callback) {\n const names = [];\n if (typeof data !== \"object\" || typeof data.icons !== \"object\") {\n return names;\n }\n if (data.not_found instanceof Array) {\n data.not_found.forEach((name) => {\n callback(name, null);\n names.push(name);\n });\n }\n const tree = getIconsTree(data);\n for (const name in tree) {\n const item = tree[name];\n if (item) {\n callback(name, internalGetIconData(data, name, item));\n names.push(name);\n }\n }\n return names;\n}\n\nconst optionalPropertyDefaults = {\n provider: \"\",\n aliases: {},\n not_found: {},\n ...defaultIconDimensions\n};\nfunction checkOptionalProps(item, defaults) {\n for (const prop in defaults) {\n if (prop in item && typeof item[prop] !== typeof defaults[prop]) {\n return false;\n }\n }\n return true;\n}\nfunction quicklyValidateIconSet(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return null;\n }\n const data = obj;\n if (typeof data.prefix !== \"string\" || !obj.icons || typeof obj.icons !== \"object\") {\n return null;\n }\n if (!checkOptionalProps(obj, optionalPropertyDefaults)) {\n return null;\n }\n const icons = data.icons;\n for (const name in icons) {\n const icon = icons[name];\n if (!name.match(matchIconName) || typeof icon.body !== \"string\" || !checkOptionalProps(\n icon,\n defaultExtendedIconProps\n )) {\n return null;\n }\n }\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n for (const name in aliases) {\n const icon = aliases[name];\n const parent = icon.parent;\n if (!name.match(matchIconName) || typeof parent !== \"string\" || !icons[parent] && !aliases[parent] || !checkOptionalProps(\n icon,\n defaultExtendedIconProps\n )) {\n return null;\n }\n }\n return data;\n}\n\nconst dataStorage = /* @__PURE__ */ Object.create(null);\nfunction newStorage(provider, prefix) {\n return {\n provider,\n prefix,\n icons: /* @__PURE__ */ Object.create(null),\n missing: /* @__PURE__ */ new Set()\n };\n}\nfunction getStorage(provider, prefix) {\n const providerStorage = dataStorage[provider] || (dataStorage[provider] = /* @__PURE__ */ Object.create(null));\n return providerStorage[prefix] || (providerStorage[prefix] = newStorage(provider, prefix));\n}\nfunction addIconSet(storage, data) {\n if (!quicklyValidateIconSet(data)) {\n return [];\n }\n return parseIconSet(data, (name, icon) => {\n if (icon) {\n storage.icons[name] = icon;\n } else {\n storage.missing.add(name);\n }\n });\n}\nfunction addIconToStorage(storage, name, icon) {\n try {\n if (typeof icon.body === \"string\") {\n storage.icons[name] = { ...icon };\n return true;\n }\n } catch (err) {\n }\n return false;\n}\nfunction listIcons(provider, prefix) {\n let allIcons = [];\n const providers = typeof provider === \"string\" ? [provider] : Object.keys(dataStorage);\n providers.forEach((provider2) => {\n const prefixes = typeof provider2 === \"string\" && typeof prefix === \"string\" ? [prefix] : Object.keys(dataStorage[provider2] || {});\n prefixes.forEach((prefix2) => {\n const storage = getStorage(provider2, prefix2);\n allIcons = allIcons.concat(\n Object.keys(storage.icons).map(\n (name) => (provider2 !== \"\" ? \"@\" + provider2 + \":\" : \"\") + prefix2 + \":\" + name\n )\n );\n });\n });\n return allIcons;\n}\n\nlet simpleNames = false;\nfunction allowSimpleNames(allow) {\n if (typeof allow === \"boolean\") {\n simpleNames = allow;\n }\n return simpleNames;\n}\nfunction getIconData(name) {\n const icon = typeof name === \"string\" ? stringToIcon(name, true, simpleNames) : name;\n if (icon) {\n const storage = getStorage(icon.provider, icon.prefix);\n const iconName = icon.name;\n return storage.icons[iconName] || (storage.missing.has(iconName) ? null : void 0);\n }\n}\nfunction addIcon(name, data) {\n const icon = stringToIcon(name, true, simpleNames);\n if (!icon) {\n return false;\n }\n const storage = getStorage(icon.provider, icon.prefix);\n return addIconToStorage(storage, icon.name, data);\n}\nfunction addCollection(data, provider) {\n if (typeof data !== \"object\") {\n return false;\n }\n if (typeof provider !== \"string\") {\n provider = data.provider || \"\";\n }\n if (simpleNames && !provider && !data.prefix) {\n let added = false;\n if (quicklyValidateIconSet(data)) {\n data.prefix = \"\";\n parseIconSet(data, (name, icon) => {\n if (icon && addIcon(name, icon)) {\n added = true;\n }\n });\n }\n return added;\n }\n const prefix = data.prefix;\n if (!validateIconName({\n provider,\n prefix,\n name: \"a\"\n })) {\n return false;\n }\n const storage = getStorage(provider, prefix);\n return !!addIconSet(storage, data);\n}\nfunction iconExists(name) {\n return !!getIconData(name);\n}\nfunction getIcon(name) {\n const result = getIconData(name);\n return result ? {\n ...defaultIconProps,\n ...result\n } : null;\n}\n\nconst defaultIconSizeCustomisations = Object.freeze({\n width: null,\n height: null\n});\nconst defaultIconCustomisations = Object.freeze({\n ...defaultIconSizeCustomisations,\n ...defaultIconTransformations\n});\n\nconst unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g;\nconst unitsTest = /^-?[0-9.]*[0-9]+[0-9.]*$/g;\nfunction calculateSize(size, ratio, precision) {\n if (ratio === 1) {\n return size;\n }\n precision = precision || 100;\n if (typeof size === \"number\") {\n return Math.ceil(size * ratio * precision) / precision;\n }\n if (typeof size !== \"string\") {\n return size;\n }\n const oldParts = size.split(unitsSplit);\n if (oldParts === null || !oldParts.length) {\n return size;\n }\n const newParts = [];\n let code = oldParts.shift();\n let isNumber = unitsTest.test(code);\n while (true) {\n if (isNumber) {\n const num = parseFloat(code);\n if (isNaN(num)) {\n newParts.push(code);\n } else {\n newParts.push(Math.ceil(num * ratio * precision) / precision);\n }\n } else {\n newParts.push(code);\n }\n code = oldParts.shift();\n if (code === void 0) {\n return newParts.join(\"\");\n }\n isNumber = !isNumber;\n }\n}\n\nconst isUnsetKeyword = (value) => value === \"unset\" || value === \"undefined\" || value === \"none\";\nfunction iconToSVG(icon, customisations) {\n const fullIcon = {\n ...defaultIconProps,\n ...icon\n };\n const fullCustomisations = {\n ...defaultIconCustomisations,\n ...customisations\n };\n const box = {\n left: fullIcon.left,\n top: fullIcon.top,\n width: fullIcon.width,\n height: fullIcon.height\n };\n let body = fullIcon.body;\n [fullIcon, fullCustomisations].forEach((props) => {\n const transformations = [];\n const hFlip = props.hFlip;\n const vFlip = props.vFlip;\n let rotation = props.rotate;\n if (hFlip) {\n if (vFlip) {\n rotation += 2;\n } else {\n transformations.push(\n \"translate(\" + (box.width + box.left).toString() + \" \" + (0 - box.top).toString() + \")\"\n );\n transformations.push(\"scale(-1 1)\");\n box.top = box.left = 0;\n }\n } else if (vFlip) {\n transformations.push(\n \"translate(\" + (0 - box.left).toString() + \" \" + (box.height + box.top).toString() + \")\"\n );\n transformations.push(\"scale(1 -1)\");\n box.top = box.left = 0;\n }\n let tempValue;\n if (rotation < 0) {\n rotation -= Math.floor(rotation / 4) * 4;\n }\n rotation = rotation % 4;\n switch (rotation) {\n case 1:\n tempValue = box.height / 2 + box.top;\n transformations.unshift(\n \"rotate(90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n case 2:\n transformations.unshift(\n \"rotate(180 \" + (box.width / 2 + box.left).toString() + \" \" + (box.height / 2 + box.top).toString() + \")\"\n );\n break;\n case 3:\n tempValue = box.width / 2 + box.left;\n transformations.unshift(\n \"rotate(-90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n }\n if (rotation % 2 === 1) {\n if (box.left !== box.top) {\n tempValue = box.left;\n box.left = box.top;\n box.top = tempValue;\n }\n if (box.width !== box.height) {\n tempValue = box.width;\n box.width = box.height;\n box.height = tempValue;\n }\n }\n if (transformations.length) {\n body = '' + body + \"\";\n }\n });\n const customisationsWidth = fullCustomisations.width;\n const customisationsHeight = fullCustomisations.height;\n const boxWidth = box.width;\n const boxHeight = box.height;\n let width;\n let height;\n if (customisationsWidth === null) {\n height = customisationsHeight === null ? \"1em\" : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n width = calculateSize(height, boxWidth / boxHeight);\n } else {\n width = customisationsWidth === \"auto\" ? boxWidth : customisationsWidth;\n height = customisationsHeight === null ? calculateSize(width, boxHeight / boxWidth) : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n }\n const attributes = {};\n const setAttr = (prop, value) => {\n if (!isUnsetKeyword(value)) {\n attributes[prop] = value.toString();\n }\n };\n setAttr(\"width\", width);\n setAttr(\"height\", height);\n attributes.viewBox = box.left.toString() + \" \" + box.top.toString() + \" \" + boxWidth.toString() + \" \" + boxHeight.toString();\n return {\n attributes,\n body\n };\n}\n\nconst regex = /\\sid=\"(\\S+)\"/g;\nconst randomPrefix = \"IconifyId\" + Date.now().toString(16) + (Math.random() * 16777216 | 0).toString(16);\nlet counter = 0;\nfunction replaceIDs(body, prefix = randomPrefix) {\n const ids = [];\n let match;\n while (match = regex.exec(body)) {\n ids.push(match[1]);\n }\n if (!ids.length) {\n return body;\n }\n const suffix = \"suffix\" + (Math.random() * 16777216 | Date.now()).toString(16);\n ids.forEach((id) => {\n const newID = typeof prefix === \"function\" ? prefix(id) : prefix + (counter++).toString();\n const escapedID = id.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n body = body.replace(\n new RegExp('([#;\"])(' + escapedID + ')([\")]|\\\\.[a-z])', \"g\"),\n \"$1\" + newID + suffix + \"$3\"\n );\n });\n body = body.replace(new RegExp(suffix, \"g\"), \"\");\n return body;\n}\n\nconst storage = /* @__PURE__ */ Object.create(null);\nfunction setAPIModule(provider, item) {\n storage[provider] = item;\n}\nfunction getAPIModule(provider) {\n return storage[provider] || storage[\"\"];\n}\n\nfunction createAPIConfig(source) {\n let resources;\n if (typeof source.resources === \"string\") {\n resources = [source.resources];\n } else {\n resources = source.resources;\n if (!(resources instanceof Array) || !resources.length) {\n return null;\n }\n }\n const result = {\n resources,\n path: source.path || \"/\",\n maxURL: source.maxURL || 500,\n rotate: source.rotate || 750,\n timeout: source.timeout || 5e3,\n random: source.random === true,\n index: source.index || 0,\n dataAfterTimeout: source.dataAfterTimeout !== false\n };\n return result;\n}\nconst configStorage = /* @__PURE__ */ Object.create(null);\nconst fallBackAPISources = [\n \"https://api.simplesvg.com\",\n \"https://api.unisvg.com\"\n];\nconst fallBackAPI = [];\nwhile (fallBackAPISources.length > 0) {\n if (fallBackAPISources.length === 1) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n if (Math.random() > 0.5) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n fallBackAPI.push(fallBackAPISources.pop());\n }\n }\n}\nconfigStorage[\"\"] = createAPIConfig({\n resources: [\"https://api.iconify.design\"].concat(fallBackAPI)\n});\nfunction addAPIProvider(provider, customConfig) {\n const config = createAPIConfig(customConfig);\n if (config === null) {\n return false;\n }\n configStorage[provider] = config;\n return true;\n}\nfunction getAPIConfig(provider) {\n return configStorage[provider];\n}\nfunction listAPIProviders() {\n return Object.keys(configStorage);\n}\n\nconst detectFetch = () => {\n let callback;\n try {\n callback = fetch;\n if (typeof callback === \"function\") {\n return callback;\n }\n } catch (err) {\n }\n};\nlet fetchModule = detectFetch();\nfunction setFetch(fetch2) {\n fetchModule = fetch2;\n}\nfunction getFetch() {\n return fetchModule;\n}\nfunction calculateMaxLength(provider, prefix) {\n const config = getAPIConfig(provider);\n if (!config) {\n return 0;\n }\n let result;\n if (!config.maxURL) {\n result = 0;\n } else {\n let maxHostLength = 0;\n config.resources.forEach((item) => {\n const host = item;\n maxHostLength = Math.max(maxHostLength, host.length);\n });\n const url = prefix + \".json?icons=\";\n result = config.maxURL - maxHostLength - config.path.length - url.length;\n }\n return result;\n}\nfunction shouldAbort(status) {\n return status === 404;\n}\nconst prepare = (provider, prefix, icons) => {\n const results = [];\n const maxLength = calculateMaxLength(provider, prefix);\n const type = \"icons\";\n let item = {\n type,\n provider,\n prefix,\n icons: []\n };\n let length = 0;\n icons.forEach((name, index) => {\n length += name.length + 1;\n if (length >= maxLength && index > 0) {\n results.push(item);\n item = {\n type,\n provider,\n prefix,\n icons: []\n };\n length = name.length;\n }\n item.icons.push(name);\n });\n results.push(item);\n return results;\n};\nfunction getPath(provider) {\n if (typeof provider === \"string\") {\n const config = getAPIConfig(provider);\n if (config) {\n return config.path;\n }\n }\n return \"/\";\n}\nconst send = (host, params, callback) => {\n if (!fetchModule) {\n callback(\"abort\", 424);\n return;\n }\n let path = getPath(params.provider);\n switch (params.type) {\n case \"icons\": {\n const prefix = params.prefix;\n const icons = params.icons;\n const iconsList = icons.join(\",\");\n const urlParams = new URLSearchParams({\n icons: iconsList\n });\n path += prefix + \".json?\" + urlParams.toString();\n break;\n }\n case \"custom\": {\n const uri = params.uri;\n path += uri.slice(0, 1) === \"/\" ? uri.slice(1) : uri;\n break;\n }\n default:\n callback(\"abort\", 400);\n return;\n }\n let defaultError = 503;\n fetchModule(host + path).then((response) => {\n const status = response.status;\n if (status !== 200) {\n setTimeout(() => {\n callback(shouldAbort(status) ? \"abort\" : \"next\", status);\n });\n return;\n }\n defaultError = 501;\n return response.json();\n }).then((data) => {\n if (typeof data !== \"object\" || data === null) {\n setTimeout(() => {\n if (data === 404) {\n callback(\"abort\", data);\n } else {\n callback(\"next\", defaultError);\n }\n });\n return;\n }\n setTimeout(() => {\n callback(\"success\", data);\n });\n }).catch(() => {\n callback(\"next\", defaultError);\n });\n};\nconst fetchAPIModule = {\n prepare,\n send\n};\n\nfunction sortIcons(icons) {\n const result = {\n loaded: [],\n missing: [],\n pending: []\n };\n const storage = /* @__PURE__ */ Object.create(null);\n icons.sort((a, b) => {\n if (a.provider !== b.provider) {\n return a.provider.localeCompare(b.provider);\n }\n if (a.prefix !== b.prefix) {\n return a.prefix.localeCompare(b.prefix);\n }\n return a.name.localeCompare(b.name);\n });\n let lastIcon = {\n provider: \"\",\n prefix: \"\",\n name: \"\"\n };\n icons.forEach((icon) => {\n if (lastIcon.name === icon.name && lastIcon.prefix === icon.prefix && lastIcon.provider === icon.provider) {\n return;\n }\n lastIcon = icon;\n const provider = icon.provider;\n const prefix = icon.prefix;\n const name = icon.name;\n const providerStorage = storage[provider] || (storage[provider] = /* @__PURE__ */ Object.create(null));\n const localStorage = providerStorage[prefix] || (providerStorage[prefix] = getStorage(provider, prefix));\n let list;\n if (name in localStorage.icons) {\n list = result.loaded;\n } else if (prefix === \"\" || localStorage.missing.has(name)) {\n list = result.missing;\n } else {\n list = result.pending;\n }\n const item = {\n provider,\n prefix,\n name\n };\n list.push(item);\n });\n return result;\n}\n\nfunction removeCallback(storages, id) {\n storages.forEach((storage) => {\n const items = storage.loaderCallbacks;\n if (items) {\n storage.loaderCallbacks = items.filter((row) => row.id !== id);\n }\n });\n}\nfunction updateCallbacks(storage) {\n if (!storage.pendingCallbacksFlag) {\n storage.pendingCallbacksFlag = true;\n setTimeout(() => {\n storage.pendingCallbacksFlag = false;\n const items = storage.loaderCallbacks ? storage.loaderCallbacks.slice(0) : [];\n if (!items.length) {\n return;\n }\n let hasPending = false;\n const provider = storage.provider;\n const prefix = storage.prefix;\n items.forEach((item) => {\n const icons = item.icons;\n const oldLength = icons.pending.length;\n icons.pending = icons.pending.filter((icon) => {\n if (icon.prefix !== prefix) {\n return true;\n }\n const name = icon.name;\n if (storage.icons[name]) {\n icons.loaded.push({\n provider,\n prefix,\n name\n });\n } else if (storage.missing.has(name)) {\n icons.missing.push({\n provider,\n prefix,\n name\n });\n } else {\n hasPending = true;\n return true;\n }\n return false;\n });\n if (icons.pending.length !== oldLength) {\n if (!hasPending) {\n removeCallback([storage], item.id);\n }\n item.callback(\n icons.loaded.slice(0),\n icons.missing.slice(0),\n icons.pending.slice(0),\n item.abort\n );\n }\n });\n });\n }\n}\nlet idCounter = 0;\nfunction storeCallback(callback, icons, pendingSources) {\n const id = idCounter++;\n const abort = removeCallback.bind(null, pendingSources, id);\n if (!icons.pending.length) {\n return abort;\n }\n const item = {\n id,\n icons,\n callback,\n abort\n };\n pendingSources.forEach((storage) => {\n (storage.loaderCallbacks || (storage.loaderCallbacks = [])).push(item);\n });\n return abort;\n}\n\nfunction listToIcons(list, validate = true, simpleNames = false) {\n const result = [];\n list.forEach((item) => {\n const icon = typeof item === \"string\" ? stringToIcon(item, validate, simpleNames) : item;\n if (icon) {\n result.push(icon);\n }\n });\n return result;\n}\n\n// src/config.ts\nvar defaultConfig = {\n resources: [],\n index: 0,\n timeout: 2e3,\n rotate: 750,\n random: false,\n dataAfterTimeout: false\n};\n\n// src/query.ts\nfunction sendQuery(config, payload, query, done) {\n const resourcesCount = config.resources.length;\n const startIndex = config.random ? Math.floor(Math.random() * resourcesCount) : config.index;\n let resources;\n if (config.random) {\n let list = config.resources.slice(0);\n resources = [];\n while (list.length > 1) {\n const nextIndex = Math.floor(Math.random() * list.length);\n resources.push(list[nextIndex]);\n list = list.slice(0, nextIndex).concat(list.slice(nextIndex + 1));\n }\n resources = resources.concat(list);\n } else {\n resources = config.resources.slice(startIndex).concat(config.resources.slice(0, startIndex));\n }\n const startTime = Date.now();\n let status = \"pending\";\n let queriesSent = 0;\n let lastError;\n let timer = null;\n let queue = [];\n let doneCallbacks = [];\n if (typeof done === \"function\") {\n doneCallbacks.push(done);\n }\n function resetTimer() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function abort() {\n if (status === \"pending\") {\n status = \"aborted\";\n }\n resetTimer();\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function subscribe(callback, overwrite) {\n if (overwrite) {\n doneCallbacks = [];\n }\n if (typeof callback === \"function\") {\n doneCallbacks.push(callback);\n }\n }\n function getQueryStatus() {\n return {\n startTime,\n payload,\n status,\n queriesSent,\n queriesPending: queue.length,\n subscribe,\n abort\n };\n }\n function failQuery() {\n status = \"failed\";\n doneCallbacks.forEach((callback) => {\n callback(void 0, lastError);\n });\n }\n function clearQueue() {\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function moduleResponse(item, response, data) {\n const isError = response !== \"success\";\n queue = queue.filter((queued) => queued !== item);\n switch (status) {\n case \"pending\":\n break;\n case \"failed\":\n if (isError || !config.dataAfterTimeout) {\n return;\n }\n break;\n default:\n return;\n }\n if (response === \"abort\") {\n lastError = data;\n failQuery();\n return;\n }\n if (isError) {\n lastError = data;\n if (!queue.length) {\n if (!resources.length) {\n failQuery();\n } else {\n execNext();\n }\n }\n return;\n }\n resetTimer();\n clearQueue();\n if (!config.random) {\n const index = config.resources.indexOf(item.resource);\n if (index !== -1 && index !== config.index) {\n config.index = index;\n }\n }\n status = \"completed\";\n doneCallbacks.forEach((callback) => {\n callback(data);\n });\n }\n function execNext() {\n if (status !== \"pending\") {\n return;\n }\n resetTimer();\n const resource = resources.shift();\n if (resource === void 0) {\n if (queue.length) {\n timer = setTimeout(() => {\n resetTimer();\n if (status === \"pending\") {\n clearQueue();\n failQuery();\n }\n }, config.timeout);\n return;\n }\n failQuery();\n return;\n }\n const item = {\n status: \"pending\",\n resource,\n callback: (status2, data) => {\n moduleResponse(item, status2, data);\n }\n };\n queue.push(item);\n queriesSent++;\n timer = setTimeout(execNext, config.rotate);\n query(resource, payload, item.callback);\n }\n setTimeout(execNext);\n return getQueryStatus;\n}\n\n// src/index.ts\nfunction initRedundancy(cfg) {\n const config = {\n ...defaultConfig,\n ...cfg\n };\n let queries = [];\n function cleanup() {\n queries = queries.filter((item) => item().status === \"pending\");\n }\n function query(payload, queryCallback, doneCallback) {\n const query2 = sendQuery(\n config,\n payload,\n queryCallback,\n (data, error) => {\n cleanup();\n if (doneCallback) {\n doneCallback(data, error);\n }\n }\n );\n queries.push(query2);\n return query2;\n }\n function find(callback) {\n return queries.find((value) => {\n return callback(value);\n }) || null;\n }\n const instance = {\n query,\n find,\n setIndex: (index) => {\n config.index = index;\n },\n getIndex: () => config.index,\n cleanup\n };\n return instance;\n}\n\nfunction emptyCallback$1() {\n}\nconst redundancyCache = /* @__PURE__ */ Object.create(null);\nfunction getRedundancyCache(provider) {\n if (!redundancyCache[provider]) {\n const config = getAPIConfig(provider);\n if (!config) {\n return;\n }\n const redundancy = initRedundancy(config);\n const cachedReundancy = {\n config,\n redundancy\n };\n redundancyCache[provider] = cachedReundancy;\n }\n return redundancyCache[provider];\n}\nfunction sendAPIQuery(target, query, callback) {\n let redundancy;\n let send;\n if (typeof target === \"string\") {\n const api = getAPIModule(target);\n if (!api) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n send = api.send;\n const cached = getRedundancyCache(target);\n if (cached) {\n redundancy = cached.redundancy;\n }\n } else {\n const config = createAPIConfig(target);\n if (config) {\n redundancy = initRedundancy(config);\n const moduleKey = target.resources ? target.resources[0] : \"\";\n const api = getAPIModule(moduleKey);\n if (api) {\n send = api.send;\n }\n }\n }\n if (!redundancy || !send) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n return redundancy.query(query, send, callback)().abort;\n}\n\nconst browserCacheVersion = \"iconify2\";\nconst browserCachePrefix = \"iconify\";\nconst browserCacheCountKey = browserCachePrefix + \"-count\";\nconst browserCacheVersionKey = browserCachePrefix + \"-version\";\nconst browserStorageHour = 36e5;\nconst browserStorageCacheExpiration = 168;\n\nfunction getStoredItem(func, key) {\n try {\n return func.getItem(key);\n } catch (err) {\n }\n}\nfunction setStoredItem(func, key, value) {\n try {\n func.setItem(key, value);\n return true;\n } catch (err) {\n }\n}\nfunction removeStoredItem(func, key) {\n try {\n func.removeItem(key);\n } catch (err) {\n }\n}\n\nfunction setBrowserStorageItemsCount(storage, value) {\n return setStoredItem(storage, browserCacheCountKey, value.toString());\n}\nfunction getBrowserStorageItemsCount(storage) {\n return parseInt(getStoredItem(storage, browserCacheCountKey)) || 0;\n}\n\nconst browserStorageConfig = {\n local: true,\n session: true\n};\nconst browserStorageEmptyItems = {\n local: /* @__PURE__ */ new Set(),\n session: /* @__PURE__ */ new Set()\n};\nlet browserStorageStatus = false;\nfunction setBrowserStorageStatus(status) {\n browserStorageStatus = status;\n}\n\nlet _window = typeof window === \"undefined\" ? {} : window;\nfunction getBrowserStorage(key) {\n const attr = key + \"Storage\";\n try {\n if (_window && _window[attr] && typeof _window[attr].length === \"number\") {\n return _window[attr];\n }\n } catch (err) {\n }\n browserStorageConfig[key] = false;\n}\n\nfunction iterateBrowserStorage(key, callback) {\n const func = getBrowserStorage(key);\n if (!func) {\n return;\n }\n const version = getStoredItem(func, browserCacheVersionKey);\n if (version !== browserCacheVersion) {\n if (version) {\n const total2 = getBrowserStorageItemsCount(func);\n for (let i = 0; i < total2; i++) {\n removeStoredItem(func, browserCachePrefix + i.toString());\n }\n }\n setStoredItem(func, browserCacheVersionKey, browserCacheVersion);\n setBrowserStorageItemsCount(func, 0);\n return;\n }\n const minTime = Math.floor(Date.now() / browserStorageHour) - browserStorageCacheExpiration;\n const parseItem = (index) => {\n const name = browserCachePrefix + index.toString();\n const item = getStoredItem(func, name);\n if (typeof item !== \"string\") {\n return;\n }\n try {\n const data = JSON.parse(item);\n if (typeof data === \"object\" && typeof data.cached === \"number\" && data.cached > minTime && typeof data.provider === \"string\" && typeof data.data === \"object\" && typeof data.data.prefix === \"string\" && callback(data, index)) {\n return true;\n }\n } catch (err) {\n }\n removeStoredItem(func, name);\n };\n let total = getBrowserStorageItemsCount(func);\n for (let i = total - 1; i >= 0; i--) {\n if (!parseItem(i)) {\n if (i === total - 1) {\n total--;\n setBrowserStorageItemsCount(func, total);\n } else {\n browserStorageEmptyItems[key].add(i);\n }\n }\n }\n}\n\nfunction initBrowserStorage() {\n if (browserStorageStatus) {\n return;\n }\n setBrowserStorageStatus(true);\n for (const key in browserStorageConfig) {\n iterateBrowserStorage(key, (item) => {\n const iconSet = item.data;\n const provider = item.provider;\n const prefix = iconSet.prefix;\n const storage = getStorage(\n provider,\n prefix\n );\n if (!addIconSet(storage, iconSet).length) {\n return false;\n }\n const lastModified = iconSet.lastModified || -1;\n storage.lastModifiedCached = storage.lastModifiedCached ? Math.min(storage.lastModifiedCached, lastModified) : lastModified;\n return true;\n });\n }\n}\n\nfunction updateLastModified(storage, lastModified) {\n const lastValue = storage.lastModifiedCached;\n if (lastValue && lastValue >= lastModified) {\n return lastValue === lastModified;\n }\n storage.lastModifiedCached = lastModified;\n if (lastValue) {\n for (const key in browserStorageConfig) {\n iterateBrowserStorage(key, (item) => {\n const iconSet = item.data;\n return item.provider !== storage.provider || iconSet.prefix !== storage.prefix || iconSet.lastModified === lastModified;\n });\n }\n }\n return true;\n}\nfunction storeInBrowserStorage(storage, data) {\n if (!browserStorageStatus) {\n initBrowserStorage();\n }\n function store(key) {\n let func;\n if (!browserStorageConfig[key] || !(func = getBrowserStorage(key))) {\n return;\n }\n const set = browserStorageEmptyItems[key];\n let index;\n if (set.size) {\n set.delete(index = Array.from(set).shift());\n } else {\n index = getBrowserStorageItemsCount(func);\n if (!setBrowserStorageItemsCount(func, index + 1)) {\n return;\n }\n }\n const item = {\n cached: Math.floor(Date.now() / browserStorageHour),\n provider: storage.provider,\n data\n };\n return setStoredItem(\n func,\n browserCachePrefix + index.toString(),\n JSON.stringify(item)\n );\n }\n if (data.lastModified && !updateLastModified(storage, data.lastModified)) {\n return;\n }\n if (!Object.keys(data.icons).length) {\n return;\n }\n if (data.not_found) {\n data = Object.assign({}, data);\n delete data.not_found;\n }\n if (!store(\"local\")) {\n store(\"session\");\n }\n}\n\nfunction emptyCallback() {\n}\nfunction loadedNewIcons(storage) {\n if (!storage.iconsLoaderFlag) {\n storage.iconsLoaderFlag = true;\n setTimeout(() => {\n storage.iconsLoaderFlag = false;\n updateCallbacks(storage);\n });\n }\n}\nfunction loadNewIcons(storage, icons) {\n if (!storage.iconsToLoad) {\n storage.iconsToLoad = icons;\n } else {\n storage.iconsToLoad = storage.iconsToLoad.concat(icons).sort();\n }\n if (!storage.iconsQueueFlag) {\n storage.iconsQueueFlag = true;\n setTimeout(() => {\n storage.iconsQueueFlag = false;\n const { provider, prefix } = storage;\n const icons2 = storage.iconsToLoad;\n delete storage.iconsToLoad;\n let api;\n if (!icons2 || !(api = getAPIModule(provider))) {\n return;\n }\n const params = api.prepare(provider, prefix, icons2);\n params.forEach((item) => {\n sendAPIQuery(provider, item, (data) => {\n if (typeof data !== \"object\") {\n item.icons.forEach((name) => {\n storage.missing.add(name);\n });\n } else {\n try {\n const parsed = addIconSet(\n storage,\n data\n );\n if (!parsed.length) {\n return;\n }\n const pending = storage.pendingIcons;\n if (pending) {\n parsed.forEach((name) => {\n pending.delete(name);\n });\n }\n storeInBrowserStorage(storage, data);\n } catch (err) {\n console.error(err);\n }\n }\n loadedNewIcons(storage);\n });\n });\n });\n }\n}\nconst loadIcons = (icons, callback) => {\n const cleanedIcons = listToIcons(icons, true, allowSimpleNames());\n const sortedIcons = sortIcons(cleanedIcons);\n if (!sortedIcons.pending.length) {\n let callCallback = true;\n if (callback) {\n setTimeout(() => {\n if (callCallback) {\n callback(\n sortedIcons.loaded,\n sortedIcons.missing,\n sortedIcons.pending,\n emptyCallback\n );\n }\n });\n }\n return () => {\n callCallback = false;\n };\n }\n const newIcons = /* @__PURE__ */ Object.create(null);\n const sources = [];\n let lastProvider, lastPrefix;\n sortedIcons.pending.forEach((icon) => {\n const { provider, prefix } = icon;\n if (prefix === lastPrefix && provider === lastProvider) {\n return;\n }\n lastProvider = provider;\n lastPrefix = prefix;\n sources.push(getStorage(provider, prefix));\n const providerNewIcons = newIcons[provider] || (newIcons[provider] = /* @__PURE__ */ Object.create(null));\n if (!providerNewIcons[prefix]) {\n providerNewIcons[prefix] = [];\n }\n });\n sortedIcons.pending.forEach((icon) => {\n const { provider, prefix, name } = icon;\n const storage = getStorage(provider, prefix);\n const pendingQueue = storage.pendingIcons || (storage.pendingIcons = /* @__PURE__ */ new Set());\n if (!pendingQueue.has(name)) {\n pendingQueue.add(name);\n newIcons[provider][prefix].push(name);\n }\n });\n sources.forEach((storage) => {\n const { provider, prefix } = storage;\n if (newIcons[provider][prefix].length) {\n loadNewIcons(storage, newIcons[provider][prefix]);\n }\n });\n return callback ? storeCallback(callback, sortedIcons, sources) : emptyCallback;\n};\nconst loadIcon = (icon) => {\n return new Promise((fulfill, reject) => {\n const iconObj = typeof icon === \"string\" ? stringToIcon(icon, true) : icon;\n if (!iconObj) {\n reject(icon);\n return;\n }\n loadIcons([iconObj || icon], (loaded) => {\n if (loaded.length && iconObj) {\n const data = getIconData(iconObj);\n if (data) {\n fulfill({\n ...defaultIconProps,\n ...data\n });\n return;\n }\n }\n reject(icon);\n });\n });\n};\n\nfunction toggleBrowserCache(storage, value) {\n switch (storage) {\n case \"local\":\n case \"session\":\n browserStorageConfig[storage] = value;\n break;\n case \"all\":\n for (const key in browserStorageConfig) {\n browserStorageConfig[key] = value;\n }\n break;\n }\n}\n\nfunction mergeCustomisations(defaults, item) {\n const result = {\n ...defaults\n };\n for (const key in item) {\n const value = item[key];\n const valueType = typeof value;\n if (key in defaultIconSizeCustomisations) {\n if (value === null || value && (valueType === \"string\" || valueType === \"number\")) {\n result[key] = value;\n }\n } else if (valueType === typeof result[key]) {\n result[key] = key === \"rotate\" ? value % 4 : value;\n }\n }\n return result;\n}\n\nconst separator = /[\\s,]+/;\nfunction flipFromString(custom, flip) {\n flip.split(separator).forEach((str) => {\n const value = str.trim();\n switch (value) {\n case \"horizontal\":\n custom.hFlip = true;\n break;\n case \"vertical\":\n custom.vFlip = true;\n break;\n }\n });\n}\n\nfunction rotateFromString(value, defaultValue = 0) {\n const units = value.replace(/^-?[0-9.]*/, \"\");\n function cleanup(value2) {\n while (value2 < 0) {\n value2 += 4;\n }\n return value2 % 4;\n }\n if (units === \"\") {\n const num = parseInt(value);\n return isNaN(num) ? 0 : cleanup(num);\n } else if (units !== value) {\n let split = 0;\n switch (units) {\n case \"%\":\n split = 25;\n break;\n case \"deg\":\n split = 90;\n }\n if (split) {\n let num = parseFloat(value.slice(0, value.length - units.length));\n if (isNaN(num)) {\n return 0;\n }\n num = num / split;\n return num % 1 === 0 ? cleanup(num) : 0;\n }\n }\n return defaultValue;\n}\n\nconst defaultExtendedIconCustomisations = {\n ...defaultIconCustomisations,\n inline: false,\n};\n\n/**\n * Default SVG attributes\n */\nconst svgDefaults = {\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'xmlns:xlink': 'http://www.w3.org/1999/xlink',\n 'aria-hidden': true,\n 'role': 'img',\n};\n/**\n * Aliases for customisations.\n * In Vue 'v-' properties are reserved, so v-flip must be renamed\n */\nconst customisationAliases = {};\n['horizontal', 'vertical'].forEach((prefix) => {\n const attr = prefix.slice(0, 1) + 'Flip';\n // vertical-flip\n customisationAliases[prefix + '-flip'] = attr;\n // v-flip\n customisationAliases[prefix.slice(0, 1) + '-flip'] = attr;\n // verticalFlip\n customisationAliases[prefix + 'Flip'] = attr;\n});\n/**\n * Render icon\n */\nconst render = (createElement, \n// context.props\nprops, \n// context.data\ncontextData, \n// Icon must be validated before calling this function\nicon) => {\n // Split properties\n const customisations = mergeCustomisations(defaultExtendedIconCustomisations, props);\n const componentProps = { ...svgDefaults };\n // Style in Vue 2 components is always passed to rendered component, so no point in parsing it\n const style = {};\n // Get element properties\n for (let key in props) {\n const value = props[key];\n if (value === void 0) {\n continue;\n }\n switch (key) {\n // Properties to ignore\n case 'icon':\n case 'style':\n case 'onLoad':\n break;\n // Boolean attributes\n case 'inline':\n case 'hFlip':\n case 'vFlip':\n customisations[key] =\n value === true || value === 'true' || value === 1;\n break;\n // Flip as string: 'horizontal,vertical'\n case 'flip':\n if (typeof value === 'string') {\n flipFromString(customisations, value);\n }\n break;\n // Color: override style\n case 'color':\n style.color = value;\n break;\n // Rotation as string\n case 'rotate':\n if (typeof value === 'string') {\n customisations[key] = rotateFromString(value);\n }\n else if (typeof value === 'number') {\n customisations[key] = value;\n }\n break;\n // Remove aria-hidden\n case 'ariaHidden':\n case 'aria-hidden':\n // Vue transforms 'aria-hidden' property to 'ariaHidden'\n if (value !== true && value !== 'true') {\n delete componentProps['aria-hidden'];\n }\n break;\n default:\n const alias = customisationAliases[key];\n if (alias) {\n // Aliases for boolean customisations\n if (value === true || value === 'true' || value === 1) {\n customisations[alias] = true;\n }\n }\n else if (defaultExtendedIconCustomisations[key] === void 0) {\n // Copy missing property if it does not exist in customisations\n componentProps[key] = value;\n }\n }\n }\n // Generate icon\n const item = iconToSVG(icon, customisations);\n // Add icon stuff\n for (let key in item.attributes) {\n componentProps[key] = item.attributes[key];\n }\n if (customisations.inline) {\n style.verticalAlign = '-0.125em';\n }\n // Counter for ids based on \"id\" property to render icons consistently on server and client\n let localCounter = 0;\n let id = props.id;\n if (typeof id === 'string') {\n // Convert '-' to '_' to avoid errors in animations\n id = id.replace(/-/g, '_');\n }\n // Generate node data\n const data = {\n attrs: componentProps,\n domProps: {\n innerHTML: replaceIDs(item.body, id ? () => id + 'ID' + localCounter++ : 'iconifyVue'),\n },\n };\n if (Object.keys(style).length > 0) {\n data.style = style;\n }\n if (contextData) {\n ['on', 'ref'].forEach((attr) => {\n if (contextData[attr] !== void 0) {\n data[attr] = contextData[attr];\n }\n });\n ['staticClass', 'class'].forEach((attr) => {\n if (contextData[attr] !== void 0) {\n data.class = contextData[attr];\n }\n });\n }\n // Render icon\n return createElement('svg', data);\n};\n\n/**\n * Enable cache\n */\nfunction enableCache(storage) {\n toggleBrowserCache(storage, true);\n}\n/**\n * Disable cache\n */\nfunction disableCache(storage) {\n toggleBrowserCache(storage, false);\n}\n/**\n * Initialise stuff\n */\n// Enable short names\nallowSimpleNames(true);\n// Set API module\nsetAPIModule('', fetchAPIModule);\n/**\n * Browser stuff\n */\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n // Set cache and load existing cache\n initBrowserStorage();\n const _window = window;\n // Load icons from global \"IconifyPreload\"\n if (_window.IconifyPreload !== void 0) {\n const preload = _window.IconifyPreload;\n const err = 'Invalid IconifyPreload syntax.';\n if (typeof preload === 'object' && preload !== null) {\n (preload instanceof Array ? preload : [preload]).forEach((item) => {\n try {\n if (\n // Check if item is an object and not null/array\n typeof item !== 'object' ||\n item === null ||\n item instanceof Array ||\n // Check for 'icons' and 'prefix'\n typeof item.icons !== 'object' ||\n typeof item.prefix !== 'string' ||\n // Add icon set\n !addCollection(item)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n });\n }\n }\n // Set API from global \"IconifyProviders\"\n if (_window.IconifyProviders !== void 0) {\n const providers = _window.IconifyProviders;\n if (typeof providers === 'object' && providers !== null) {\n for (let key in providers) {\n const err = 'IconifyProviders[' + key + '] is invalid.';\n try {\n const value = providers[key];\n if (typeof value !== 'object' ||\n !value ||\n value.resources === void 0) {\n continue;\n }\n if (!addAPIProvider(key, value)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n }\n }\n }\n}\n/**\n * Empty icon data, rendered when icon is not available\n */\nconst emptyIcon = {\n body: '',\n};\nconst Icon = Vue.extend({\n // Do not inherit other attributes: it is handled by render()\n // In Vue 2 style is still passed!\n inheritAttrs: false,\n // Set initial data\n data() {\n return {\n // Mounted status\n iconMounted: false,\n };\n },\n beforeMount() {\n // Current icon name\n this._name = '';\n // Loading\n this._loadingIcon = null;\n // Mark as mounted\n this.iconMounted = true;\n },\n beforeDestroy() {\n this.abortLoading();\n },\n methods: {\n abortLoading() {\n if (this._loadingIcon) {\n this._loadingIcon.abort();\n this._loadingIcon = null;\n }\n },\n // Get data for icon to render or null\n getIcon(icon, onload) {\n // Icon is an object\n if (typeof icon === 'object' &&\n icon !== null &&\n typeof icon.body === 'string') {\n // Stop loading\n this._name = '';\n this.abortLoading();\n return {\n data: icon,\n };\n }\n // Invalid icon?\n let iconName;\n if (typeof icon !== 'string' ||\n (iconName = stringToIcon(icon, false, true)) === null) {\n this.abortLoading();\n return null;\n }\n // Load icon\n const data = getIconData(iconName);\n if (!data) {\n // Icon data is not available\n if (!this._loadingIcon || this._loadingIcon.name !== icon) {\n // New icon to load\n this.abortLoading();\n this._name = '';\n if (data !== null) {\n // Icon was not loaded\n this._loadingIcon = {\n name: icon,\n abort: loadIcons([iconName], () => {\n this.$forceUpdate();\n }),\n };\n }\n }\n return null;\n }\n // Icon data is available\n this.abortLoading();\n if (this._name !== icon) {\n this._name = icon;\n if (onload) {\n onload(icon);\n }\n }\n // Add classes\n const classes = ['iconify'];\n if (iconName.prefix !== '') {\n classes.push('iconify--' + iconName.prefix);\n }\n if (iconName.provider !== '') {\n classes.push('iconify--' + iconName.provider);\n }\n return { data, classes };\n },\n },\n // Render icon\n render(createElement) {\n const props = Object.assign({}, this.$attrs);\n let context = this.$data;\n // Get icon data\n const icon = this.iconMounted\n ? this.getIcon(props.icon, props.onLoad)\n : null;\n // Validate icon object\n if (!icon) {\n return render(createElement, props, context, emptyIcon);\n }\n // Add classes\n if (icon.classes) {\n context = {\n ...context,\n class: (typeof context['class'] === 'string'\n ? context['class'] + ' '\n : '') + icon.classes.join(' '),\n };\n }\n // Render icon\n return render(createElement, props, context, icon.data);\n },\n});\n/**\n * Internal API\n */\nconst _api = {\n getAPIConfig,\n setAPIModule,\n sendAPIQuery,\n setFetch,\n getFetch,\n listAPIProviders,\n};\n\nexport { Icon, _api, addAPIProvider, addCollection, addIcon, iconToSVG as buildIcon, calculateSize, disableCache, enableCache, getIcon, iconExists, listIcons, loadIcon, loadIcons, replaceIDs };\n","var map = {\n\t\"./abia.png\": \"5b1f\",\n\t\"./enugu.png\": \"0c0d\",\n\t\"./kaduna.png\": \"51ba\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"d2c7\";"],"sourceRoot":""}