úÎ!1Đ(úG      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEF Safeĺ GHIJKLMNonePN OPQ RSTUVWXYZNone "#4=?HPV?[\]^_`abcdefNone"#=?MĘsalakLoad Salak Monad Transfersalak-Source package, used to store all properties.salakPut key value pairs into ghijklmnopqrstuvwxyzNone"#48=>?@AMUVX  salak3Monad used to parse properties to destination type.{salak Succeed value|salak Empty value}salak Fail value!salakOptional value."salakDefault value.~salakReadPrimitive valuesalak Parse value!€ ‚ƒ„…†‡ˆ‰Š}|{!"‹ŒŽ~‘’“”!5"5None"#MP—#salakRunSalak Monad Transfer•salakReloadable SourcePack&salakTmsg stands for properties changing record if true, otherwise msg means reload error.'salak message log(salakRun action in #, – $ is reloadable action.#—˜•™š›$%&'œžŸ ( NoneĘ)salakConvert arguments to properties*salak Load environment variables into +salak+Default way to parse command line arguments,salak!Load command line arguments into )*+,(c) 2019 Daniel YUBSD3leptonyu@gmail.com experimentalportableNone(c) 2019 Daniel YUBSD3leptonyu@gmail.com experimentalportableNone "#=?SUVX'0-salak Monad that can fetch properties.3salakLoad file by extension4salakProp load configuration6salak Config name7salakSpecify config dir8salak&Search current directory, default true9salak%Search home directory, default false.:salakHow to parse commandline<salakLoad and run salak  and fetch properties.>salakiDefault run salak. All these configuration sources has orders, from highest priority to lowest priority: ˙1. loadCommandLine 2. loadEnvironment 3. loadConfFiles 4. load file from folder `salak.conf.dir` if defined 5. load file from current folder if enabled 6. load file from home folder if enabled 7. file extension matching, support yaml or toml or any other loader.?salakASimplified run salak, should specified code name and file format.@salakTry fetch properties from AsalakFetch properties from , or throw failBsalakFetch dynamic properties from , or throw fail<salakLoad properties monad.salakFetch properties monad.@salakProperties keyAsalakProperties keyBsalakProperties key4  !"#$%'&()*+,-./0123456789:;<=>?@AB4<>?456789:;,)+*3=12/0#-.@A$%'&(B  !"/303Ą     !"#$%&'()*+,-../01 2 3 4 567889:;<<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm nopqrsstuvwxyz{|}~€‚ƒ„…*†‡‡ˆ‰Š‹ŒŽ‘’“”•–—˜™-š–›œžŸ Ą˘"salak-0.2.9-8kPQTpy67oQ1tmQANQ4m9r Salak.LoadSalakSalak.Types.SelectorSalak.Types.ValueSalak.Types.Source Salak.Types Salak.PropSalak.Load.DynamicSalak.Load.EnvSelectorSStrSNumsimpleSelectorsValueVStrVRefVNumVBoolVZTimeVLTimeVDayVHourPrioritynewVStrSource emptySource nullSource updateSource updateSources insertSource LoadSalakT SourcePackaddErrloadFile tryLoadFileloadingloadMock FromEnumProp fromEnumPropFromPropfromPropProp.?=.?: RunSalakT ReloadResultisErrormsgexecParseCommandLineloadEnvdefaultParseCommandLineloadCommandLine HasSourcePack askSourcePack:|:HasLoadloadersExtLoad PropConfig configName configDirKey searchCurrent searchHome commandLineloadExtloadAndRunSalak loadByExtrunSalak runSalakWithfetchrequirerequireD$fDefaultPropConfig $fHasLoad:|:$fHasSourcePackLoadSalakT$fHasSourcePackRunSalakTisStrtoKey selectorsexprssNamesNumexprQVRefTextRValRRefreftypeOfV getPrioritygetTypegetVgetQnullQinsertQreplaceQSourceTmapValuevalueshowKey foldSource sizeSource selectSourcereplacereplace'insertinsert'unLoadreEnvpackIdprefixsourceerrsReloadreload sourceName defReload emptyReloademptySourcePack mapSourceselect loadInternalrunLoadTjumpONF readPrimitive readSelect GFromProp gFromPropPropTunProp PropSourcecacheRefcurrSPoriginSPPResultrunPropaskSub askOrigingEnumevalVerrselectPsearchconverttoNumReloadableSourcePackghc-prim GHC.TypesIOunRun reloadAll sourcePackreloadableSourcePackaskRSPsearch' reloadActionrunT