+
    �°³j°  ã                   ó  € R t ^ RIt^ RIt^ RIHtHtHtHtHt ^ RI	t
^ RIHt . ROt]! ^RR7      RR l4       tRR lt]! ^ R	R7      ]
P                   ! RRR
7      RR l4       4       t ! R R4      t ! R R]4      t ! R R]4      tR tR# )aS  Read and write graphs in GEXF format.

.. warning::
    This parser uses the standard xml library present in Python, which is
    insecure - see :external+python:mod:`xml` for additional information.
    Only parse GEFX files you trust.

GEXF (Graph Exchange XML Format) is a language for describing complex
network structures, their associated data and dynamics.

This implementation does not support mixed graphs (directed and
undirected edges together).

Format
------
GEXF is an XML format.  See http://gexf.net/schema.html for the
specification and http://gexf.net/basic.html for examples.
N)ÚElementÚElementTreeÚ
SubElementÚregister_namespaceÚtostring)Ú	open_fileÚwb)ÚmodeTc                ód   € \        W#VR7      pVP                  V 4       VP                  V4       R# )aª  Write G in GEXF format to path.

"GEXF (Graph Exchange XML Format) is a language for describing
complex networks structures, their associated data and dynamics" [1]_.

Node attributes are checked according to the version of the GEXF
schemas used for parameters which are not user defined,
e.g. visualization 'viz' [2]_. See example for usage.

.. warning::

   The `GEXF specification <https://gexf.net/schema.html>`_ reserves some
   keywords (e.g. ``id``, ``pid``, ``label``, etc.) for specifying node/edge
   metadata in the file format. Ensure NetworkX node/edge attribute names
   do not use these special keywords to guarantee all attributes are preserved
   as expected when roundtripping to/from GEXF format.

Parameters
----------
G : graph
   A NetworkX graph
path : file or string
   File or file name to write.
   File names ending in .gz or .bz2 will be compressed.
encoding : string (optional, default: 'utf-8')
   Encoding for text data.
prettyprint : bool (optional, default: True)
   If True use line breaks and indenting in output XML.
version: string (optional, default: '1.2draft')
   The version of GEXF to be used for nodes attributes checking

Raises
------
ValueError
    If an attribute has mixed typed values across nodes or edges.

Examples
--------
>>> from pathlib import Path
>>> import tempfile
>>> tmp_path = Path(tempfile.gettempdir())

>>> G = nx.path_graph(4)
>>> fpath = tmp_path / "test.gexf"
>>> nx.write_gexf(G, fpath)

View the GEXF graph data, ignoring the header/metadata:

>>> with open(fpath) as fh:
...     lines_from_file = fh.readlines()
>>> print("".join(lines_from_file[5:-1]))
  <graph defaultedgetype="undirected" mode="static" name="">
    <nodes>
      <node id="0" label="0" />
      <node id="1" label="1" />
      <node id="2" label="2" />
      <node id="3" label="3" />
    </nodes>
    <edges>
      <edge source="0" target="1" id="0" />
      <edge source="1" target="2" id="1" />
      <edge source="2" target="3" id="2" />
    </edges>
  </graph>
<BLANKLINE>

Visualization data in GEXF format is supported and is read from the ``"viz"``
node attribute:

>>> G.nodes[0]["viz"] = {"size": 54}
>>> G.nodes[0]["viz"]["position"] = {"x": 0, "y": 1}
>>> G.nodes[0]["viz"]["color"] = {"r": 0, "g": 0, "b": 256}
>>> nx.write_gexf(G, fpath)

>>> with open(fpath) as fh:
...     lines_from_file = fh.readlines()
>>> print("".join(lines_from_file[5:-1]))  # Ignore header and metadata tags
  <graph defaultedgetype="undirected" mode="static" name="">
    <nodes>
      <node id="0" label="0">
        <viz:color r="0" g="0" b="256" a="1.0" />
        <viz:size value="54" />
        <viz:position x="0" y="1" z="None" />
      </node>
      <node id="1" label="1" />
      <node id="2" label="2" />
      <node id="3" label="3" />
    </nodes>
    <edges>
      <edge source="0" target="1" id="0" />
      <edge source="1" target="2" id="1" />
      <edge source="2" target="3" id="2" />
    </edges>
  </graph>
<BLANKLINE>

Notes
-----
This implementation does not support mixed graphs (directed and undirected
edges together).

This implementation supports writing a single graph per GEXF file.
GEXF documents containing multiple graphs are not supported.

The node id attribute is set to be the string of the node label.
If you want to specify an id use set it as node data, e.g.
node['a']['id']=1 to set the id of node 'a' to 1.

References
----------
.. [1] GEXF File Format, http://gexf.net/
.. [2] GEXF schema, http://gexf.net/schema.html
©ÚencodingÚprettyprintÚversionN)Ú
GEXFWriterÚ	add_graphÚwrite)ÚGÚpathr   r   r   Úwriters   &&&&& ÚX/home/luca/screen-checking/.venv/lib/python3.14/site-packages/networkx/readwrite/gexf.pyÚ
write_gexfr   $   s+   € ôf  ÈGÔT€FØ
×Ñ�QÔØ
‡L�L�Öó    c              #  ó�   "  € \        WVR7      pVP                  V 4       \        V4      P                  4        Rj  x€L
  R#  L5i)a   Generate lines of GEXF format representation of G.

"GEXF (Graph Exchange XML Format) is a language for describing
complex networks structures, their associated data and dynamics" [1]_.

Parameters
----------
G : graph
   A NetworkX graph
encoding : string (optional, default: 'utf-8')
   Encoding for text data.
prettyprint : bool (optional, default: True)
   If True use line breaks and indenting in output XML.
version : string (default: 1.2draft)
   Version of GEFX File Format (see http://gexf.net/schema.html)
   Supported values: "1.1draft", "1.2draft"

Yields
------
str
    Lines representing the graph in GEXF format

Raises
------
ValueError
    If an attribute has mixed typed values across nodes or edges.

Examples
--------
>>> import itertools

>>> G = nx.path_graph(4)
>>> gexf_gen = nx.generate_gexf(G)

The first several lines are the header containing only metadata - skip them
in this example for the purposes of viewing only the GEXF-formatted graph data:

>>> gexf_headerless = itertools.islice(gexf_gen, 4, None)
>>> print("\n".join(gexf_headerless))
  <graph defaultedgetype="undirected" mode="static" name="">
    <nodes>
      <node id="0" label="0" />
      <node id="1" label="1" />
      <node id="2" label="2" />
      <node id="3" label="3" />
    </nodes>
    <edges>
      <edge source="0" target="1" id="0" />
      <edge source="1" target="2" id="1" />
      <edge source="2" target="3" id="2" />
    </edges>
  </graph>
</gexf>

Notes
-----
This implementation does not support mixed graphs (directed and undirected
edges together).

This implementation supports writing a single graph per GEXF file.
GEXF documents containing multiple graphs are not supported.

The node id attribute is set to be the string of the node label.
If you want to specify an id use set it as node data, e.g.
node['a']['id']=1 to set the id of node 'a' to 1.

References
----------
.. [1] GEXF File Format, https://gephi.org/gexf/format/
r   N)r   r   ÚstrÚ
splitlines)r   r   r   r   r   s   &&&& r   Úgenerate_gexfr   œ   s8   é € ôN  ÈGÔT€FØ
×Ñ�QÔÜ�6‹{×%Ñ%Ó'×'Ô'ùs   ‚;A½A¾AÚrb)ÚgraphsÚreturns_graphc                ód   € \        WR7      pV'       d   \        V! V 4      4      pV# V! V 4      pV# )a�  Read graph in GEXF format from path.

"GEXF (Graph Exchange XML Format) is a language for describing
complex networks structures, their associated data and dynamics" [1]_.

Parameters
----------
path : file or string
   Filename or file handle to read.
   Filenames ending in .gz or .bz2 will be decompressed.
node_type: Python type (default: None)
   Convert node ids to this type if not None.
relabel : bool (default: False)
   If True relabel the nodes to use the GEXF node "label" attribute
   instead of the node "id" attribute as the NetworkX node label.
version : string (default: 1.2draft)
Version of GEFX File Format (see http://gexf.net/schema.html)
   Supported values: "1.1draft", "1.2draft"

Returns
-------
graph: NetworkX graph
    If no parallel edges are found a Graph or DiGraph is returned.
    Otherwise a MultiGraph or MultiDiGraph is returned.

Notes
-----
This implementation does not support mixed graphs (directed and undirected
edges together).

This implementation supports reading a single graph per GEXF file.
GEXF documents containing multiple graphs are not supported.

References
----------
.. [1] GEXF File Format, http://gexf.net/
)Ú	node_typer   )Ú
GEXFReaderÚrelabel_gexf_graph)r   r    Úrelabelr   Úreaderr   s   &&&&  r   Ú	read_gexfr%   è   s7   € ôP  )Ô=€FßÜ™v d›|Ó,ˆð €Hñ �4‹LˆØ€Hr   c                   ó  a € ] tR tRt o RRRRRRRR	R
P	                  RR.4      RR/RRRRRRRR	R
P	                  RR.4      RR/RRRRRRRR	R
P	                  RR.4      RR//tR tRRRRRRRRRR^ RR R^R/tR! tR"t	V t
R## )$ÚGEXFi  z1.1draftÚNS_GEXFzhttp://www.gexf.net/1.1draftÚNS_VIZz http://www.gexf.net/1.1draft/vizÚNS_XSIz)http://www.w3.org/2001/XMLSchema-instanceÚSCHEMALOCATIONÚ z%http://www.gexf.net/1.1draft/gexf.xsdÚVERSIONú1.1ú1.2draftzhttp://www.gexf.net/1.2draftz http://www.gexf.net/1.2draft/vizz%http://www.gexf.net/1.2draft/gexf.xsdz1.2z1.3zhttp://gexf.net/1.3zhttp://gexf.net/1.3/vizz%http://w3.org/2001/XMLSchema-instancezhttp://gexf.net/1.3/gexf.xsdc                ó¨  € \         R 3\        R3\        R3\        R3\        R3\        R3\         R3\
        R3\
        R3\
        R3.
