}d       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~          Safe             Graphalyze Types and Classes(c) Ivan Lazar Miljenovic 2009 2-Clause BSDIvan.Miljenovic@gmail.comNoneSpecify the size the  should be at. Specify the maximum size to use.(Let GraphViz choose an appropriate size.&A specification on how to visualise a . EDefines the parameters used for creating visualisations of graphs. Root directory of the document. Image sub-directory.The default visualisation.If  vp'F, then a larger visualisation is linked to from the default one.,Should the Dot source code be saved as well? Specify the O to turn into an image, its filename (sans extension) and its caption. The  should not have a  set.>What name to provide the image file (without an extension).Inline elements of a document.Elements of a document.%@Representation of a location, either on the internet or locally.(,Represents the class of document generators.)Convert idealised +F values into actual documents, returning the document file created.*The extension of all document-style files created. Note that this doesn't preclude the creation of other files, e.g. images.+PRepresentation of a document. The document is to be stored in the directory -0, and the main file is to have a filename of .  (* dg), where dg is an instance of (.-Document location/The sub-directory of -$, where graphs are to be created.0 Pre-matter3 Main-matter5<Create the legend section and add it to the document proper.6Return today's date as a string, e.g. "Monday 1 January, 2000". This arbitrary format is chosen as there doesn't seem to be a way of determining the correct format as per the user's locale settings.75Attempts to create the specified directly, returning True8 if successful (or if the directory already exists), False if an error occurred.8rAttempts to create image files (with the given filename in the given directory) from the graph. If the second  not Q, then the first image links to the second. The whole result is wrapped in a  . :& is applied to the filename in the .If & is true, then it is assumed that the   isn't ,  or  (because of filename clashes).YIf both output formats are the same, then the larger image needs a different filename.Add a GlobalAttribute to the  specifying the given size.9$Using a 6:4 ratio, create the given Point- representing width,height from the width.: Replace all . with - in the given  B, since some output formats (e.g. LaTeX) don't like extraneous .'s in the filename.?  !"#$%&'()*+,-./012345!"678Visualisation parameters.#$%9:8  " !#$%'&()*+,4032-./156789:8+,-./01234()*%&' !"#$  56789:   !"#$%&'()*+ ,-./012345!"678#$%9:Graphalyze Types and Classes(c) Ivan Lazar Miljenovic 2009 2-Clause BSDIvan.Miljenovic@gmail.comNone&,Used when traversing the document structure.[oDefinition of a Pandoc Document. Size measurements are in inches, and a 6:4 ratio is used for width:length.'The Pandoc document style(The file extension used)Which template to get.*Size of graphs to be produced.+(Optional size of external linked graphs.,,Should the Dot source code be saved as well?-3Some default sizes. Note that all other fields of [ still need to be defined.`FAlso save the generated Dot code to file when creating visualisations.. Define the / used.0Start with a level 1 heading.1Create the document.2The meta information3CHtml output doesn't show the author and date; use this to print it.4Link conversion5%Conversion of simple inline elements.6Conversion of complex elements. The only reason it's in the IO monad is for GraphImage, as it requires IO to create the image.1If any one of the conversions fail (i.e. returns ), the entire process fails.In future, may extend this to creating multiple files for top-level sections, in which case the IO monad will be required for that as well.7,Concatenate the result of multiple calls to 6.8As for 7 , but don't concat the resulting 9s.&:;<[='()*+,\]^_-`>?.012345678a[\]^_`[\]^_`&:;<[='()*+,\]^_-`>?.012345678a Internal definitions(c) Ivan Lazar Miljenovic 2009 2-Clause BSDIvan.Miljenovic@gmail.comSafef.A relationship between two nodes with a label.@Squaring a number.AShorthand for BC Flip a pair.D3Apply the same function to both elements of a pair.ECreate a lookup F to determine which G has a specific label.gThe node number of an H.hThe label of an H.iHFind all the labelled nodes in the graph that match the given predicate.j?Find all the nodes in the graph that match the given predicate.k Obtain the labels for a list of Gs. It is assumed that each G& is indeed present in the given graph.lObtain the labels for a I of Gs. It is assumed that each G& is indeed present in the given graph.m Obtain the labels for a list of Gs. It is assumed that each G& is indeed present in the given graph.n Obtain the labels for a list of Gs. It is assumed that each G& is indeed present in the given graph.f@ACDEJghijklmnKLMNOf@ACDEJghijklmnKLMNOf@ACDEJghijklmnKLMNOGraphalyze Types and Classes(c) Ivan Lazar Miljenovic 2009 2-Clause BSDIvan.Miljenovic@gmail.comNone9:;DRoOLabel type for storing node positions. Note that this isn't an instance of yW since there's no clear indication on which cluster a node belongs to at this stage.uA generic cluster-label type.y5These types and classes represent useful label types.sThe class of outputs of a clustering algorithm. This class is mainly used for visualization purposes, with the Pq instance required for grouping. Instances of this class are intended for use as the label type of graphs.|&The cluster the node label belongs in.}The actual label.~A grouping of Hs.A grouping of Gs.5An alias for the type of graph being used by default.6Represents information about the graph being analysed.(We use a graph type with no edge labels.%The expected root nodes in the graph.8Is the data this graph represents directed in nature?uUnused relationships (i.e. not in the actual graph). These are the edges containing nodes not in the graph..The expected roots in the data to be analysed.KAdd extra expected root nodes. No checks are made that these are valid G values.9Use a filtering function to find extra root nodes to add..Apply an algorithm to the data to be analysed.SApply an algorithm that requires knowledge about whether the graph is directed (Q) or undirected (R ) to the data to be analysed.Apply a function to all the data points. This might be useful in circumstances where you want to reduce the data type used to a simpler one, etc. The function is also applied to the datums in .fApply the first function to nodes in the graph, and the second function to those unknown datums in c. As a sample reason for this function, it can be used to apply a two-part constructor (e.g. S and T from Uc) to the nodes such that the wanted and unwanted datums can be differentiated before calling . Merge the 3 into the graph by adding the appropriate nodes. Used to set  = []. This is of use when they are unneeded or because there is no sensible mapping function to use when applying a mapping function to the nodes in the graph.SReplace the current graph by applying a function to it. To ensure type safety,  is applied.xReplace the current graph by applying a function to it, where the function depends on whether the graph is directed (Q) or undirected (R). To ensure type safety,  is applied.%opqrstuvwxyz{|}~V'fopqrstuvwxyz{|}~'f~yz{|}uvwxopqrstopqrstuvwxyz{|}~VUtility functions(c) Ivan Lazar Miljenovic 2009 2-Clause BSDIvan.Miljenovic@gmail.comNone "The labels of all nodes in a tree. Extract the W from the X.The label of an X.Extract the actual H s from an Y.{Make the graph undirected, i.e. for every edge from A to B, there exists an edge from B to A. The provided function  K duplicates loops as well, which isn't wanted. It is assumed that no edges are already duplicates [i.e. if there exists an edge (n1,n2), then there doesn't exist (n2,n1)]. This function also preserves edge labels: if two edges exist between two nodes with different edge labels, then both edges will be duplicated.This is a pseudo-inverse of S: any edges that are both successor and predecessor become successor edges only.Makes the graph a simple one, by removing all duplicate edges and loops. The edges removed if duplicates exist are arbitrary.7Adjoin duplicate edges by grouping the labels together.wCompact the graph by counting how many multiple edges there are (considering only the two nodes and not the labels).9Compact the graph by adjoining identical duplicate edges.@Map over the labels on the nodes, using the node values as well.+Delete these labelled nodes from the graph.MConvert the graph into one with positions stored in the node labels. The Z6 parameter denotes if the graph is directed or not.RReturns the positions of the nodes in the graph, as found using Graphviz. The Z6 parameter denotes if the graph is directed or not.Create a cluster-lookup [.0Used when the clusters are assigned in a lookup [ instance.hChange the cluster values in the graph by having the largest cluster have the smallest cluster label.1Change the cluster values using the given lookup [. Create an [ of the size of each cluster.>Return true if and only if the list contains a single element.7If we need to only tell if the list contains more than n1 elements, there's no need to find its length.Add the length of each sublist.,Returns the longest list in a list of lists..Group elements by the given grouping function.kReturns the unique elements of the list in ascending order, as well as the minimum and maximum elements.|Shuffle a list of elements. This isn't the most efficient version, but should serve for small lists. Adapted from:  0http://www.cse.unsw.edu.au/~tsewell/shuffle.htmle The adaptation mainly involved altering the code so that the new random seed is also returned.>An efficient mean function by Don Stewart, available from: 5http://cgi.cse.unsw.edu.au/~dons/blog/2008/05/16#fast@Calculate the mean and standard deviation of a list of elements.7Calculate the mean and standard deviation of a list of \ values.@Find the fixed point of a function with the given initial value.fFind the fixed point of a function with the given initial value, using the given equality function.8Find the fixed point of a graph transformation function.#]^(Mean, Standard Deviation)(Mean, Standard Deviation))ghijklmn)ghklmnij#]^Graphviz wrapper functions(c) Ivan Lazar Miljenovic 2009 2-Clause BSDIvan.Miljenovic@gmail.comNone Convert the  into  format.Convert the clustered  into / format. Cluster the nodes based upon their y clusters.A function to convert an H to the required _& for use with the GraphViz library.A cross between  and `.-Print a path, with "->" between each element.-Print a path, with "->" between each element.OPrint a cycle: copies the first node to the end of the list, and then calls .OPrint a cycle: copies the first node to the end of the list, and then calls .1Show a group of nodes, with no implicit ordering.1Show a group of nodes, with no implicit ordering.Attempt to convert the Stringn form of a list into as much of a square shape as possible, using a single space as a separation string.Attempt to convert a list of Strings into a single StringN that is roughly a square shape, with a single space as a row separator.Attempt to convert the String` form of a list into as much of a square shape as possible, separating values with commas.Attempt to combine a list of StringOs into as much of a square shape as possible, separating values with commas.Attempt to convert the String form of a list into as much of a square shape as possible, using the given separation string between elements in the same row.2Attempt to convert the combined form of a list of Stringws into as much of a square shape as possible, using the given separation string between elements in the same row.aUUsing the given line length and allowed error, take the elements of the next line.bARecursively build the rest of the line with given maximum length.ababAlgorithms for directed graphs.(c) Ivan Lazar Miljenovic 2009 2-Clause BSDIvan.Miljenovic@gmail.comNone Determine if this H is an ending node.Determine if this G is an ending node. Find all H s that meet the ending criteria. Find all G!s that match the ending criteria.Find all roots of the graph.Find all roots of the graph.Returns True if this H is a root.Returns True if this G is a root.Find all leaves of the graph.Find all leaves of the graph.Returns True if this H is a leaf.Returns True if this G is a leaf.!Find all singletons of the graph.!Find all singletons of the graph.Returns True if this H is a singleton.Returns True if this G is a singleton.The core of the graph is the part of the graph containing all the cycles, etc. Depending on the context, it could be interpreted as the part of the graph where all the "work" is done.}Cluster the nodes in the graph based upon how far away they are from a root node. Root nodes are in the cluster labelled , nodes in level "n" (with  n > minLevel) are at least n edges away from a root node.As with " but provide a custom grouping of G s to consider as the "roots".The level of the nodes in the  provided to  (or the root nodes for H). A level less than this indicates that the node is not accessible.cObtain the levels in the graph.dThe  (NSet, g a b)N parameters are the current nodes to be starting with in the current graph.The shortest paths to each of the leaves in the graph (excluding singletons). This can be used to obtain an indication of the overall height/depth of the graph.The shortest paths to each of the leaves in the graph (excluding singletons). This can be used to obtain an indication of the overall height/depth of the graph.eSGiven the list of roots in this graph, find the shortest path to this leaf node. Find all G(s that can be reached from the provided Gs. Find all G7s that can be reached from the provided nodes using Is rather than lists. Find those G/s that are reachable only from the provided Gs. Find those G/s that are reachable only from the provided G s, using Is rather than lists.fPseudo-inverse of g.h;Removing nodes which have predecessors outside of this Map.i6Are these predecessor nodes all found within this Map?"jckdefhi"jckdefhiAlgorithms for all graph types.(c) Ivan Lazar Miljenovic 2009 2-Clause BSDIvan.Miljenovic@gmail.comNone)Find all connected components of a graph.l8Find the next component and split it off from the graph.mWExtract the given node and all nodes it is transitively connected to from the graph.nHelper function for m above.MFind all possible paths from this given node, avoiding loops, cycles, etc.oRemove all outgoing edgesGFinds all cliques (i.e. maximal complete subgraphs) in the given graph.9Finds all cliques in the graph, without including labels.pcDetermine if the given list of nodes is indeed a clique, and not a smaller subgraph of a clique..Find all regular subgraphs of the given graph.q-Extract the next regular subgraph of a graph.r:Returns all regular subgraphs that include the given node.sRRecursively find all regular subgraphs only containing nodes in the given list.trReturn all nodes that are co-recursive with the given node (i.e. for n, find all n' such that n->n' and n'->n).>Determines if the list of nodes represents a regular subgraph.#Find all cycles in the given graph.=Find all cycles in the given graph, returning just the nodes.JFind all cycles in the given graph, excluding those that are also cliques.JFind all cycles in the given graph, excluding those that are also cliques.u)Find all cycles containing a chosen node.v#Find all cycles for the given node.#Find all chains in the given graph.#Find all chains in the given graph.w'Find the chain starting with the given G.x Find the next link in the chain.y5Determines if the given node is the start of a chain.zDetermine if the given node matches the chain criteria in the given direction, and if so what the next node in that direction is.{ Find the next node in the chain.|BDetermines if this node matches the successor criteria for chains.}DDetermines if this node matches the predecessor criteria for chains.lmnopqrstuvwxyz{|} lmnopqrstuvwxyz{|}#Clustering and grouping algorithms.(c) Ivan Lazar Miljenovic 2009 2-Clause BSDIvan.Miljenovic@gmail.comNone=A collapsed node contains a list of nodes that it represents.&The actual Chinese Whispers algorithm.~#Choose a new cluster for the given GO. Note that this updates the graph each time a new cluster value is chosen.#Choose a new cluster for the given Context.Choose which cluster to pick by taking the one with maximum number of nodes. If more than one has the same maximum, choose one randomly.JConvert the graph into a form suitable for the Chinese Whispers algorithm.oThe renamed CLUSTER algorithm. Attempts to cluster a graph by using the spatial locations used by Graphviz. The Euclidian distance function.+Converts the positional labels into an RNG.Determines if the two given nodes should be connected in the RNG. Nodes are connected if there is no node that is closer to both of them.4Performs the actual clustering algorithm on the RNG.Collapse the cliques, cycles and chains in the graph down. Note that this doesn't work too well on undirected graphs, since every pair of nodes forms a K_2 subgraph.=Use the given functions to determine which nodes to collapse.sUse the given functions to determine which nodes to collapse, with a new label to represent the collapsed nodes.As with , but also return the (, a)*'s calculated with the functions provided.Collapse the graph.Return Q{ if the collapsed graph is either a singleton node or else isomorphic to the original graph (i.e. not collapsed at all). Allow the graph to be collapsed.+Collapse the two given nodes into one node.,Collapse the list of nodes down to one node.,Replace the label of the provided node with [a].+Collapse all results of the given function.XWe take the ceiling of the Euclidian distance function to use as our metric function.~~Graph analysis algorithms(c) Ivan Lazar Miljenovic 2009 2-Clause BSDIvan.Miljenovic@gmail.comNone. #A Graph-Theoretic Analysis Library.(c) Ivan Lazar Miljenovic 2009 2-Clause BSDIvan.Miljenovic@gmail.comNoneThis represents the information that's being passed in that we want to analyse. If the graph is undirected, it is better to list each edge once rather than both directions.The discrete points.%The relationships between the points.'The expected roots of the graph. If  = R, then this is ignored.R> if relationships are symmetric (i.e. an undirected graph).The library version.FImport data into a format suitable for analysis. This function is  edge-safe.: if any datums are listed in the edges of e that aren't listed in the data points, then those edges are ignored. Thus, no sanitation of the  in  ImportParams6 is necessary. The unused relations are stored in 1. Note that it is assumed that all datums in  are also contained within .Returns the mean and standard deviations of the lengths of the sublists, as well all those lists more than one standard deviation longer than the mean.UCompare the actual roots in the graph with those that are expected (i.e. those in ). Returns (in order):0Those roots that are expected (i.e. elements of  that are roots).EThose roots that are expected but not present (i.e. elements of  that aren't roots.?Unexpected roots (i.e. those roots that aren't present in ).PFind the nodes that are not reachable from the expected roots (i.e. those in ).Only return those chains (see %) where the non-initial nodes are not expected roots.As with , but also update the ~ to contain the possibly compressed nodes. Since the datums they refer to may no longer exist (as they are compressed),  is set to [].As with , but also includes a lookup F" from the old label to the new.As with =, but use the expected roots rather than the actual roots.7GHWXY  " !#$%'&()*+,4032-./156789:fghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuv w x y z { | } ~                            ! " #$%&'()*+,-&'./0/1/234&56789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY Z [&\] ^ _ `abcdefdegahi j k l m n opqrpstpsu&vw&vx&vyzde{de|de}ps~apsabdededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededede de de de de dedede*Graphalyze-0.15.0.0-A5c4INtnqTN3IavMjCYYGzData.Graph.Analysis.TypesData.Graph.Analysis.Reporting$Data.Graph.Analysis.Reporting.PandocData.Graph.Analysis.Utils!Data.Graph.Analysis.Visualisation'Data.Graph.Analysis.Algorithms.Directed%Data.Graph.Analysis.Algorithms.Common)Data.Graph.Analysis.Algorithms.ClusteringData.Graph.AnalysisPaths_GraphalyzeData.Graph.Analysis.InternalData.Graph.Inductive.BasicundirData.Graph.Analysis.Algorithms+graphviz-2999.19.0.0-E4FhWHiam7ZBHhdaVhS2zo#Data.GraphViz.Types.Internal.CommonNumStrGraphID GraphSize GivenSize DefaultSize VisPropertiesVPropsgrSizeformat VisParamsVParamsrootDirgraphDir defaultImage largeImagesaveDotDocGraphDG imageFile descriptiondotGraph DocInlineText BlankSpaceGroupingBoldEmphasisDocLinkDocImage DocElementSection Paragraph EnumerationItemized Definitions GraphImageLocationWebFileDocumentGeneratorcreateDocument docExtensionDocumentDoc rootDirectory fileFrontgraphDirectorytitleauthordatelegendcontent addLegendtodaytryCreateDirectory createGraph createSize unDotPath $fEqLocation $fOrdLocation$fShowLocation$fReadLocation $fEqDocInline$fOrdDocInline$fShowDocInline$fReadDocInline $fEqDocGraph $fOrdDocGraph$fShowDocGraph$fReadDocGraph$fEqDocElement$fOrdDocElement$fShowDocElement$fReadDocElement $fEqDocument $fOrdDocument$fShowDocument$fReadDocument $fEqGraphSize$fOrdGraphSize$fShowGraphSize$fReadGraphSize$fEqVisProperties$fOrdVisProperties$fShowVisProperties$fReadVisProperties $fEqVisParams$fOrdVisParams$fShowVisParams$fReadVisParamsPandocDocument pandocHtml pandocLaTeX pandocRtfpandocMarkdown alsoSaveDot!$fDocumentGeneratorPandocDocument$fEqPandocProcess$fOrdPandocProcess$fShowPandocProcess$fReadPandocProcessRelnodelabel filterNodes filterNodes' addLabels addLabels' getLabels getLabels'PosLabelPLabelxPosyPospnodeplabel GenClusterGCclustnLbl ClusterLabelCluster NodeLabelcluster nodeLabelLNGroupNGroupAGr GraphDatagraphwantedRootNodes directedDataunusedRelationships wantedRootsaddRoots addRootsByapplyAlg applyDirAlg mapAllNodes mapNodeType mergeUnused removeUnused updateGraph updateGraph'$fClusterLabelGenCluster $fEqGraphData$fShowGraphData$fReadGraphData$fEqGenCluster$fShowGenCluster $fEqPosLabel$fShowPosLabellabelsedgeeLabel pathValuesoneWaymkSimplecompactcompact' compactSamenlmap delLNodes toPosGraph getPositions createLookup setCluster reCluster reClusterBy clusterCountsingle longerThan addLengthslongest lengthSort groupElems sortMinMaxshufflemean statistics statistics'fixPoint fixPointByfixPointGraphsgraphvizgraphvizClusters assignClustersetDirshowPath showPath' showCycle showCycle' showNodes showNodes' blockPrint blockPrint'blockPrintListblockPrintList'blockPrintWithblockPrintWith'endNodeendNode'endByendBy'rootsOfrootsOf'isRootisRoot'leavesOf leavesOf'isLeafisLeaf' singletonsOf singletonsOf' isSingleton isSingleton'coreOf levelGraphlevelGraphFromminLevel leafMinPaths leafMinPaths'accessibleFromaccessibleFrom'accessibleOnlyFromaccessibleOnlyFrom' componentsOfpathTree cliquesIn cliquesIn' findRegular isRegularcyclesIn cyclesIn' uniqueCycles uniqueCycles'chainsIn chainsIn'CNodeschineseWhispersrelativeNeighbourhood collapseGraphcollapseGraphBycollapseAndReplacecollapseAndReplace'trivialCollapse$fMetricPosLabel ImportParams ImpParams dataPoints relationshipsrootsdirectedversion importDatalengthAnalysis classifyRootsinaccessibleNodesinteriorChainscollapseAndUpdatecollapseAndUpdate'levelGraphFromRootcatchIObindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameData.GraphViz.Types.CanonicalDotGraphbaseGHC.BaseJust!Data.GraphViz.Attributes.CompleteSizefilepath-1.4.1.0System.FilePath.Posix<.>NothingData.GraphViz.CommandsCanon DotOutputXDotcheckLargeFilenamesetSizeGHC.IOFilePathlegendToElementlegToDef checkFilename graphImage graphImage' PandocProcesswriter extension templateName graphProps extGraphPropskeepDotpd writerOptions&pandoc-1.19.2.1-GIjP4eZjDDbKj13eaNw1EbText.Pandoc.Options WriterOptionsdefaultProcess createPandocmakeMetahtmlInfo loc2targetinlineselements multiElems multiElems'+pandoc-types-1.17.0.5-IpxBdM2MZP6fF4MCwuginText.Pandoc.DefinitionBlockPPsecLevel visParamsPD defaultWidth defaultPropssqfIGHC.Real fromIntegralswap applyBoth mkNodeMapcontainers-0.5.7.1 Data.Map.BaseMap"fgl-5.5.3.1-2Q40BhgK4kY4AvjBEglJMkData.Graph.Inductive.GraphNodeLNode Data.Set.BaseSet spreadOut applyNodesfromNodetoNoderelLabelrelsToEsghc-prim GHC.ClassesOrd GHC.TypesTrueFalse Data.EitherLeftRightEither knownNodesEdgeLEdgeLPathBoolData.IntMap.BaseIntMapInt splitAndCount randomMerge Data.GraphViz LNodeClustersetDirectednesstakeLentakeLine graphLevels getNextLevellfMinPthsetKeyskeysSetkeepOnlyInternalonlyInternalPredNSet graphLevels'splitComponent extractNode nodeExtractormakeLeafisClique findRegularOf regularOf alsoRegulartwoCycle findCycles cyclesForgetChain chainLink isChainStart chainFind chainNexthasNexthasPrev whisperNodewhisper chooseWhisper addWhispers euclidianmakeRNG areRelative nbrCluster collapseGrmakeCollapsiblecollapse collapseAll adjustLabel collapseAllBy unCollapsemaybeAdjustLabel prettyPrintprettifyequalhasNeighborAdjhasLEdge hasNeighborhasEdgedeg'indeg'outdeg'inn'out'lpre'lsuc'pre'suc' lneighbors' neighbors'labNode'lab'node'degindegoutdeginnoutlprelsucpresuc lneighbors neighborslabcontextsubgraph labfilternfilter labnfilter gfiltermapmkUGraphbuildGrdelEdgesdelNodesinsEdgesinsNodes delAllLEdgedelLEdgedelEdgedelNodeinsEdgeinsNodegelemnewNodes edgeLabeltoLEdgetoEdgeedgesnodesnemapemapnmapgmapufoldsizeorderUNodeUEdgePathLPunLPathUPathAdjContextMContextDecompGDecompUContextUDecompGraphmatchemptyisEmptymkGraphlabNodesmatchAnynoNodes nodeRangelabEdgesDynGraph&OrdGrunOrdGr