Mx      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                                                                                   ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                            !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw- Safe-Inferred xyz{|}~y xyz{|}~ Safe-Inferred'  !"#$%&'&  !"#$%&'"&%$#!  '!  "&%$#' Safe-InferredT()*+,-./0123456789:;<=>?@A()*+,-./0123456789:;<=>?@A()*+,-./0123456789:;<=>?@A()*+,-./0123456789:;<=>?@A Safe-InferredTBCDEBCDEBCDEBCDENone  Safe-InferredI'A rendering function that drops colors:FGHI     FGHIFGHIFGHI Safe-Inferred KFA table where keys are the names of the computations, and values are Ls.N&Total number of calls to a computationO(Total time spent during this computationPMinimum execution timeQMaximum execution timeR&Returns the actual statistical values.S#Create a new statistical container.T?Wraps a computation, and measures related execution statistics.U Just like T, discarding the result value.JKLMNOPQRSTStatistics containerAction identifier ComputationU JKLMNOPQRSTU TUSRKLMNOPQJ JKLMNOPQRSTUNoneSee System.FilePath.PosixSee System.FilePath.PosixDrop the filename. 'dropFileName x == fst (splitFileName x)(See System.FilePath.Posix)*Split a filename into directory and file. combine is the inverse. LValid x => uncurry (</>) (splitFileName x) == x || fst (splitFileName x) == "./" Valid x => isValid (fst (splitFileName x)) splitFileName "file/bob.txt" == ("file/", "bob.txt") splitFileName "file/" == ("file/", "") splitFileName "bob" == ("./", "bob") Posix: splitFileName "/" == ("/","") Windows: splitFileName "c:" == ("c:","")(See System.FilePath.Posix) $ !"#$%&'()*+,-./0123456789: None0VAll the possible statementsWThis is a special statement that is used to include the expressions that are top level. This is certainly buggy, but probably just like the original implementation.fFor all types of collectors.hHigher order function call.t9All types of conditional statements are stored that way (case, if, etc.)|Relationship link type.AThese are resources that are exported AND included in the catalogType for exported resourcesType for virtual resources5Normal resource, that will be included in the catalogThe s This is for higher order functions.+All conditionals are stored in this format.3An unresolved value, typically the parser's output.?The regular expression compilation is performed during parsing.A Resource[reference]1Special token that is generated when parsing the undef literal.YA string that might contain variable references. The type should be refined at one point. Raw string.*Special tokens generated when parsing the true or false literals.UCurrently only two types of block parameters are supported, single values and pairs. |k,v| |k|The distinct Puppet higher order functions1Position in a puppet file. Currently an alias to ;.5A pair containing the start and end of a given token.#Properly capitalizes resource types2Generates an initial position based on a filename. Generates a % based on a filename and line number.A helper function for writing s.)Tries to turn an unresolved value into a < without any context.VWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~=>?@ABCDEFVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~|~}Vcba`_^]\[ZYXWz{xyvwturspqnolmjkhifgde0V cba`_^]\[ZYXWdefghijklmnopqrstuvwxyz{|~} =>?@ABCDEFNone  None!"023468MT, Fields for the resource endpointFields for the node endpointFields for the fact endpointAPretty straightforward way to define the various PuppetDB queries Shttp://docs.puppetlabs.com/puppetdb/1.5/api/commands.html#replace-catalog-version-3 Qhttp://docs.puppetlabs.com/puppetdb/1.5/api/commands.html#replace-facts-version-1 Shttp://docs.puppetlabs.com/puppetdb/1.5/api/commands.html#deactivate-node-version-1 Khttp://docs.puppetlabs.com/puppetdb/1.5/api/query/v3/facts.html#get-v3facts Shttp://docs.puppetlabs.com/puppetdb/1.5/api/query/v3/resources.html#get-v3resourcesHThis is only here to tell the test PuppetDB to save its content to disk.(Wire format, see  Khttp://docs.puppetlabs.com/puppetdb/1.5/api/wire_format/catalog_format.html.3dThe most important function, computing catalogs. Given a node name and a list of facts, it returns the result of the catalog compilation : either an error, or a tuple containing all the resources in this catalog, the dependency map, the exported resources, and a list of known resources, that might not be up to date, but are here for code coverage tests.8RAttributes (and providers) of a puppet resource type bundled with validation rules=?This is a fully resolved resource that will be used in the 7.?Resource name.@All the resource aliasesAResource parameters.BResource relations.CMResource scope when it was defined, the real container will be the first itemF0Source code position of the resource definition.G2The node were this resource was created, if remote\Silently ignore errors]Can silently replace^)Overriding forbidden, will throw an error`For stuff like realizea"For collectors, optional resourcesfThe main monad5The set of modules we will not include or whatsoever.WThis one is used when finalizing imported resources, and contains the current node nameSDummy container for imported resources, so that we know we must update the nodenamePContained in a define, along with the position where this define was ... definedContained in a classContained at node or root level]This type is used to differenciate the distinct top level types that are exposed by the DSL.This one is special. It represents top level statements that are not part of a node, define or class. It is defined as spurious because it is not what you are supposed to be. Also the caching system doesn't like them too much right now.This is for classes.This is for defines.This is for node entries."The type of the Hiera API function#The different kind of hiera queries hiera_hash hiera_arraystandard hiera queryx:helper for hashmap, in case we want another kind of map ..      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~WAll the variables that Hiera can interpolate, the top level ones being prefixed with :: The query      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~v      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     "#$%&'()*+,./012345679:;<=>?@ABCEFGHIJLMNOQRSTUVWXYZ\]^_abcdefghijklmnopqrstuvwxyz{|}~k~}|{zyxwvutsrqponmlijhgfbcde_a`[^]\WZYXOPQRSTUVIJKLMNH=>?@ABCDEFG<89:;7123456/0()*+,-.#$%&' !"           !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPYZWXUVSTQR[[[[[^_\]```klijghefmcdabnopqrstuvwxyz{|}~        !"#$%&'()*+,-./0123456789:;<= >?@ABCDEFGHIJKLMNOPQRSTUVWZYX[^]\_a`bcdefghijk~}|{zyxwvutsrqponml        !" #$%&'()*+,-. /0123456789 :;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ None3TGRuns a puppet function in the  CatalogMonad_ monad. It takes a state, function name and list of arguments. It returns a valid Puppet value.HInitializes the Lua state. The argument is the modules directory. Each subdirectory will be traversed for functions. The default location is /lib/puppet/parser/functions.I!Obviously releases the Lua state. JKLMNGHOIPLGHOI JKLMNGHOIP None None 2468TQPAn attoparsec parser that turns text into parts that are ready for interpolationaThe only method you'll ever need. It runs a Hiera server and gives you a querying function. The Nil. output is explicitely given as a Maybe type.CA dummy hiera function that will be used when hiera is not detectedR#The combinator for "normal" queriesSThe combinator for hiera_arrayTThe combinator for hiera_hash"UVWXYZ[\]^_`abcdefgQhRSTijklmnopUVXWYZ[]\^_`abcdefgQhRSTijklmnop NoneT None3TGiven an URL (ie.  http://localhost:8080), will return an incomplete .qrqrNone!"stuvwxyz{|}~stuvwxyz{|}~None (Useful helper for buiding error messages4Validate resources given a list of valid parameters:Gchecks that no unknown parameters have been set (except metaparameters)\This validator always accept the resources, but add the default parameters (to be defined :)/Helper function that runs a validor on a PArray;This checks that a given parameter is a string. If it is a  ResolvedInt or  ResolvedBool! it will convert them to strings.GMakes sure that the parameter, if defined, has a value among this list.2This fills the default values of unset parameters.,Checks that a given parameter, if set, is a  ResolvedInt. If it is a  it will attempt to parse it.OCopies the "name" value into the parameter if this is not set. It implies the  validator.SChecks that a given parameter is set unless the resources "ensure" is set to absent%Checks that a given parameter is set.@Helper that takes a list of stuff and will generate a validator.      FGHI !None"None#None$None%None&None'None(None0)None*None+NoneNone/The map of native types. They are described in Puppet.NativeTypes.Helpers.HContrary to the previous iteration, this will let non native types pass.None !"234T,NoneTNoneTPA useful type that is used when trying to perform arithmetic on Puppet numbers.IConverts class resource names to lowercase (fix for the jenkins plugin).^A hiera helper function, that will throw all Hiera errors and log messages to the main monad.+The implementation of all hiera_* functionsTries to convert a pair of s into ys, as defined in attoparsec. If the two values can be converted, it will convert them so that they are of the same typeThis tries to run a numerical binary operation on two puppet expressions. It will try to resolve them, then convert them to numbers (using  toNumbners0), and will finally apply the correct operation.4Resolves a variable, or throws an error if it can't.BA simple helper that checks if a given type is native or a define.(A pure function for resolving variables.,A helper for numerical comparison functions..Handles the wonders of puppet equality checks.(The main resolution function : turns an  into a , if possible. Resolves an  (terminal for the  data type) into a )Turns strings, numbers and booleans into , or throws an error.9Turns everything it can into a number, or throws an error 9resolveValueString = resolveValue >=> resolvePValueString CresolveExpressionString = resolveExpression >=> resolvePValueString CresolveExpressionNumber = resolveExpression >=> resolvePValueNumber Just like , but accepts arrays.@A special helper function for argument like argument like pairs.Turns a  into a </, as explained in the reference documentation.4This resolve function calls at the expression level.Turns an unresolved ( from the parser into a fully resolved .Turns a resource type and 6 into something that can be used in a PuppetDB query.Checks whether a given = matches a v. Note that the expression doesn't check for type, so you must filter the resources by type beforehand, if needs be.vGenerates variable associations for evaluation of blocks. Each item corresponds to an iteration in the calling block.Sets the proper variables, and returns the scope variables the way they were before being modified. This is a hack that ensures that variables are local to the new scope._It doesn't work at all like other Puppet parts, but consistency isn't really expected here ...?Restores what needs restoring. This will erase all allocations.*Evaluates a statement in "pure" mode. TODOThis extracts the final expression from an HFunctionCall. When it does not exists, it checks if the last statement is in fact a function callAll the "higher order function" stuff, for "value" mode. In this case we are in "pure" mode, and only a few statements are allowed.$ Resource type Resource name left operand right operand operationThe whole scope data.Current scope name.Full variable name.$NoneTNone4Worst name ever, this is a set of pure stub for the  type.A pure q, that can only evaluate a subset of the templates, and that can include only the supplied top level statements.6Evaluates an interpreter expression in a pure context.6A bunch of facts that can be used for pure evaluation.@A default evaluation function for arbitrary interpreter actions.A top-level statement map3A list of facts that will be used during evaluationA top-level mapThe action to evaluateNone*3BE*Used to parse chains of resource relationsP      !"#I      !"#None3) Incomplete,Extracts the statements from _, ^, ] and the spurious statements of W.H     $%&'()*+,-./ !"#$%&'()*+,<      !"#$%&'()*+,<)*+ !"#$%&'(,     H     $%&'()*+,-./ !"#$%&'()*+,NoneHMT.1We enter the scope as the parent of another class/0We enter the scope as the child of another class3uThis is the main function for computing catalogs. It returns the result of the compulation (either an error, or a tuple containing all the resources, dependency map, exported resources, and defined resources (this last one might not be up to date and is only useful for code coverage tests)) along with all messages that have been generated by the compilation process.@JConverts a list of pairs into a container, checking there is no duplicateCThis function loads class and define parameters into scope. It checks that all mandatory parameters are set, that no extra parameter is declared.aIt is able to fill unset parameters with values from Hiera (for classes only) or default values.DgEnters a new scope, checks it is not already defined, and inherits the defaults from the current scopeInheriting the defaults is necessary for non native types, because they will be expanded in "finalize", so if this was not done, we would be expanding the defines without the defaults applied"-./0123hA function that will interpret the InterpreterMonad and will convert it to something else (for example,  interpretIO)get statements functioncompute template function Node name Facts ...List of native typesHiera query function The set of ignored modules456789:;<=>?@ABCDEFGNSet if this is an inheritance load, so that we can set calling module properlyHIJKLMN"-./0123456789:;<=>?@ABCDEFGHIJKLMN"123456789:;<=>?@ABC-0/.DEFGHIJKLMN-0/.123456789:;<=>?@ABCDEFGHIJKLMNNoneTO4Contains the implementation of the StdLib functions.'O0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUOO'O0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUNone2468VThe path to the manifests.WThe path to the modules.XThe path to the template.YThe list of native types.ZThe set of ignored modules\^Setup preferences from external/custom params k is set through lenses (ie: hieraPath.~mypath)PQVWX[Y\]ZRSTUVWXYZ[^\_ PQRSTUVWXYZ[\ \RSTUVWXYZ[PQP QVWX[Y\]ZR STUVWXYZ[^\_-None T`abcdefghijklmfi `abcdefghijklmNoneT]kThis is a high level function, that will initialize the parsing and interpretation infrastructure from the PrefsC structure, and will return a function that will take a node name, # and return either an error or the 7, along with the dependency graph and catalog of exported resources. It also return a few IO functions that can be used in order to query the daemon for statistics, following the format in  Puppet.Stats.It will internaly initialize a thread for the LUA interpreter, and a thread for the Ruby one. It should cache the AST of every .pp file, and could use a bit of memory. As a comparison, it fits in 60 MB with the author's manifests, but really breathes when given 300 MB of heap space. In this configuration, even if it spawns a ruby process for every template evaluation, it is way faster than the puppet stack.?It can optionnaly talk with PuppetDB, by setting an URL in the Prefs^ data structure. The recommended way to set it to http://localhost:8080 and set a SSH tunnel : &ssh -L 8080:localhost:8080 puppet.host Canveats :It might be buggy when top level statements that are not class/define/nodes are altered, or when files loaded with require are changed.The catalog is not computed exactly the same way Puppet does. Some good practices are enforced. As an example querying a dictionary with a non existent key returns undef in puppet, whereas it throws an error with language-puppet.no]pqrs]]no]pqrsNone2468T^8Initializes the test DB using a file to back its content_0Starts a new PuppetDB, without any backing file.$tuvwxyz{|}~^_^_^_tuvwxy|{z}~^_NoneT`'The supported PuppetDB implementations.aGA slow but handy PuppetDB implementation that is backed by a YAML file.b*A stupid stub, this is the default choice.c;Your standard PuppetDB, queried through the HTTP interface.dGiven a `0, will try return a sane default implementation.eTurns a 7 and H4 into a document that can be serialized and fed to  puppet apply.`abcdef`abcde`cbafde`cbadefNoneT .The state of the reader monad the tests run inn'This tests that file sources are valid.oMThis tests that all users and groups used as resource parameters are definedr Run tests on a specific resourcesTests a specific parametertTest a serie of parametersuRetrieves a given file content, and runs a test on it. It works on the explicit "content" parameter, or can resolve the "source" parameter to open the file.vNInitializes a daemon made for running tests, using the specific test puppetDBwA default testing daemon.ghijklmnopqr7The test description (the thing that goes after should) Resource type Resource nameTesting functionsThe parameter nameThe resource to testTesting functiontThe parameter names and valuesThe resource to testu3Test description (the thing that goes after should) The file pathTesting functionv#Contains the puppetdb API functionsPath to the manifestsThe facter functionwi      !"#$%&'()*+,-./0123456789:      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~FGHI      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     "#$%&'()*+,./012345679:;<=>?@ABCEFGHIJLMNOQRSTUVWXYZ\]^_abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,ghijklmnopqrstuvwnovwlmpqghijkrstughijklmnopqrstuvw./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ:RSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{{|}~6>     V               ! " # $ % & ' ( ) * + , - . . / 0 1 2 3 4 5 6 7 8 8 9 : ; < = > > ? @ A B B C D E F G H H I I J K L M N O O P Q R S S T U V W X Y Z [ \ ] ^ ^ _ ` a b c c d e f g h i j k l m n o p q r s t u u v w x y z { { | } ~                                                                                                                                                                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~YZ     y !"#$"#%"#&"#'"#("#)"#*"#*"#+"#,"#,"#-"#."#."#/"#0"#0"#1"#2"#2"#3"#4"#4"#5"#6"#6"#7"#8"#89:;<=>?@ABCDEFGH I J K L M N O P Q R S T U V W X Y Z [ [ \ ] ^ _ _ ` a b c d e f g h i j k l m n o p q rstuvwxyz{|}~!!!!"""""""###$$$$%%&&&&&''((((((((((((((())))**+++,[S    V  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV-W-X-Y-Y-Z-[-\-]-^-_-`-a-b-cdefghijjklmnopqrstuvwxyz{|}~"""""         !"#$%&'(')*+*,-.-/-0-1-2-3-4-5-6-7-8-9-:-;-<=>=?=@=A=B=C=D=E=F=G=H=I=J=K=L=M=N=O=P=Q=R=S=T=U=V=W=X=Y=Z=[=\]^]_]`]a]b]c]d]d]e]fghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzg{g|g}g~ggggggggggggg      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghgigjgklmlnlolplqlrlsltlulvlwlxlylzl{l|l}l~ll      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRRSRRTRURVRRWRXRYRRZR[R\R]R^R_R`RRaRRbRcRdRReRRfRgRhRiRRRjRRRkRlRmRnRoRpRqRRrRsRtRuRvRwRxRyRzR{R|R}R~RRRlanguage-puppet-1.0.1Puppet.TestingErb.Ruby Erb.Parser SafeProcess Puppet.PP Puppet.StatsPuppet.Parser.TypesPuppet.Parser.PrettyPrinterPuppet.Interpreter.TypesPuppetDB.Dummy Hiera.ServerFacterPuppetDB.Remote Puppet.Interpreter.PrettyPrinterPuppet.NativeTypes.HelpersPuppet.NativeTypesPuppet.Interpreter.IOPuppet.Interpreter.Resolve Erb.EvaluatePuppet.Interpreter.Pure Puppet.Parser Puppet.LensPuppet.Interpreter Puppet.StdlibPuppet.Preferences Puppet.DaemonPuppetDB.TestDBPuppetDB.CommonPaths_language_puppetPuppet.Interpreter.RubyRandom Puppet.UtilsPuppet.PluginsPuppet.NativeTypes.ConcatPuppet.NativeTypes.CronPuppet.NativeTypes.ExecPuppet.NativeTypes.FilePuppet.NativeTypes.GroupPuppet.NativeTypes.HostPuppet.NativeTypes.MountPuppet.NativeTypes.PackagePuppet.NativeTypes.SshSecurePuppet.NativeTypes.UserPuppet.NativeTypes.ZoneRecordPuppet.Manifests Erb.Compute hspec-1.11.4Test.Hspec.Runnerhspec RubyStatement DropNextSpaceDropPrevSpace' DropPrevSpacePuts ExpressionErrorBFalseBTrueValueBlockOperation MethodCallObjectConditionalValue NegOperation NotOperationNotRegexpOperationRegexpOperationUnderOperationUnderEqualOperationAboveEqualOperationAboveOperationDifferentOperationEqualOperation OrOperation AndOperationShiftRightOperationShiftLeftOperationMultiplyOperation DivOperationMinusOperation PlusOperationLookupOperationArraySymbol InterpolableLiteral$fPrettyExpressiondeflexerparensbracesoperatorsymbol reservedOp whiteSpacenaturalOrFloat identifierrubyexpressiontableterm scopeLookup stringLiteral doubleQuoted singleQuoted objecttermvariablereference rubystatement textblockW textblock rubyblock erbparser parseErbFileparseErbStringsafeReadProcessTimeoutsafeCreateProcesssafeReadProcessterminateProcessGroupttexttshowpshowdisplayNocolorMStats StatsTable StatsPoint_statspointCount_statspointTotal_statspointMin_statspointMaxgetStatsnewStatsmeasuremeasure_ Statement TopContainer DependencyResourceCollectionSHFunctionCallMainFunctionCallVariableAssignmentNodeDefineDeclarationClassDeclarationConditionalStatementResourceOverrideDefaultDeclarationResourceDeclarationDepRCollSFCMFCVarAssNd DefineDec ClassDecl CondStatementResOver DefaultDecResDecLinkType RSubscribeRBeforeRRequireRNotifyNodeDesc NodeDefault NodeMatchNodeName VirtualityExportedRealizedExportedVirtualNormal CollectorTypeExportedCollector CollectorSearchExpression AlwaysTrueOrSearch AndSearchNonEqualitySearchEqualitySearchTerminalFunctionApplicationNegateLookup LeftShift RightShiftModuloMultiplicationDivision SubstractionAdditionContains NotRegexMatch RegexMatch MoreEqualThan LessEqualThanMoreThanLessThanOrAndNot DifferentEqual SelectorCaseSelectorDefault SelectorValueUValueUNumberUHFunctionCall UFunctionCallUVariableReferenceURegexpUHashUArrayUResourceReferenceUUndef UInterpolableUStringUBoolean CompRegex HFunctionCall_hftype_hfexpr _hfparams _hfstatements _hfexpressionBlockParametersBPPairBPSingleHigherFuncTypeHFSliceHFFilterHFReduceHFMapHFEachPosition PPosition capitalizeRT capitalize' lSourceName lSourceLine lSourceColumn initialPPostoPPosarraytoBoolrel2textHasHFunctionCall hFunctionCallhfexpr hfexpressionhfparams hfstatementshftype capitalize parensList hashComma stringEscapeshowPosshowPPosshowAssshowArgsshowFuncbraceStatements ppStatements$fPrettyStatement$fPrettyNodeDesc$fPrettyLinkType$fPrettySelectorCase$fPrettyHFunctionCall$fPrettyUValue$fPrettySearchExpression$fPrettyBlockParameters$fPrettyHigherFuncType ResourceFieldRLineRFile RExportedRTitleRType RParameter RCertnameRTag NodeFieldNFactNName FactField FCertnameFValueFNameQueryQEmptyQNotQOrQAndQMatchQLEQGEQLQGQEqual PuppetDBAPIpdbInformationreplaceCatalog replaceFactsdeactivateNodegetFacts getResourcesgetNodescommitDBgetResourcesOfNode PNodeInfo_pnodeinfoNodename_pnodeinfoDeactivated_pnodeinfoCatalogT_pnodeinfoFactsT_pnodeinfoReportT PFactInfo_pfactinfoNodename_pfactinfoFactname_pfactinfoFactval WireCatalog_wirecatalogNodename_wirecatalogWVersion_wirecatalogWEdges_wirecatalogWResources_wirecatalogTransactionUUID PuppetEdge DaemonMethods _dGetCatalog _dParserStats_dCatalogStats_dTemplateStats FinalCatalogNativeTypeMethods_puppetValidate _puppetFieldsNativeTypeValidateResource_rid_ralias _rattributes _rrelations_rscope _rvirtuality_rtags_rpos_rnodeEdgeMapLinkInformation_linksrc_linkdst _linkType_linkPosResourceModifier _rmResType_rmModifierType_rmType _rmSearch _rmMutation_rmDeclarationResourceCollectorType DontRealizeRealizeCollectedRealizeVirtual OverrideType CantReplaceReplace CantOverride ModifierTypeModifierMustMatchModifierCollector RIdentifier_itype_inameInterpreterMonadInterpreterWriterInterpreterLogWarningInterpreterInstrCallLua TraceEventReadFilePDBGetResourcesOfNode PDBCommitDB PDBGetNodesPDBGetResources PDBGetFactsPDBDeactivateNodePDBReplaceFactsPDBReplaceCatalogPDBInformation WriterListen WriterPass WriterTell ErrorCatch ErrorThrowIsIgnoredModuleGetCurrentCallStack HieraQuery GetNodeNameExternalFunctionComputeTemplate GetStatementGetNativeTypes ImpureMethods_imGetCurrentCallStack _imReadFile _imTraceEvent _imCallLuaInterpreterReader _nativeTypes _getStatement_computeTemplateFunction_pdbAPI_externalFunctions _thisNodename _hieraQuery _ioMethods_ignoredModulesInterpreterState_scopes_loadedClasses_definedResources _curScope_curPos_nestedDeclarations_extraRelations_resModScopeInformation_scopeVariables_scopeDefaults_scopeExtraTags_scopeContainer_scopeOverrides _scopeParentResRefOverride_rrid _rrparams_rrpos CurContainer_cctype_cctagsCurContainerDesc ContImport ContImported ContDefine ContClassContRoot ResDefaults_defType _defSrcScope _defValues_defPos TopLevelType TopSpuriousTopClass TopDefineTopNodeFactsScopeClassIncludeTypeIncludeResourceIncludeStandardRSearchExpression RAlwaysTrue ROrSearch RAndSearchRNonEqualitySearchREqualitySearchHieraQueryFuncHieraQueryType HashMerge ArrayMergePriorityPValuePNumberPHashPArrayPResourceReferencePStringPUndefPBoolean PrettyErrorgetError ContainerNodenamemetaparameterswarndebug logWriter$fHashableRIdentifier$fErrorPrettyError$fMonadWriter[]ProgramT$fMonadErrorPrettyErrorProgramT$fHashableTopLevelType$fIsStringPValue$fIsStringPrettyError$fShowPrettyErrorHasRIdentifier rIdentifierinameitype$fHasRIdentifierRIdentifierHasResRefOverrideresRefOverriderridrrparamsrrpos!$fHasResRefOverrideResRefOverrideHasLinkInformationlinkInformationlinkPoslinkTypelinkdstlinksrc#$fHasLinkInformationLinkInformationHasResDefaults resDefaultsdefPos defSrcScopedefType defValues$fHasResDefaultsResDefaultsHasResourceModifierresourceModifier rmDeclarationrmModifierType rmMutation rmResTypermSearchrmType%$fHasResourceModifierResourceModifierHasDaemonMethods daemonMethods dCatalogStats dGetCatalog dParserStatsdTemplateStats$fHasDaemonMethodsDaemonMethodsHasNativeTypeMethodsnativeTypeMethods puppetFieldspuppetValidate'$fHasNativeTypeMethodsNativeTypeMethodsHasScopeInformationscopeInformationscopeContainer scopeDefaultsscopeExtraTagsscopeOverrides scopeParentscopeVariables%$fHasScopeInformationScopeInformation HasResourceresourceralias rattributesridrnoderpos rrelationsrscopertags rvirtuality$fHasResourceResourceHasInterpreterStateinterpreterStatecurPoscurScopedefinedResourcesextraRelations loadedClassesnestedDeclarationsresModscopes%$fHasInterpreterStateInterpreterStateHasInterpreterReaderinterpreterReadercomputeTemplateFunctionexternalFunctions getStatement hieraQueryignoredModules ioMethods nativeTypespdbAPI thisNodename($fHasInterpreterReaderInterpreterReadermHasImpureMethods impureMethods imCallLuaimGetCurrentCallStack imReadFile imTraceEvent $fHasImpureMethodsImpureMethodsmHasCurContainer curContainercctagscctype$fHasCurContainerCurContainer HasWVersionwVersion HasWResources wResources HasWEdgeswEdgesHasTransactionUUIDtransactionUUID HasNodenamenodename$fHasNodenameWireCatalogText HasFactvalfactval HasFactnamefactname$fHasFactnamePFactInfoText MonadStack getCallStack MonadThrowPos throwPosError HasReportTreportT HasFactsTfactsTHasDeactivated deactivated HasCatalogTcatalogT rcurcontainergetCurContainer scopeName getScopeNamegetScope eitherDocIO interpreterIO mightFailsafeDecodeUtf8interpreterErrorresourceRelations ifromListikeys isingleton ifromListWith iinsertWith iunionWithfnullrid2texttext2Scientific initialStatedummypos$fAsNumberPValue$fFromJSONPNodeInfo$fToJSONPNodeInfo$fFromJSONPFactInfo$fToJSONPFactInfo$fToJSONWireCatalog$fFromJSONWireCatalog$fToJSONPuppetEdge$fFromJSONPuppetEdge$fToJSONRIdentifier$fFromJSONRIdentifier$fFromJSONResourceField$fToJSONResourceField$fFromJSONNodeField$fToJSONNodeField$fFromJSONFactField$fToJSONFactField$fFromJSONQuery $fToJSONQuery$fFromJSONResource$fToJSONResource$fFromRubyPValue$fToRubyPValue$fToJSONPValue$fFromJSONPValue$fMonadThrowPosProgramT$fMonadStackProgramT$fHasCatalogTPNodeInfoMaybe dummyPuppetDB startHiera dummyHiera storageunits getPrefixgetOrder normalizeUnit storagedescfactRAMfactNETfactOS factOSDebian factOSLSBfactMountPointsfversionfactUser factUNamefenv factProcessor puppetDBFacts pdbConnectcontainerCommaNativeTypeName paramnameperrornativetypemethodsfaketype concattype defaulttypedefaultValidaterunarraystringstringsvalues defaultvalueintegerintegersnamevalmandatoryIfNotAbsent mandatoryparameterFunctionsfullyQualifiednoTrailingSlashfullyQualifiedsrarrayipaddrinrangevalidateSourceOrContentbaseNativeTypesvalidateNativeTypebsdefaultImpureMethods evalInstrGeninterpretMonadfixResourceNamerunHiera toNumbersresolveVariable isNativeType getVariableresolveExpression resolveValueresolvePValueStringresolveExpressionStringresolveExpressionStringsresolveArgument pValue2BoolresolveSearchExpressionsearchExpressionToPuppetDBcheckSearchExpressionhfGenerateAssociations hfSetvars hfRestorevars rubyEvaluate impurePure pureReaderpureEval dummyFacts dummyEval runPParser expression puppetParser _PBoolean_PUndef_PString_PResourceReference_PArray_PHash_PNumber_Equal _Different_Not_And_Or _LessThan _MoreThan_LessEqualThan_MoreEqualThan _RegexMatch_NotRegexMatch _Contains _Addition _Substraction _Division_Multiplication_Modulo _RightShift _LeftShift_Lookup_Negate_ConditionalValue_FunctionApplication _Terminal_ResourceDeclaration'_DefaultDeclaration'_ResourceOverride'_ConditionalStatement'_ClassDeclaration'_DefineDeclaration'_Node'_VariableAssignment'_MainFunctionCall'_SHFunctionCall'_ResourceCollection' _Dependency' _TopContainer_ResourceDeclaration_DefaultDeclaration_ResourceOverride_ConditionalStatement_ClassDeclaration_DefineDeclaration_Node_VariableAssignment_MainFunctionCall_SHFunctionCall_ResourceCollection _Dependency_PResolveExpression_PResolveValue_PParse _StatementsScopeEnteringContextSEParentSEChildSENormalvmapM getModulename getCatalogisParentfinalizepopScope pushScope evalTopLevelgetstt extractPrismcomputeCatalog makeEdgeMaprealize evaluateNodeevaluateStatementsVectorfromArgumentListevaluateStatement loadVariableloadParameters enterScopedropInitialColons expandDefine loadClassaddRelationshipaddTagResource addAttributeregisterResourcelogWithModifiermainFunctionCall evaluateHFCstdlibFunctions PreferencesHasPreferences preferences hieraPathignoredmodules manifestPath modulesPathnatTypes prefExtFuncsprefPDB templatesPathsetupPreferences initDaemon loadTestDB initTestDBPDBTypePDBTestPDBDummy PDBRemote getDefaultDBgenerateWireCatalog $fReadPDBTypePSpecPSpecMlCatalog lModuledir lPuppetdir testCatalogdescribeCatalog basicTestusersGroupsDefineditshouldBe withResource withParameterwithParameterswithFileContent testingDaemon defaultDaemoncatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName RandState_array_left_initf_nextmixbitstwistvalNvalM initGenrand nextStateinitGenrandBigintrandInitrbGenrandInt32 limitedRandansi-wl-pprint-0.6.7.1Text.PrettyPrint.ANSI.LeijenhPutDocputDoc displayIOdisplayS renderCompact renderSmart renderPrettyplain deunderline underlinedeboldbold ondullwhiteonwhite ondullcyanoncyan ondullmagenta onmagenta ondullblueonblue ondullyellowonyellow ondullgreenongreen ondullredonred ondullblackonblack dullwhitewhitedullcyancyan dullmagentamagentadullblueblue dullyellowyellow dullgreengreendullredred dullblackblackflatAltgroupcolumnsnestingcolumnnesthardline linebreaklinetextcharemptyalignhangindentwidthfill fillBreakrationaldoublefloatintboolequals backslashdotspacecommacolonsemidquotesquoterbracketlbracketrbracelbraceranglelanglerparenlparenenclosebracketsanglesdquotessquotes softbreaksoftline<$$><$><+>vcathcatfillCatcatvsephsepfillSepsep punctuate encloseSep semiBracestupledlist prettyListprettyPrettyDocSFailSEmptySCharSTextSLineSSGR SimpleDocunMStatsgetTimetime takeBaseName takeDirectory dropFileName splitFileNamescientific2textstrictifyEithertextElem nameThreadgetDirectoryContentsbase Data.Monoid<>mconcatmappendmemptyMonoidgetDualDualappEndoEndogetAllAllgetAnyAnygetSumSum getProductProductgetFirstFirstgetLastLast parsec-3.1.5Text.Parsec.Pos SourcePosghc-prim GHC.TypesBool$fToJSONLinkType$fFromJSONLinkType$fHashableLinkType$fIsStringExpression$fFractionalExpression$fNumExpression$fIsStringUValue $fEqCompRegex$fShowCompRegex$fHasHFunctionCallHFunctionCall puppetFuncinitLuacloseLuagetDirContentscheckForSubFilesgetFiles getLuaFiles loadLuaFile initLuaMaster$fStackValuePValueinterpolableStringqueryCombinatorqueryCombinatorArrayqueryCombinatorHashCacheHieraStringPart HVariableHStringInterpolableHieraStringBackend JsonBackend YamlBackend ConfigFile _backends _hierarchy$fPrettyHieraStringPart LogWriter HasConfigFile configFilebackends hierarchyparseInterpolableStringinterpolateTextresolveInterpolableresolveInterpolablePartinterpolatePValuequery$fFromJSONConfigFile!$fFromJSONInterpolableHieraString$fHasConfigFileConfigFile runRequest pdbRequestcontainerComma''containerComma'meta resourceBodypf showQuery$fPrettyLinkInformation$fPrettyInterpreterInstr$fPrettyRSearchExpression$fPrettyResourceModifier$fPrettyResDefaults$fPrettyCurContainerDesc$fPrettyResource$fPrettyRIdentifier$fPrettyTopLevelType$fPrettyPValue addDefaultscheckParameterListstring' integer''fullyQualified' checkipv4 nativeConcatnativeConcatFragmentconcatparamfunctionsfragmentparamfunctions nativeCronparameterfunctionsvrangevrange'parsevalcheckint checkint' nativeExecfullyQualifiedOrPath nativeFile validateMode checkSource nativeGroup nativeHost checkhostnamecheckhostname'checkhostname'' nativeMountPackagingFeatures Versionable Upgradeable UninstallableUninstallOptions Purgeable InstallableInstallOptionsHoldable nativePackageisFeatureSupported getFeature checkFeatures$fHashablePackagingFeaturesnativeSshSecure userOrTarget keyIfPresent nativeUsernativeZoneRecordvalidateMandatories fakeTypes defaultTypesfilterStatements NumberPair hieraCall aeson-0.7.0.6Data.Aeson.Types.InternalNumberbinaryOperation numberComparepuppetEquality text-1.1.1.3Data.Text.InternalTextresolvePValueNumberresolveValueStringresolveExpressionNumberresolveFunctionevalPureStatementtransformPureHfevaluateHFCPureintegerOperationresolveFunction'pdbresourcequery calcTemplateresolveExpressionSE spaceNotCRevalrubyevalExpression evalValuea2iparseRelationshipsChainableStuff ChainResRefr ChainResDecl ChainResColl OperatorChain EndOfChainOPParserParserTunParser getPositionvariablestringLiteral'identifierStyleidentlreserved variableNamequalifqualif1 classNametypeName moduleNameresourceNameRefgenericModuleName parameterNamevariableReferenceregexp puppetArray puppetHash puppetBoolresourceReferenceRawresourceReferencebarewordgenFunctionCall functionCall literalValue terminalG compileRegexp termRegexpterminalexpressionTablestringExpressionvariableAssignmentnodeStmtpuppetClassParameters defineStmtpuppetIfStyleConditionunlessCondition ifCondition caseConditionoperatorChainStatementzipChain depOperatorresourceGroup' assignmentsearchExpressionresourceCollectionclassDefinitionmainHFunctionCalldotCallresourceDefaultsresourceOverride extractResRefextractChainStatementchainableStuff statement statementListparseHFunction parseHParams hfunctionCall$fFoldableOperatorChain$fTokenParsingParser_ResDec _DefaultDec_ResOver_CondStatement _ClassDecl _DefineDec_Nd_VarAss_MFC_SFC_RColl_DepsingleArgumentsafeEmptyStringstringArrayFunction compileREmatchRE puppetAbs any2arraybase64bool2num puppetConcat puppetCountdeletedeleteAtdeleteUndefValues_emptyflattengetvar_grepisArray isDomainName isIntegerisHashisStringisBool puppetJoinkeyshasKeymergepicksizestr2BoolvalidateAbsolutePath validateArray validateBool validateHash validateRevalidateStringpvalues _manifestPath _modulesPath_templatesPath _natTypes_ignoredmodules_prefPDB _prefExtFuncs _hieraPathgenPreferences$fHasPreferencesPreferencesmTemplateAnswer TemplateQueryTemplateParseError tgetError showRubyErrorinitTemplateDaemon templateQuerytemplateDaemoncomputeTemplategetRubyScriptPathhrresolveVariablecomputeTemplateWRuby$fErrorTemplateParseError loggerNamelogDebuggCatalog parseFunctioncompileFileList parseFile DBContent_dbcontentResources_dbcontentFacts_dbcontentBackingFile ExtractedENilESetETextDB HasResources resourcesHasFactsfactsHasBackingFile backingFilenewDBgenDBAPI resolveQuery dbapiInfoncomparemustWorkreplCat replFacts deactivategetFcts resourceQuerygetRes getResNodecommitgetNds$fToJSONDBContent$fFromJSONDBContent$fHasBackingFileDBContentMaybeTestEnv _lCatalog _lModuledir _lPuppetdir HasTestEnvtestEnvhTestFileSources$fHasTestEnvTestEnvData.Traversable TraversabletraverseControl.ApplicativegetConstConstbifunctors-4.1.1.1Data.Bifunctorbimap Bifunctortransformers-0.3.0.0Data.Functor.IdentityIdentity runIdentitycontravariant-1.2Data.Functor.Contravariant>$ contramap Contravariant lens-4.4.0.1Control.Lens.ReifiedrunLensLens ReifiedLens ReifiedLens'runIndexedLens IndexedLensReifiedIndexedLensReifiedIndexedLens'runIndexedTraversalIndexedTraversalReifiedIndexedTraversalReifiedIndexedTraversal' runTraversal TraversalReifiedTraversalReifiedTraversal' runGetterGetter ReifiedGetterrunIndexedGetter IndexedGetterReifiedIndexedGetterrunFoldFold ReifiedFoldrunIndexedFold IndexedFoldReifiedIndexedFoldrunMonadicFold MonadicFoldReifiedMonadicFold runSetterSetter ReifiedSetterReifiedSetter'runIndexedSetter IndexedSetterReifiedIndexedSetterReifiedIndexedSetter'runIsoIso ReifiedIso ReifiedIso'runPrismPrism ReifiedPrism ReifiedPrism'Control.Lens.Actioniact^@!?^@!!^@! iperformsiperformliftActactsact^!?^!!^!performsperformActing IndexedActingControl.Lens.THdefaultFieldRulesmakeFieldsWith makeFieldscamelCaseFieldsunderscoreFields makeWrappeddeclareLensesWith declareFieldsdeclareWrapped declarePrismsdeclareClassyFor declareClassydeclareLensesFor declareLensesmakeLensesWith makeClassyFor makeLensesFor makeClassy_ makeClassy makeLenses classyRules_ classyRules lensRulesFor lensRules lensClass lensField createClassgenerateSignatures simpleLensesControl.Lens.Internal.PrismTHmakeClassyPrisms makePrismsControl.Lens.Internal.FieldTH LensRulesTopName MethodNameDefNameControl.Lens.AtsansixAtIndexcontainsIxValueixIxedatAtControl.Lens.Consunsnocsnoc|>_last_init_tail_headunconscons<|_ConsCons_SnocSnocControl.Lens.EacheachEachControl.Lens.Empty_EmptyAsEmptyControl.Lens.Wrappedalafala _Unwrapping _Wrapping _Unwrapping' _Wrapping'op _Unwrapped_Wrapped _Unwrapped' _Wrapped' UnwrappedWrapped Rewrapped RewrappingControl.Lens.Iso bimappingrmappinglmapping dimapping contramappingimagmamagma involutedreversedlazyflipped uncurriedcurriedanonnon'nonmappingenumunderaufaucloneIsowithIsofromisoAnIsoAnIso'swappedSwappedstrictStrictControl.Lens.EqualitysimplesimplyfromEqmapEqsubstEqrunEq Identical AnEquality AnEquality'Control.Lens.Platedparts composOpFoldparaparaOf holesOnOfholesOnholes contextsOnOf contextsOn contextsOfcontextstransformMOnOf transformMOf transformMOn transformM transformOnOf transformOf transformOn transform universeOnOf universeOn universeOfuniverse rewriteMOnOf rewriteMOn rewriteMOfrewriteM rewriteOnOf rewriteOn rewriteOfrewritechildrendeep...platePlatedControl.Lens.LevelilevelslevelsControl.Lens.Indexed ifoldMapByOf ifoldMapBy imapAccumL imapAccumRiforMimapMiforitoListifoldlMifoldrMifind iconcatMapiforM_imapM_ifor_ itraverse_noneinoneiallianyindexindicesasIndex withIndexicompose<.> reindexed selfIndex.><.imappedimapFunctorWithIndexifoldl'ifoldr'ifoldlifoldrifoldedifoldMapFoldableWithIndex itraversed itraverseTraversableWithIndexControl.Lens.TraversaldeepOffailing ifailoverfailoverelements elementsOfelement elementOfignored traversed64 traversed1 traversed imapAccumLOf imapAccumROfiforMOfimapMOfiforOf itraverseOfcloneIndexedTraversal1cloneIndexPreservingTraversal1cloneTraversal1cloneIndexedTraversalcloneIndexPreservingTraversalcloneTraversaldroppingtakingbesidebothunsafeSingularsingularholesOfiunsafePartsOf'unsafePartsOf'iunsafePartsOf unsafePartsOf ipartsOf'partsOf'ipartsOfpartsOfilocilociscanl1Ofscanr1Of mapAccumLOf mapAccumROf transposeOf sequenceOfforMOfmapMOf sequenceAOfforOf traverseOf ATraversal ATraversal' ATraversal1 ATraversal1'AnIndexedTraversalAnIndexedTraversal1AnIndexedTraversal'AnIndexedTraversal1' Traversing Traversing1 Traversing' Traversing1' traverseMin TraverseMin traverseMax TraverseMaxControl.Lens.Fold foldMapByOf foldMapByfoldByOffoldByheadOfidroppingWhile itakingWhile ifiltered^@?!^@?^@.. itoListOf ifoldlMOf ifoldrMOf ifoldlOf' ifoldrOf'ifindMOfifindOf iconcatMapOfiforMOf_imapMOf_iforOf_ itraverseOf_inoneOfiallOfianyOfifoldlOfifoldrOf ifoldMapOf backwardsipreusespreusesipreusepreuse ipreviewspreviewsipreviewpreviewipreprehasn'thasfoldlMOffoldrMOf foldl1Of' foldr1Of'foldlOf'foldrOf'foldl1Offoldr1OffindMOffindOf minimumByOf maximumByOf minimumOf maximumOf notNullOfnullOflastOffirstOf^?!^?lengthOfconcatOf concatMapOf notElemOfelemOfmsumOfasumOf sequenceOf_forMOf_mapMOf_ sequenceAOf_forOf_ traverseOf_sumOf productOfnoneOfallOfanyOforOfandOf^..toListOffoldlOffoldrOffoldOf foldMapOflinedworded droppingWhile takingWhilefilterediteratedunfoldedcycled replicatedrepeatedfolded64foldedifoldingfoldingControl.Lens.ZoomzoomZoommagnifyMagnifyControl.Lens.Prism_Shownearlyonly_Void_Nothing_Just_Right_Leftmatchingisn'tbelowasidewithoutoutsideprism'prism clonePrism withPrismAPrismAPrism'Control.Lens.Reviewreusesreusereviews#reviewreununtoReviewReview'AReviewAReview'Control.Lens.Gettercoerced^@.iusesiuseiviewsiview ilistenings listenings ilistening listeningusesuse^.viewsviewitotoGettingIndexedGetting AccessingControl.Lens.Tuple_1Field1_2Field2_3Field3_4Field4_5Field5_6Field6_7Field7_8Field8_9Field9Control.Lens.LoupeLoupe SimpleLoupeControl.Lens.Lensuniteddevoid<#=<#~#%%=<#%=<#%~#%=#=#%%~#%~#~storing^#<<%@=<%@=%%@=%%@~<<%@~<%@~overA<<>=<<>~<<~<<<>=<<&&=<<||=<<**=<<^^=<<^=<~<<&&~<<||~<<**~<<^^~<<^~<&%%=%%~&~ilensiplenslensALensALens' AnIndexedLensAnIndexedLens'Control.Lens.SetterimapOfmapOfassignA%@=%@~isetsiover icensoring censoringipassingpassingscribe<>=<>~