p ^ RIpVP                  R3VP                  R3VP                  R3VP                  R	3VP                  R	3VP                  R	3VP                  R	3VP                  R	3VP                  R	3VP                   R	3VP"                  R	3VP$                  R	3VP                  R	3VP&                  R	3VP(                  R	3.V,           p\	        V4      V n        \	        R
 V 4       4      V n        R#   \*         d     L6i ; i)ÚintegerÚfloatÚdoubleÚbooleanÚstringÚlongÚ
liststringÚanyURINÚintc              3   ó8   "  € T F  p\        V4      x € K  	  R # 5i©N)Úreversed)Ú.0Úas   & r   Ú	<genexpr>Ú'GEXF.construct_types.<locals>.<genexpr>h  s   é € Ð;±U°¤¨§ ³Uùs   ‚)r9   r2   ÚboolÚlistÚdictr   ÚnumpyÚfloat64Úfloat32Úfloat16Úint_Úint8Úint16Úint32Úint64Úuint8Úuint16Úuint32Úuint64ÚintcÚintpÚImportErrorÚxml_typeÚpython_type)ÚselfÚtypesÚnps   &  r   Úconstruct_typesÚGEXF.construct_types@  sY  € ä�)ÐÜ�GÐÜ�HÐÜ�9ÐÜ�8ÐÜ�8ÐÜ�&ˆMÜ�,ÐÜ�(ˆOÜ�(ˆOð
ˆð	Ûð —‘˜WÐ%Ø—‘˜WÐ%Ø—‘˜WÐ%Ø—‘˜%Ð Ø—‘˜%Ð Ø—‘˜5Ð!Ø—‘˜5Ð!Ø—‘˜5Ð!Ø—‘˜5Ð!Ø—‘˜EÐ"Ø—‘˜EÐ"Ø—‘˜EÐ"Ø—‘˜%Ð Ø—‘˜%Ð Ø—‘˜%Ð ðð  õ!ˆEô$ ˜U›ˆŒÜÑ;±UÓ;Ó;ˆÖøô/ ô 	Ùð	ús   Á
E ÅEÅEÚtrueTÚfalseFÚTrueÚFalseÚ0Ú1c                ó  € V P                   P                  V4      pVf   \        P                  ! RV R24      hVR,          V n        VR,          V n        VR,          V n        VR,          V n        VR,          V n        Wn	        R # )NzUnknown GEXF version Ú.r(   r)   r*   r+   r-   )
ÚversionsÚgetÚnxÚNetworkXErrorr(   r)   r*   r+   r-   r   )rV   r   Úds   && r   Úset_versionÚGEXF.set_versionv  su   € Ø�M‰M×Ñ˜gÓ&ˆØŠ9Ü×"Ò"Ð%:¸7¸)À1Ð#EÓFÐFØ˜•|ˆŒØ˜•kˆŒØ˜•kˆŒØÐ 0Õ1ˆÔØ˜•|ˆŒØŽr   )r(   r)   r*   r+   r-   rU   r   rT   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Újoinrc   rY   Úconvert_boolrh   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r'   r'     s   ø‡ € àØÐ5ØÐ8ØÐAØ˜cŸh™hà2Ø;ðóð �uð
ð 	ØÐ5ØÐ8ØÐAØ˜cŸh™hà2Ø;ðóð �uð
ð 	ØÐ,ØÐ/ØÐ=Ø˜cŸh™hà)Ø2ðóð �uð
ð3%€HòN(<ðX 	�Ø�Ø�Ø�ØˆUØ	ˆ5ØˆTØ	ˆ4ð	€L÷	ð 	r   r'   c                   ó|   a € ] tR tRt o RR ltR tR tR tR tR t	R	 t
R
 tR tR tR tR tR tRR ltRtV tR# )r   i‚  Nc                óâ  € V P                  4        W0n        W n        V P                  V4       \	        R RV P
                  RV P                  RV P                  RV P                  /4      V n	        \	        R4      V n
        R\        P                   2pV\        V P                  R4      n        V P                  P                  R\         P"                  ! R	4      4       V P                  P%                  V P                  4       \'        R
V P(                  4       \*        P,                  ! 4       V n        \*        P,                  ! 4       V n        \        4       V n        / V n        / V P4                  R&   / V P4                  R&   / V P4                  R,          R&   / V P4                  R,          R&   / V P4                  R,          R&   / V P4                  R,          R&   Ve   V P7                  V4       R# R# )ÚgexfÚxmlnsz	xmlns:xsizxsi:schemaLocationr   Úmetaz	NetworkX ÚcreatorÚlastmodifieddatez%Y-%m-%dÚvizÚnodeÚedgeÚdynamicÚstaticN)rY   r   r   rh   r   r(   r*   r+   r-   ÚxmlÚmeta_elementre   Ú__version__r   ÚtextÚsetÚtimeÚstrftimeÚappendr   r)   Ú	itertoolsÚcountÚedge_idÚattr_idÚall_edge_idsÚattrr   )rV   Úgraphr   r   r   Úsubelement_texts   &&&&& r   Ú__init__ÚGEXFWriter.__init__…  s‰  € ð 	×ÑÔØ&ÔØ ŒØ×Ñ˜Ô!ÜØà˜Ÿ™Ø˜TŸ[™[Ø$ d×&9Ñ&9Ø˜4Ÿ<™<ð	ó
ˆŒô $ F›OˆÔØ%¤b§n¡nÐ%5Ð6ˆØ8GŒ
�4×$Ñ$ iÓ0Ô5Ø×Ñ×ÑÐ0´$·-²-À
Ó2KÔLØ�‰�‰˜×)Ñ)Ô*ä˜5 $§+¡+Ô.ô !—’Ó(ˆŒÜ —’Ó(ˆŒÜ›EˆÔàˆŒ	Øˆ�	‰	�&ÑØˆ�	‰	�&ÑØ')ˆ�	‰	�&Õ˜)Ñ$Ø&(ˆ�	‰	�&Õ˜(Ñ#Ø')ˆ�	‰	�&Õ˜)Ñ$Ø&(ˆ�	‰	�&Õ˜(Ñ#àÒØ�N‰N˜5Ö!ñ r   c                ó¼   € V P                   '       d   V P                  V P                  4       \        V P                  4      P	                  V P
                  4      pV# r;   )r   Úindentr€   r   Údecoder   )rV   Úss   & r   Ú__str__ÚGEXFWriter.__str__°  s@   € Ø××ÐØ�K‰K˜Ÿ™Ô!Ü�T—X‘XÓ×%Ñ% d§m¡mÓ4ˆØˆr   c                ó  € VP                  R R7       FA  w  r#pVP                  R4      pVf   K  V P                  P                  \	        V4      4       KC  	  VP
                  P                  R4      R8X  d   RpMRpVP
                  P                  R4      pVe%   \	        V4      \        V P                  R4      n        VP
                  P                  R4      pVe%   \	        V4      \        V P                  R4      n        VP                  4       '       d   R	p	MR
p	VP
                  P                  RR4      p
\        RW–V
R7      pW°n        V P                  W4       V P                  W4       V P                  P                  V4       R# )T©ÚdataÚidNr	   r~   r   ÚdescriptionÚkeywordsÚdirectedÚ
undirectedÚnameÚ rŽ   )Údefaultedgetyper	   r    )Úedgesrd   rŒ   Úaddr   rŽ   r   r�   rƒ   Úis_directedr   Úgraph_elementÚ	add_nodesÚ	add_edgesr€   r‡   )rV   r   ÚuÚvÚddÚeidr	   rœ   r�   Údefaultr    r¦   s   &&          r   r   ÚGEXFWriter.add_graph¶  s/  € àŸ™ T˜Ö*‰HˆA�"Ø—&‘&˜“,ˆCØŒØ×!Ñ!×%Ñ%¤c¨#£hÖ/ñ +ð
 �7‰7�;‰;�vÓ )Ô+Ø‰DàˆDà—g‘g—k‘k -Ó0ˆØÒ"Ü@CÀKÓ@PŒJ�t×(Ñ(¨-Ó8Ô=à—7‘7—;‘;˜zÓ*ˆØÒÜ=@À»]ŒJ�t×(Ñ(¨*Ó5Ô:à�=‰=�?Š?Ø ‰Gà"ˆGØ�w‰w�{‰{˜6 2Ó&ˆÜ ¸ÐRVÔWˆØ*ÔØ�‰�qÔ(Ø�‰�qÔ(Ø�‰�‰˜Ö&r   c                óÄ  € \        R 4      pVP                  RR7       EFw  w  rEVP                  4       p\        VP	                  RV4      4      pRV/p\        VP	                  RV4      4      p	W˜R&    VP	                  R4      p
\        V
4      VR&    VP	                  R4      p\        V4      VR&   V P                  V4        VP	                  R4      p\        V4      VR&   V P                  V4       \        R/ VB pVP                  P                  R	/ 4      pV P                  WÖ4      pV P                  R
8X  d   V P                  WÖ4      pMV P                  WÖ4      pV P                  WÖ4      pV P                  RWÖV4      pVP                  V4       EKz  	  VP                  V4       R#   \
         d     EL)i ; i  \
         d     EL
i ; i  \
         d     Lêi ; i)ÚnodesTr™   r›   ÚlabelÚpidÚstartÚendr|   Únode_defaultr.   N)r|   )r   r°   Úcopyr   ÚpopÚKeyErrorÚalter_graph_mode_timeformatrŽ   rd   Úadd_parentsr-   Ú
add_slicesÚ
add_spellsÚadd_vizÚadd_attributesr‡   )rV   r   r¦   Únodes_elementr|   rš   Ú	node_dataÚnode_idÚkwr±   r²   r³   r´   Únode_elementr­   s   &&&            r   r§   ÚGEXFWriter.add_nodesÕ  s»  € Ü Ó(ˆØŸ'™' t˜'×,‰JˆDØŸ	™	›ˆIÜ˜)Ÿ-™-¨¨dÓ3Ó4ˆGØ˜�ˆBÜ˜	Ÿ™ g¨tÓ4Ó5ˆEØˆw‰KðØ—m‘m EÓ*�Ü ›H��5‘	ðØ!Ÿ™ gÓ.�Ü! %›j��7‘Ø×0Ñ0°Ô7ðØ—m‘m EÓ*�Ü ›H��5‘	Ø×0Ñ0°Ô5ô #Ñ0¨RÑ0ˆLà—g‘g—k‘k .°"Ó5ˆGØ×(Ñ(¨ÓAˆIØ�|‰|˜uÔ$Ø ŸO™O¨LÓD‘	à ŸO™O¨LÓD�	ØŸ™ \Ó=ˆIØ×+Ñ+¨F°LÈWÓUˆIØ× Ñ  ×.ñE -ðF 	×Ñ˜]Ö+øô5 ô Úðûô ô Úðûô ô Ùðús6   Á3F-Â0F?Ã0GÆ-F<Æ;F<Æ?GÇGÇGÇGc                ó¦  a € V 3R  lp\        R4      pV! V4       EFÆ  w  rVrxR\        V4      /p	 VP                  R4      p
\        V
4      V	R&    VP                  R4      p\        V4      V	R&    VP                  R4      p\        V4      V	R&    VP                  R4      p\        V4      V	R&   S P	                  V4        VP                  R4      p\        V4      V	R&   S P	                  V4       \        VP
                  V,          P                  RV4      4      p\        VP
                  V,          P                  RV4      4      p\        RR	VR
V/V	B pVP                  P                  R/ 4      pS P                  R8X  d   S P                  VV4      pMS P                  VV4      pS P                  VV4      pS P                  RVVV4      pVP                  V4       EKÉ  	  VP                  V4       R#   \         d     EL¸i ; i  \         d     ELªi ; i  \         d     ELœi ; i  \         d     EL}i ; i  \         d     EL^i ; i)c              3   ó.  <"  € V P                  4       '       dÈ   V P                  R R R7       F®  w  rr4VP                  4       pVP                  VR7       VP	                  RR4      pVfk   \        SP                  4      p\        V4      SP                  9   d   \        SP                  4      pK1  SP                  P                  \        V4      4       WWe3x € K°  	  R# V P                  R R7       Fœ  w  rpVP                  4       pVP	                  RR4      pVfk   \        SP                  4      p\        V4      SP                  9   d   \        SP                  4      pK1  SP                  P                  \        V4      4       WWe3x € Kž  	  R# 5i)T)rš   Úkeys)Úkeyr›   Nr™   )
Úis_multigraphr£   r¶   Úupdater·   ÚnextrŠ   r   rŒ   r¤   )r   r©   rª   rÈ   rš   Ú	edge_datarŠ   rV   s   &      €r   Úedge_key_dataÚ+GEXFWriter.add_edges.<locals>.edge_key_dataý  s=  øé € à�‰× Ò Ø'(§w¡w°D¸t wÖ'D‘O�A˜#Ø $§	¡	£�IØ×$Ñ$¨Ð$Ô-Ø'Ÿm™m¨D°$Ó7�GØ’Ü"& t§|¡|Ó"4˜Ü! '›l¨d×.?Ñ.?Ô?Ü&*¨4¯<©<Ó&8šGØ×)Ñ)×-Ñ-¬c°'«lÔ;Ø Ð2Ô2ó (Eð #$§'¡'¨t 'Ö"4‘J�A˜$Ø $§	¡	£�IØ'Ÿm™m¨D°$Ó7�GØ’Ü"& t§|¡|Ó"4˜Ü! '›l¨d×.?Ñ.?Ô?Ü&*¨4¯<©<Ó&8šGØ×)Ñ)×-Ñ-¬c°'«lÔ;Ø Ð2Ô2ó #5ùs   ƒFFr£   r›   r±   ÚweightÚtyper³   r´   r}   ÚsourceÚtargetÚedge_defaultr.   N)r}   )r   r   r·   r¸   r¹   r°   rd   rŽ   r-   r»   r¼   r½   r¾   r‡   )rV   r   r¦   rÍ   Úedges_elementr©   rª   rÈ   rÌ   rÂ   Ú
edge_labelÚedge_weightÚ	edge_typer³   r´   Ú	source_idÚ	target_idÚedge_elementr­   s   f&&                r   r¨   ÚGEXFWriter.add_edgesü  s.  ø€ õ	3ô0   Ó(ˆÙ$1°!×$4Ñ ˆA�#Øœ˜C›Ð!ˆBðØ&Ÿ]™]¨7Ó3�
Ü! *›o��7‘ðØ'Ÿm™m¨HÓ5�Ü" ;Ó/��8‘ðØ%ŸM™M¨&Ó1�	Ü  ›^��6‘
ðØ!Ÿ™ gÓ.�Ü! %›j��7‘Ø×0Ñ0°Ô7ðØ—m‘m EÓ*�Ü ›H��5‘	Ø×0Ñ0°Ô5ô ˜AŸG™G A�JŸN™N¨4°Ó3Ó4ˆIÜ˜AŸG™G A�JŸN™N¨4°Ó3Ó4ˆIÜ"ÑT°)ÐTÀIÐTÐQSÑTˆLØ—g‘g—k‘k .°"Ó5ˆGØ�|‰|˜uÔ$Ø ŸO™O¨L¸)ÓD‘	à ŸO™O¨L¸)ÓD�	ØŸ™ \°9Ó=ˆIØ×+Ñ+¨F°LÀ)ÈWÓUˆIØ× Ñ  ×.ñO %5ðP 	×Ñ˜]Ö+øôG ô Úðûô
 ô Úðûô
 ô Úðûô ô Úðûô ô ÚðúsY   °G9ÁHÁ0HÂ0H/Ã0IÇ9HÈHÈHÈHÈH,È+H,È/H>È=H>ÉIÉIc                ó  € \        R 4      p\        V4      ^ 8X  d   V# RpVP                  4        EF;  w  rxVR8X  d   Rp\        V4      p	W�P                  9  d   \        RV	 24      h\        V\        4      '       Ed½   V F?  w  r«p\        V
4      p	Vf   Vf   K  RpV P                  V4       V P                  V4        M	  V P                  \        V4      V P                  V	,          WV4      pV EF?  w  r«p\        R4      pWÞP                  R&   \        V
\        4      '       d(   \        V
4      P                  4       VP                  R&   M™\        V
4      VP                  R&   V	\        J dx   VP                  R,          R	8X  d   R
VP                  R&   MOVP                  R,          R8X  d   RVP                  R&   M'VP                  R,          R8X  d   RVP                  R&   Ve   \        V4      VP                  R&   Ve   \        V4      VP                  R&   VP                  V4       EKB  	  EK  RpV P                  \        V4      V P                  V	,          WV4      p\        R4      pWÞP                  R&   \        V\        4      '       d(   \        V4      P                  4       VP                  R&   M™\        V4      VP                  R&   V	\        J dx   VP                  R,          R	8X  d   R
VP                  R&   MOVP                  R,          R8X  d   RVP                  R&   M'VP                  R,          R8X  d   RVP                  R&   VP                  V4       EK>  	  VP                  V4       V# )Ú	attvaluesr   rÈ   Únetworkx_keyz%attribute value type is not allowed: r~   ÚattvalueÚforÚvalueÚinfÚINFÚnanÚNaNz-infz-INFr³   r´   )r   ÚlenÚitemsrÐ   rT   Ú	TypeErrorÚ
isinstancerB   r¹   Úget_attr_idr   ÚattribrA   Úlowerr2   r‡   )rV   Únode_or_edgeÚxml_objrš   r­   rÝ   r	   Úkrª   Úval_typeÚvalr³   r´   r‹   Úes   &&&&&          r   r¾   ÚGEXFWriter.add_attributes@  sà  € ä˜KÓ(ˆ	Üˆt‹9˜Œ>ØˆKØˆØ—J‘J—L‰DˆAà�EŒzØ"�Ü˜A“wˆHØŸ}™}Ô,ÜÐ"GÈÀzÐ RÓSÐSÜ˜!œT×"Ó"ã'(‘O�C Ü# C›y�HØÒ(¨C¬OØ(˜Ø×8Ñ8¸Ô?Ø×8Ñ8¸Ô=Ùñ ()ð ×*Ñ*Ü˜“F˜DŸM™M¨(Õ3°\ÈDó�ô ()‘O�C Ü 
Ó+�AØ&-—H‘H˜U‘OÜ! #¤t×,Ò,Ü,/°«H¯N©NÓ,<˜Ÿ™ Ò)ä,/°«H˜Ÿ™ Ñ)à#¤uÓ,Ø Ÿx™x¨Õ0°EÔ9Ø49 §¡¨Ò 1Ø!"§¡¨'Õ!2°eÔ!;Ø49 §¡¨Ò 1Ø!"§¡¨'Õ!2°fÔ!<Ø4: §¡¨Ñ 1ØÒ(Ü,/°«J˜Ÿ™ Ñ)Ø’Ü*-¨c«(˜Ÿ™ ™Ø×$Ñ$ Q×'ô' ()ð,  �Ø×*Ñ*Ü˜“F˜DŸM™M¨(Õ3°\ÈDó�ô ˜JÓ'�Ø")—‘˜‘Ü˜a¤×&Ò&Ü(+¨A«¯©«�A—H‘H˜WÒ%ä(+¨A«�A—H‘H˜WÑ%à¤5Ó(ØŸ8™8 GÕ,°Ô5Ø05˜AŸH™H WÒ-ØŸX™X gÕ.°%Ô7Ø05˜AŸH™H WÒ-ØŸX™X gÕ.°&Ô8Ø06˜AŸH™H WÑ-Ø× Ñ  ×#ñw !ðx 	�‰�yÔ!Øˆr   c           	     óæ  €  V P                   V,          V,          V,          R ,          pV P                   V,          V,          V,          R,          pWr8w  d   \        RV RV RV R24      hV#   \         Edv    \        \	        T P
                  4      4      p/ T P                   T,          T,          T&   Y€P                   T,          T,          T,          R &   Y P                   T,          T,          T,          R&   R TRTRT/p	\        R/ T	B p
TP                  T4      pTe-   \        R	4      p\        T4      Tn        T
P                  T4       RpT P                  P                  R
4       F9  pTP                  R4      pTP                  RR4      pYó8X  g   K.  TT8X  g   K7  TpK;  	  Tf.   RTRT/p	\        R/ T	B pT P                  P                  ^ T4       TP                  T
4        T# i ; i)r›   Ú	attr_typez
Attribute z
 has type z but value z was given.ÚtitlerÐ   Nr­   Ú
attributesÚclassr	   r   )Ú	attribute)r÷   )r�   Ú
ValueErrorr¸   r   rË   r‹   r   rd   rƒ   r‡   r¦   ÚfindallÚinsert)rV   rö   rõ   Úedge_or_noder­   r	   Úexisting_idÚexisting_typeÚnew_idÚattr_kwargsrù   Údefault_titleÚdefault_elementÚattributes_elementr>   Úa_classÚa_modes   &&&&&&           r   rê   ÚGEXFWriter.get_attr_id…  sÝ  € ð&	1ØŸ)™) LÕ1°$Õ7¸Õ>¸tÕDˆKØ ŸI™I lÕ3°DÕ9¸%Õ@ÀÕMˆMð Ô)Ü Ø    z°-°ÀÈIÈ;ÐVaÐbóð ð ÐøÜõ 	1äœ˜dŸl™lÓ+Ó,ˆFØ35ˆD�I‰I�lÕ# DÕ)¨%Ñ0Ø9?�I‰I�lÕ# DÕ)¨%Õ0°Ñ6Ø@I�I‰I�lÕ# DÕ)¨%Õ0°Ñ=Ø ¨°%¸ÀÐKˆKÜÑ;¨{Ñ;ˆIà#ŸK™K¨Ó.ˆMØÒ(Ü")¨)Ó"4�Ü'*¨=Ó'9�Ô$Ø× Ñ  Ô1à!%ÐØ×'Ñ'×/Ñ/°Ö=�àŸ%™% ›.�ØŸ™˜v xÓ0�ØÖ*¨v¸®~Ø)*Ò&ñ >ð "Ò)à% t¨W°lÐC�Ü%,Ñ%I¸[Ñ%IÐ"Ø×"Ñ"×)Ñ)¨!Ð-?Ô@Ø×%Ñ% iÕ0Øˆð9	1ús    ‚A,A/ Á/D'G0ÆG0Æ$AG0Ç/G0c                óÂ  € VP                  R R4      pV'       EdÄ   VP                  R4      pVEe   V P                  R8X  dg   \        RV P                   R2\        VP                  R4      4      \        VP                  R4      4      \        VP                  R4      4      R	7      pM\        RV P                   R2\        VP                  R4      4      \        VP                  R4      4      \        VP                  R4      4      \        VP                  R
R4      4      R7      pVP                  V4       VP                  R4      pVe6   \        RV P                   R2\        V4      R7      pVP                  V4       VP                  R4      pVe6   \        RV P                   R2\        V4      R7      pVP                  V4       VP                  R4      pVes   VP                  R4      '       d'   \        RV P                   R2R\        V4      R7      pM$\        RV P                   R2\        V4      R7      pVP                  V4       VP                  R4      p	V	ew   \        RV P                   R2\        V	P                  R4      4      \        V	P                  R4      4      \        V	P                  R4      4      R7      pVP                  V4       V# )r{   FÚcolorr.   Ú{ú}colorÚrÚgÚb)r  r  r  r>   g      ð?)r  r  r  r>   Úsizeú}size)rá   Ú	thicknessú
}thicknessÚshapeÚhttpú}shapeÚimage)rá   ÚuriÚpositionú	}positionÚxÚyÚz)r  r  r  )r·   rd   r-   r   r)   r   r‡   Ú
startswith)
rV   ÚelementrÀ   r{   r	  rò   r  r  r  r  s
   &&&       r   r½   ÚGEXFWriter.add_viz°  sN  € Ø�m‰m˜E 5Ó)ˆßˆ3Ø—G‘G˜GÓ$ˆEØÓ Ø—<‘< 5Ô(ÜØ˜TŸ[™[˜M¨Ð1Ü˜eŸi™i¨›nÓ-Ü˜eŸi™i¨›nÓ-Ü˜eŸi™i¨›nÓ-ô	‘Aô  Ø˜TŸ[™[˜M¨Ð1Ü˜eŸi™i¨›nÓ-Ü˜eŸi™i¨›nÓ-Ü˜eŸi™i¨›nÓ-Ü˜eŸi™i¨¨SÓ1Ó2ô�Að —‘˜qÔ!à—7‘7˜6“?ˆDØÒÜ˜b §¡ ¨VÐ4¼CÀ»IÔF�Ø—‘˜qÔ!àŸ™ Ó,ˆIØÒ$Ü˜b §¡ ¨[Ð9ÄÀYÃÔP�Ø—‘˜qÔ!à—G‘G˜GÓ$ˆEØÒ Ø×#Ñ# F×+Ò+ÜØ˜TŸ[™[˜M¨Ð1¸ÄcÈ%Ãjô‘Aô   " T§[¡[ M°Ð 9ÄÀUÃÔL�AØ—‘˜qÔ!à—w‘w˜zÓ*ˆHØÒ#ÜØ˜Ÿ™˜ ZÐ0Ü˜(Ÿ,™, sÓ+Ó,Ü˜(Ÿ,™, sÓ+Ó,Ü˜(Ÿ,™, sÓ+Ó,ô	�ð —‘˜qÔ!ØÐr   c                óì   € VP                  R R4      pV'       dZ   \        R 4      pV F7  p\        R4      p\        V4      VP                  R&   VP	                  V4       K9  	  VP	                  V4       V# )ÚparentsFÚparentrà   )r·   r   r   rë   r‡   )rV   rÃ   rÀ   r!  Úparents_elementÚprò   s   &&&    r   rº   ÚGEXFWriter.add_parentså  sh   € Ø—-‘- 	¨5Ó1ˆßÜ% iÓ0ˆOÛ�Ü˜HÓ%�Ü"% a£&�—‘˜‘Ø×&Ñ& qÖ)ñ ð ×Ñ Ô0ØÐr   c                óê   € VP                  R R4      pV'       dY   \        R 4      pV F6  w  rV\        R\        V4      \        V4      R7      pVP                  V4       K8  	  VP                  V4       V# )ÚslicesFÚslice©r³   r´   )r·   r   r   r‡   )rV   Únode_or_edge_elementÚnode_or_edge_datar'  Úslices_elementr³   r´   rò   s   &&&     r   r»   ÚGEXFWriter.add_slicesð  sg   € Ø"×&Ñ& x°Ó7ˆßÜ$ XÓ.ˆNÛ$‘
�Ü˜G¬3¨u«:¼3¸s»8ÔD�Ø×%Ñ% aÖ(ñ %ð !×'Ñ'¨Ô7Ø Ð r   c                ót  € VP                  R R4      pV'       dž   \        R 4      pV F{  w  rV\        R4      pVe*   \        V4      VP                  R&   V P	                  V4       Ve*   \        V4      VP                  R&   V P	                  V4       VP                  V4       K}  	  VP                  V4       V# )ÚspellsFÚspellr³   r´   )r·   r   r   rë   r¹   r‡   )rV   r*  r+  r/  Úspells_elementr³   r´   rò   s   &&&     r   r¼   ÚGEXFWriter.add_spellsú  s¥   € Ø"×&Ñ& x°Ó7ˆßÜ$ XÓ.ˆNÛ$‘
�Ü˜GÓ$�ØÒ$Ü(+¨E«
�A—H‘H˜WÑ%Ø×4Ñ4°UÔ;Ø’?Ü&)¨#£h�A—H‘H˜U‘OØ×4Ñ4°SÔ9Ø×%Ñ% aÖ(ñ %ð !×'Ñ'¨Ô7Ø Ð r   c                óˆ  € Ve¾   \        V\        4      '       d   RpMH\        V\        4      '       d   RpM/\        V\        4      '       d   RpM\        P
                  ! R4      hV P                  P                  RV4       V P                  P                  R4      R8X  d   V P                  P                  RR4       R # R # R # )	NÚdater3   r6   z2timeformat should be of the type int, float or strÚ
timeformatr	   r   r~   )	ré   r   r2   r9   re   rf   r¦   r„   rd   )rV   Ústart_or_endr5  s   && r   r¹   Ú&GEXFWriter.alter_graph_mode_timeformat
  s¥   € àÒ#Ü˜,¬×,Ò,Ø#‘
Ü˜L¬%×0Ò0Ø%‘
Ü˜L¬#×.Ò.Ø#‘
ä×&Ò&ØHóð ð ×Ñ×"Ñ" <°Ô<à×!Ñ!×%Ñ% fÓ-°Ô9Ø×"Ñ"×&Ñ& v¨yÖ9ñ :ñ $r   c                óÄ   € V P                   '       d   V P                  V P                  4       \        V P                  4      pVP	                  WP
                  R R7       R# )T)r   Úxml_declarationN)r   r“   r€   r   r   r   )rV   ÚfhÚdocuments   && r   r   ÚGEXFWriter.write  s@   € à××ÐØ�K‰K˜Ÿ™Ô!Ü˜tŸx™xÓ(ˆØ�‰�r§M¡MÀ4ˆÖHr   c                óz  € R RV,          ,           p\        V4      '       dÖ   VP                  '       d!   VP                  P                  4       '       g   VR,           Vn        VP                  '       d!   VP                  P                  4       '       g   W1n        V F  pV P	                  W^,           4       K  	  VP                  '       d!   VP                  P                  4       '       g	   W1n        R# R# V'       d=   VP                  '       d!   VP                  P                  4       '       g	   W1n        R# R# R# )Ú
z  N)ræ   rƒ   ÚstripÚtailr“   )rV   ÚelemÚlevelÚis   &&& r   r“   ÚGEXFWriter.indent#  sÂ   € à�4˜%•<ÕˆÜˆt�9Š9Ø—9—9�9 D§I¡I§O¡O×$5Ò$5Ø �H�”	Ø—9—9�9 D§I¡I§O¡O×$5Ò$5Ø”	Û�Ø—‘˜D¨!¥)Ö,ñ à—9—9�9 D§I¡I§O¡O×$5Ò$5Ø–	ñ %6÷ ˜dŸiŸi˜i¨t¯y©y¯©×/@Ò/@Ø–	ñ 0A‰ur   )	rŒ   r�   r‹   rŠ   r   r¦   r�   r   r€   )Núutf-8Tr/   )é    )rj   rk   rl   rm   r�   r–   r   r§   r¨   r¾   rê   r½   rº   r»   r¼   r¹   r   r“   rp   rq   rr   s   @r   r   r   ‚  sY   ø‡ € ô)"òVò'ò>%,òNB,òHCòJ)òV3òj	ò!ò!ò :ò$I÷ò r   r   c                   ót   a € ] tR tRt o RR ltR tRR ltRR ltR tR t	R	 t
R
 tR tR tR tR tRtV tR# )r!   i4  Nc                ób   € V P                  4        Wn        R V n        V P                  V4       R# )TN)rY   r    Úsimple_graphrh   )rV   r    r   s   &&&r   r�   ÚGEXFReader.__init__7  s)   € Ø×ÑÔØ"Œà ˆÔØ×Ñ˜Ö!r   c                ó<  € \        VR 7      V n        V P                  P                  RV P                   R24      pV P                  P                  RV P                   R24      pVe   V P	                  W2R7      # V P
                   F~  pV P                  V4       V P                  P                  RV P                   R24      pV P                  P                  RV P                   R24      pVf   Kl  V P	                  W2R7      u # 	  \        P                  ! R4      h))Úfiler
  z}metaz}graph)Úmeta_xmlz No <graph> element in GEXF file.)	r   r€   Úfindr(   Ú
make_graphrc   rh   re   rf   )rV   Ústreamrx   r  r   s   &&   r   Ú__call__ÚGEXFReader.__call__>  sæ   € Ü FÔ+ˆŒØ�x‰x�}‰}˜r $§,¡, ¨vÐ6Ó7ˆØ�H‰H�M‰M˜B˜tŸ|™|˜n¨GÐ4Ó5ˆØŠ=Ø—?‘? 1�?Ó4Ð4à—}”}ˆGØ×Ñ˜WÔ%Ø—8‘8—=‘= 2 d§l¡l ^°6Ð!:Ó;ˆDØ—‘—‘  4§<¡< .°Ð8Ó9ˆAØŒ}Ø—‘ q�Ó8Ò8ñ %ô ×ÒÐAÓBÐBr   c                ó¦  € VP                  R R4      pVR8X  d   \        P                  ! 4       pM\        P                  ! 4       pVey   VP	                  RV P
                   R24      pVe   VP                  VP                  R&   VP	                  RV P
                   R24      pVe   VP                  VP                  R&   VP                  RR	4      pVR	8w  d   WtP                  R&   VP                  R
4      pVe   W„P                  R
&   VP                  R4      p	V	e   W”P                  R&   VP                  RR	4      p
V
R8X  d   RVP                  R&   MRVP                  R&   VP                  R4      V n        V P                  R8X  d   RV n        VP                  RV P
                   R24      p/ p/ p/ p/ pV FÆ  pVP                  R4      pVR8X  dG   V P                  V4      w  ppVP                  V4       VP                  V4       WÔP                  R&   Ka  VR8X  dG   V P                  V4      w  ppVP                  V4       VP                  V4       WôP                  R&   K®  \        P                  ! RV R24      h	  RRRRRRR//p/ pVP                  V4       VP                  V4       WôP                  R&   VP	                  RV P
                   R24      pVe:   VP                  RV P
                   R24       F  pV P                  VVV4       K  	  VP	                  RV P
                   R 24      pVe:   VP                  RV P
                   R!24       F  pV P                  VVV4       K  	  V P                  '       dE   VP!                  4       '       d   \        P"                  ! V4      pV# \        P$                  ! V4      pV# )"r¢   Nrž   r
  z}descriptionrœ   z	}keywordsr�   r    r¡   r³   r´   r	   r~   r   r5  r4  r5   z}attributesrø   r|   rµ   r}   rÓ   zUnknown attribute class rb   rÏ   rÐ   r3   rö   ú}nodesú}nodez}edgesz}edge)rd   re   ÚMultiDiGraphÚ
MultiGraphrN  r(   rƒ   rŽ   r5  rû   Úfind_gexf_attributesrÊ   rf   Úadd_nodeÚadd_edgerI  r¥   ÚDiGraphÚGraph)rV   Ú	graph_xmlrM  Úedgedefaultr   rœ   r�   Ú
graph_nameÚgraph_startÚ	graph_endÚ
graph_modeÚattributes_elementsÚ	node_attrrµ   Ú	edge_attrrÓ   r>   Ú
attr_classÚnaÚndÚeaÚedr¿   Únode_xmlrÔ   Úedge_xmls   &&&                       r   rO  ÚGEXFReader.make_graphM  s~  € à—m‘mÐ$5°tÓ<ˆØ˜*Ô$Ü—’Ó!‰Aä—’“ˆAð ÒØ"Ÿ-™-¨"¨T¯\©\¨N¸-Ð(HÓIˆKØÒ&Ø)4×)9Ñ)9�—‘˜Ñ&Ø—}‘} r¨$¯,©,¨°zÐ%BÓCˆHØÒ#Ø&.§m¡m�—‘˜
Ñ#ð —]‘] 6¨2Ó.ˆ
Ø˜ÔØ(�G‰G�F‰OØ—m‘m GÓ,ˆØÒ"Ø*�G‰G�GÑØ—M‘M %Ó(ˆ	ØÒ Ø&�G‰G�E‰NØ—]‘] 6¨2Ó.ˆ
Ø˜Ô"Ø'ˆA�G‰G�FŠOà&ˆA�G‰G�F‰Oð $Ÿ-™-¨Ó5ˆŒØ�?‰?˜fÔ$Ø&ˆDŒOð (×/Ñ/°"°T·\±\°NÀ,Ð0OÓPÐàˆ	ØˆØˆ	ØˆÛ$ˆAØŸ™˜w›ˆJØ˜VÔ#Ø×2Ñ2°1Ó5‘��BØ× Ñ  Ô$Ø×#Ñ# BÔ'Ø*6—‘˜Ó'Ø˜vÔ%Ø×2Ñ2°1Ó5‘��BØ× Ñ  Ô$Ø×#Ñ# BÔ'Ø*6—‘˜Ó'ä×&Ò&Ð)AÀ*ÀÈQÐ'OÓPÐPñ %ð" ˜ ¨6°8¸WÀhÐOÐPˆØˆØ×Ñ˜ÔØ×Ñ˜BÔØ".�‰�Ñð "Ÿ™¨¨D¯L©L¨>¸Ð'AÓBˆØÒ$Ø)×1Ñ1°B°t·|±|°nÀFÐ2KÖL�Ø—‘˜a ¨9Ö5ñ Mð "Ÿ™¨¨D¯L©L¨>¸Ð'AÓBˆØÒ$Ø)×1Ñ1°B°t·|±|°nÀFÐ2KÖL�Ø—‘˜a ¨9Ö5ñ Mð ××ÐØ�}‰}�ŠÜ—J’J˜q“M�ð ˆô —H’H˜Q“K�Øˆr   c                ó’  € V P                  W24      pV P                  WR4      pV P                  R 8X  d   V P                  WR4      pMV P	                  WR4      pV P                  WR4      pV P                  WR4      pVP                  R4      pV P                  e   V P                  V4      pVP                  R4      pWuR&   VP                  RV4      pVe   WER&   VP                  RV P                   R24      pVe:   VP                  RV P                   R24       F  pV P                  WW6R7       K  	  VP                  ! V3/ VB  R# )	r.   r›   Nr±   r²   r
  rT  rU  )Únode_pid)Údecode_attr_elementsrº   r-   r»   r¼   r½   Úadd_start_endrd   r    rN  r(   rû   rY  )	rV   r   rk  rd  ro  rš   rÁ   Ú
node_labelÚsubnodess	   &&&&&    r   rY  ÚGEXFReader.add_node¥  s1  € ð ×(Ñ(¨Ó=ˆØ×Ñ Ó/ˆØ�<‰<˜5Ô Ø—?‘? 4Ó2‰Dà—?‘? 4Ó2ˆDØ�|‰|˜DÓ+ˆØ×!Ñ! $Ó1ˆð —,‘,˜tÓ$ˆØ�>‰>Ò%Ø—n‘n WÓ-ˆGð —\‘\ 'Ó*ˆ
Ø"ˆW‰ð —<‘<  xÓ0ˆØÒØ"�‰Kð —=‘= 2 d§l¡l ^°7Ð!;Ó<ˆØÒØ$×,Ñ,¨r°$·,±,°¸vÐ-FÖG�Ø—‘˜a¨9�ÖGñ Hð 	
�
Š
�7Ñ#˜dÔ#r   c                óâ   € V P                   pVP                  R 4      pVe   V P                  V,          ! V4      VR &   VP                  R4      pVe   V P                  V,          ! V4      VR&   V# r)  )r5  rd   rU   )rV   rš   r€   ÚttypeÚ
node_startÚnode_ends   &&&   r   rq  ÚGEXFReader.add_start_endÈ  si   € à—‘ˆØ—W‘W˜WÓ%ˆ
ØÒ!Ø ×,Ñ,¨UÖ3°JÓ?ˆD�‰MØ—7‘7˜5“>ˆØÒØ×*Ñ*¨5Ö1°(Ó;ˆD�‰KØˆr   c                óÂ  € / pVP                  R V P                   R24      pVeÔ   V P                  R8X  dU   R\        VP	                  R4      4      R\        VP	                  R4      4      R\        VP	                  R4      4      /VR&   MnR\        VP	                  R4      4      R\        VP	                  R4      4      R\        VP	                  R4      4      R\        VP	                  R^4      4      /VR&   VP                  R V P                   R24      pVe   \        VP	                  R	4      4      VR
&   VP                  R V P                   R24      pVe   \        VP	                  R	4      4      VR&   VP                  R V P                   R24      pVe7   VP	                  R4      VR&   VR,          R8X  d   VP	                  R4      VR&   VP                  R V P                   R24      pVeW   R\        VP	                  R^ 4      4      R\        VP	                  R^ 4      4      R\        VP	                  R^ 4      4      /VR&   \        V4      ^ 8”  d   W1R&   V# )r
  r  r.   r  r  r  r	  r>   r  rá   r  r  r  r  r  r  r  r  r  r  r  r  r{   )rN  r)   r-   r9   rd   r2   ræ   )	rV   rš   rk  r{   r	  r  r  r  r  s	   &&&      r   r½   ÚGEXFReader.add_vizÓ  s  € àˆØ—‘  4§;¡; -¨wÐ7Ó8ˆØÒØ�|‰|˜uÔ$àœ˜UŸY™Y s›^Ó,Øœ˜UŸY™Y s›^Ó,Øœ˜UŸY™Y s›^Ó,ð ��G’ð œ˜UŸY™Y s›^Ó,Øœ˜UŸY™Y s›^Ó,Øœ˜UŸY™Y s›^Ó,Øœ˜uŸy™y¨¨aÓ0Ó1ð	 ��G‘ð �}‰}˜r $§+¡+ ¨fÐ5Ó6ˆØÒÜ §¡¨Ó 1Ó2ˆC�‰Kà—M‘M B t§{¡{ m°;Ð"?Ó@ˆ	ØÒ Ü$ Y§]¡]°7Ó%;Ó<ˆC�Ñà—‘  4§;¡; -¨wÐ7Ó8ˆØÒØ Ÿ9™9 WÓ-ˆC�‰LØ�7�|˜wÔ&Ø$Ÿy™y¨Ó/��G‘à—=‘= 2 d§k¡k ]°*Ð!=Ó>ˆØÒà”U˜8Ÿ<™<¨¨QÓ/Ó0Ø”U˜8Ÿ<™<¨¨QÓ/Ó0Ø”U˜8Ÿ<™<¨¨QÓ/Ó0ðˆC�
‰Oô ˆs‹8�aŒ<Ø�‰KØˆr   c                óô   € VP                  R V P                   R24      pVeU   . VR&   VP                  R V P                   R24       F,  pVP                  R4      pVR,          P	                  V4       K.  	  V# )r
  z}parentsr!  z}parentrà   ©rN  r(   rû   rd   r‡   )rV   rš   rk  r#  r$  r"  s   &&&   r   rº   ÚGEXFReader.add_parents   su   € Ø"Ÿ-™-¨"¨T¯\©\¨N¸)Ð(DÓEˆØÒ&Ø ˆD�‰OØ$×,Ñ,¨r°$·,±,°¸xÐ-HÖI�ØŸ™˜u›�Ø�Y•×&Ñ& vÖ.ñ Jð ˆr   c                ó  € VP                  R V P                   R24      pVeg   . VR&   VP                  R V P                   R24       F>  pVP                  R4      pVP                  R4      pVR,          P	                  WV34       K@  	  V# )r
  z}slicesr'  z}slicer³   r´   r}  )rV   rš   Únode_or_edge_xmlr,  r•   r³   r´   s   &&&    r   r»   ÚGEXFReader.add_slices	  s†   € Ø)×.Ñ.°°D·L±L°>ÀÐ/JÓKˆØÒ%ØˆD�‰NØ#×+Ñ+¨b°·±°¸gÐ,FÖG�ØŸ™˜g›�Ø—e‘e˜E“l�Ø�X•×%Ñ% u lÖ3ñ Hð ˆr   c                óŒ  € VP                  R V P                   R24      pVe¡   . VR&   V P                  pVP                  R V P                   R24       Fl  pV P                  V,          ! VP                  R4      4      pV P                  V,          ! VP                  R4      4      pVR,          P                  Wg34       Kn  	  V# )r
  z}spellsr/  z}spellr³   r´   )rN  r(   r5  rû   rU   rd   r‡   )rV   rš   r€  r1  rv  r•   r³   r´   s   &&&     r   r¼   ÚGEXFReader.add_spells  s¯   € Ø)×.Ñ.°°D·L±L°>ÀÐ/JÓKˆØÒ%ØˆD�‰NØ—O‘OˆEØ#×+Ñ+¨b°·±°¸gÐ,FÖG�Ø×(Ñ(¨Ö/°·±°g³Ó?�Ø×&Ñ& uÖ-¨a¯e©e°E«lÓ;�Ø�X•×%Ñ% u lÖ3ñ Hð ˆr   c                óÀ  € VP                  R 4      pVP                  4       '       d   VR8X  d   \        P                  ! R4      hVP                  4       '       g   VR8X  d   \        P                  ! R4      hVP                  R4      pVP                  R4      pV P                  e#   V P	                  V4      pV P	                  V4      pV P                  W24      pV P                  Wr4      pV P                  R8X  d   V P                  Wr4      pMV P                  Wr4      pVP                  R	4      pVe   W‡R	&   VP                  R
R4      p	V	e   T	pVP                  R4      p
V
e   \        V
4      VR&   VP                  R4      pVe   W·R&   VP                  WV4      '       d   RV n        VP                  ! WV3RV/VB  VR8X  d   VP                  ! We3RV/VB  R# R# )rÐ   rŸ   z(Undirected edge found in directed graph.rž   z(Directed edge found in undirected graph.rÑ   rÒ   Nr.   r›   rÞ   rÏ   r±   FrÈ   Úmutual)rd   r¥   re   rf   r    rp  rq  r-   r»   r¼   r·   r2   Úhas_edgerI  rZ  )rV   r   rÚ   re  Úedge_directionrÑ   rÒ   rš   rŠ   Úmultigraph_keyrÏ   rÕ   s   &&&&        r   rZ  ÚGEXFReader.add_edge  s¸  € ð &×)Ñ)¨&Ó1ˆØ�=‰=�?Š?˜~°Ô=Ü×"Ò"Ð#MÓNÐNØ—‘—’ ^°zÔ%AÜ×"Ò"Ð#MÓNÐNð ×!Ñ! (Ó+ˆØ×!Ñ! (Ó+ˆØ�>‰>Ò%Ø—^‘^ FÓ+ˆFØ—^‘^ FÓ+ˆFà×(Ñ(¨ÓAˆØ×!Ñ! $Ó5ˆà�<‰<˜5Ô Ø—?‘? 4Ó6‰Dà—?‘? 4Ó6ˆDð
 ×"Ñ" 4Ó(ˆØÒØ �‰Jð Ÿ™ .°$Ó7ˆØÒ%Ø$ˆGà×!Ñ! (Ó+ˆØÒÜ" 6›]ˆD�‰Nà!×%Ñ% gÓ.ˆ
ØÒ!Ø&�‰Mà�:‰:�f×%Ò%à %ˆDÔØ	�
Š
�6Ñ7 wÐ7°$Ò7Ø˜XÔ%Ø�JŠJ�vÑ;¨7Ð;°dÔ;ñ &r   c                ó(  € / pVP                  R V P                   R24      pVEe>   VP                  R V P                   R24       EF  pVP                  R4      p W,          R,          pY,          R,          p	TP                  R	4      p
T	R
8X  d   T P                  T
,          p
MT P                  T	,          ! T
4      p
Y,          R,          R8X  d‰   T P                  pT P                  T,          ! TP                  R4      4      pT P                  T,          ! TP                  R4      4      pYs9   d   Y7,          P                  Y¬T34       EK  Y¬T3.Y7&   EK  Y£T&   EK  	  V#   \         d!   p\
        P                  ! RT R24      ThRp?ii ; i)r
  z
}attvaluesNz	}attvaluerà   rö   zNo attribute defined for=rb   rÐ   rá   r4   r	   r~   r³   r´   )rN  r(   rû   rd   r¸   re   rf   ro   rU   r5  r‡   )rV   Ú	gexf_keysÚobj_xmlr�   Úattr_elementr>   rÈ   rö   ÚerrÚatyperá   rv  r³   r´   s   &&&           r   rp  ÚGEXFReader.decode_attr_elementsR  sq  € àˆà—|‘| b¨¯©¨°kÐ$BÓCˆØÓ#à!×)Ñ)¨B¨t¯|©|¨n¸JÐ*G×H�Ø—e‘e˜E“l�ðXØ%�N¨7Õ3�Eð "� vÕ.�ØŸ™˜g›�Ø˜IÔ%Ø ×-Ñ-¨eÕ4‘Eà ×,Ñ,¨UÖ3°EÓ:�EØ•> &Õ)¨YÔ6ð !ŸO™O�EØ ×,Ñ,¨UÖ3°A·E±E¸'³NÓC�EØ×*Ñ*¨5Ö1°!·%±%¸³,Ó?�CØ”}Ø�×*Ñ*¨E¸#Ð+>×?à(-°cÐ':Ð&;˜œð #(˜”Kñ1 Ið2 ˆøô+  ô XÜ×*Ò*Ð-FÀsÀeÈ1Ð+MÓNÐTWÐWûðXús   ÁE&Å&FÅ1FÆFc                óÚ  € / p/ pVP                  R 4      pVP                  RV P                   R24       F±  pVP                  R4      pVP                  R4      pVP                  R4      pRVRVR V/W&&   VP                  RV P                   R24      p	V	f   Ke  VR8X  d   V P                  V	P
                  ,          p
M#V P                  V,          ! V	P
                  4      p
W£V&   K³  	  W#3# )r	   r
  z
}attributer›   rö   rÐ   z}defaultr4   )rd   rû   r(   rN  ro   rƒ   rU   )rV   r  ÚattrsÚdefaultsr	   rï   r‹   rö   r�  r­   rá   s   &&         r   rX  ÚGEXFReader.find_gexf_attributest  sá   € àˆØˆØ!×%Ñ% fÓ-ˆØ#×+Ñ+¨b°·±°¸kÐ,JÖKˆAØ—e‘e˜D“kˆGØ—E‘E˜'“NˆEØ—E‘E˜&“MˆEØ% u¨f°e¸VÀTÐJˆE‰Nà—f‘f˜r $§,¡, ¨yÐ9Ó:ˆGØÔ"Ø˜IÔ%Ø ×-Ñ-¨g¯l©lÕ;‘Eà ×,Ñ,¨UÖ3°G·L±LÓA�EØ"'˜“ñ Lð ˆÐr   )r    rI  r5  r€   )Nr/   r;   )rj   rk   rl   rm   r�   rQ  rO  rY  rq  r½   rº   r»   r¼   rZ  rp  rX  rp   rq   rr   s   @r   r!   r!   4  sM   ø‡ € ô"òCôVôp!$òF	ò+òZòò	ò2<òh ÷Dð r   r!   c                óp  €  V  Uu. uF  qV P                   V,          R,          3NK   	  pp\	        T!  w  rE\        \        T4      4      \        T 4      8w  d   \        P                  ! R4      h\        T4      p\        P                  ! Y4      pT  Fì  pY',          pYvP                   T,          R&   TP                   T,          P                  R4       RTP                   T,          9   d5   Y P                   T,          R,          ,          TP                   T,          R&   RTP                   T,          9   g   K¨  T P                   T,          R,           U	u. uF  q’T	,          NK  	  up	TP                   T,          R&   Kî  	  T# u upi   \         d   p\        P                  ! R4      ThRp?ii ; iu up	i )aÕ  Relabel graph using "label" node keyword for node label.

Parameters
----------
G : graph
   A NetworkX graph read from GEXF data

Returns
-------
H : graph
  A NetworkX graph with relabeled nodes

Raises
------
NetworkXError
    If node labels are missing or not unique while relabel=True.

Notes
-----
This function relabels the nodes in a NetworkX graph with the
"label" attribute.  It also handles relabeling the specific GEXF
node attributes "parents", and "pid".
r±   zFFailed to relabel nodes: missing node labels found. Use relabel=False.NzHFailed to relabel nodes: duplicate node labels found. Use relabel=False.r›   r²   r!  )
r°   r¸   re   rf   Úzipræ   r„   rC   Úrelabel_nodesr·   )
r   r©   ÚmappingrŽ  r  r  ÚHÚnÚmr$  s
   &         r   r"   r"   ‰  sb  € ð2Ù56Ó7±Q°�q—w‘w˜q•z 'Õ*Ó+±QˆÐ7ô
 �‰=�D€AÜ
Œ3ˆq‹6ƒ{”c˜!“fÔÜ×ÒØVó
ð 	
ô �7‹m€GÜ
×Ò˜Ó$€AãˆØ�JˆØ�‰��
�4ÑØ	�‰��
�‰�wÔØ�A—G‘G˜A•JÔØ '¯©°­
°5Õ(9Õ :ˆA�G‰G�A�J�uÑØ˜Ÿ™ �
Ö"Ø9:¿¹À½ÀIÖ9NÓ$OÑ9N°A¨Q§Z ZÑ9NÑ$OˆA�G‰G�A�J�yÓ!ñ ð €Hùò+ 8øÜô Ü×ÒØTó
àð	ûðüò& %Ps-   ‚F	 †$FªF	 ÅF3ÆF	 Æ	F0ÆF+Æ+F0)r   r%   r"   r   )rE  Tr/   )NFr/   )Ú__doc__rˆ   r…   Úxml.etree.ElementTreer   r   r   r   r   Únetworkxre   Únetworkx.utilsr   Ú__all__r   r   Ú_dispatchabler%   r'   r   r!   r"   © r   r   Ú<module>r£     s¯   ðñó& Û ÷õ ó Ý $â
L€ñ ˆ1�4Ôótó ðtônI(ñX ˆ1�4ÔØ×Ò˜¨TÔ2ó+ó 3ó ð+÷\gñ gôTo�ô oôdR�ô Rôj
/r   