
    hfe                    V   S SK Jr  S SKJrJrJrJrJrJrJ	r	J
r
  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  \\   r\" \SS	9rS
SSSSSSSSSSSS.rSSSSSS.r " S S5      r\  S(       S)S jj5       r " S  S!5      r S*       S+S# jjrS,S-S$ jjrS.S% jr \!" S&5      r"S'r#g")/    )annotations)TextIOBinaryIOUnionSequenceIterablecastIteratorOptional)contextmanager)partial)StringIO)Path)BinaryTagWriter   )ndigitsr   r   )   r   )   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r      )r   r   )r   r   )LEFTCENTERRIGHTBOTTOM_LEFTBOTTOM_CENTERBOTTOM_RIGHTMIDDLE_LEFTMIDDLE_CENTERMIDDLE_RIGHTTOP_LEFT
TOP_CENTER	TOP_RIGHT
      (   )   *   )xysebc                  (    \ rS rSrSS jrSS jrSrg)BinaryDXFWriter-   c                z    Xl         [        U R                   SSSS9U l        U R                  R                  5         g )NAC1009Fcp1252)
dxfversionwrite_handlesencoding)_streamr   
_tagwriterwrite_signature)selfstreams     H/var/www/html/env/lib/python3.13/site-packages/ezdxf/addons/r12writer.py__init__BinaryDXFWriter.__init__.   s5    )LL	
 	'')    c                :    U R                   R                  U5        g N)r7   	write_str)r9   r*   s     r;   writeBinaryDXFWriter.write8   s    !!!$r>   )r6   r7   N)r:   r   )r*   strreturnNone)__name__
__module____qualname____firstlineno__r<   rB   __static_attributes__ r>   r;   r.   r.   -   s    *%r>   r.   c           	   #    #    SnUR                  S5      (       a)  [        U [        [        45      (       a  [	        U SSS9nUn OUR                  S5      (       ai  [        U [        [        45      (       a&  [	        U S5      n[        [        [        U5      5      n O7[        [        [        [        [        U 5      5      5      n O[        SU S	35      e[        [        [        U 5      U5      n Uv   UR                  5         U(       a  UR                  5         gg! UR                  5         U(       a  UR                  5         f f = f7f)
a  Context manager for writing DXF entities to a stream/file. `stream` can
be any file like object with a :func:`write` method or just a string for
writing DXF entities to the file system. If `fixed_tables` is ``True``, a
standard TABLES section is written in front of the ENTITIES
section and some predefined text styles and line types can be used.

Set argument `fmt` to "asc" to write ASCII DXF file (default) or "bin" to
write Binary DXF files. ASCII DXF require a :class:`TextIO` stream and
Binary DXF require a :class:`BinaryIO` stream.

Nascwtr2   )r5   binwbzUnknown format 'z'.)
startswith
isinstancerD   r   openr	   r   r.   r   
ValueErrorR12FastStreamWriterclose)r:   fixed_tablesfmtr6   writers        r;   	r12writerr[   <   s     " .2G
~~efsDk**64(;GF			fsDk**64(G&/'":;F&/$x2H"IJF +C5344 ff!5|DFMMO  	MMO s   C*E-D 1)E*EEc                  b   \ rS rSrSrSSS jjrSS jr   S           SS jjr   S           SS jjr     S               SS jjr	   S         SS	 jjr
    S           SS
 jjr   S         SS jjr              SS jr    S            S!S jjr       S"                 S#S jjr   S           S$S jjr    S%           S&S jjr         S'                     S(S jjrSrg))rV   e   a=  Fast stream writer to create simple DXF R12 drawings.

Args:
    stream: a file like object with a :func:`write` method.
    fixed_tables: if `fixed_tables` is ``True``, a standard TABLES section
        is written in front of the ENTITIES section and some predefined text
        styles and line types can be used.

c                j    Xl         U(       a  UR                  [        5        UR                  S5        g )Nz0
SECTION
2
ENTITIES
)r:   rB   PREFACE)r9   r:   rX   s      r;   r<   R12FastStreamWriter.__init__p   s#    LL!01r>   c                :    U R                   R                  S5        g)z]Writes the DXF tail. Call is not necessary when using the context
manager :func:`r12writer`.
z0
ENDSEC
0
EOF
Nr:   rB   )r9   s    r;   rW   R12FastStreamWriter.closev   s     	/0r>   Nc                    S/nUR                  [        X4U5      5        UR                  [        USS95        UR                  [        USS95        U R                  R	                  SR                  U5      5        g)a  Add a LINE entity from `start` to `end`.

Args:
    start: start vertex as ``(x, y[, z])`` tuple
    end: end vertex as  as ``(x, y[, z])`` tuple
    layer: layer name as string, without a layer definition the assigned
        color = ``7`` (black/white) and line type is ``'Continuous'``.
    color: color as :ref:`ACI` in the range from ``0`` to ``256``,
        ``0`` is `ByBlock` and ``256`` is `ByLayer`, default is `ByLayer`
        which is always color = ``7`` (black/white) without a layer
        definition.
    linetype: line type as string, if FIXED-TABLES are written some
        predefined line types are available, else line type is always
        `ByLayer`, which is always ``'Continuous'`` without a LAYERS
        table.

z0
LINE
r#   code    Nappenddxf_attribs
dxf_vertexr:   rB   join)r9   startendlayercolorlinetypedxfs          r;   add_lineR12FastStreamWriter.add_line|   s^    2 m

;uX67

:e"-.

:c+,"''#,'r>   c           
     "   S/nUR                  [        X4U5      5        UR                  [        U5      5        UR                  [        S[	        [        U5      5      5      5        U R                  R                  SR                  U5      5        g)a  Add a CIRCLE entity.

Args:
    center: circle center point as ``(x, y)`` tuple
    radius: circle radius as float
    layer: layer name as string see :meth:`add_line`
    color: color as :ref:`ACI` see :meth:`add_line`
    linetype: line type as string see :meth:`add_line`

z	0
CIRCLE
r%   rh   N	rj   rk   rl   dxf_tagrD   rndr:   rB   rm   )r9   centerradiusrp   rq   rr   rs   s          r;   
add_circleR12FastStreamWriter.add_circle   se    $ o

;uX67

:f%&

72s3v;/01"''#,'r>   c           
        S/nUR                  [        XVU5      5        UR                  [        U5      5        UR                  [        S[	        [        U5      5      5      5        UR                  [        S[	        [        U5      5      5      5        UR                  [        S[	        [        U5      5      5      5        U R                  R                  SR                  U5      5        g)a  Add an ARC entity. The arc goes counter-clockwise from `start` angle
to `end` angle.

Args:
    center: arc center point as ``(x, y)`` tuple
    radius: arc radius as float
    start: arc start angle in degrees as float
    end: arc end angle in degrees as float
    layer: layer name as string see :meth:`add_line`
    color: color as :ref:`ACI` see :meth:`add_line`
    linetype: line type as string see :meth:`add_line`

z0
ARC
r%   2   3   rh   Nrw   )	r9   rz   r{   rn   ro   rp   rq   rr   rs   s	            r;   add_arcR12FastStreamWriter.add_arc   s    . l

;uX67

:f%&

72s3v;/01

72s3u:/0

72s3s8}-."''#,'r>   c                    S/nUR                  [        X#U5      5        UR                  [        U5      5        U R                  R	                  SR                  U5      5        g)z
Add a POINT entity.

Args:
    location: point location as ``(x, y [,z])`` tuple
    layer: layer name as string see :meth:`add_line`
    color: color as :ref:`ACI` see :meth:`add_line`
    linetype: line type as string see :meth:`add_line`

z0
POINT
rh   Nri   )r9   locationrp   rq   rr   rs   s         r;   	add_pointR12FastStreamWriter.add_point   sI    " n

;uX67

:h'("''#,'r>   c                ,    U R                  SXX4U5        g)aO  Add a 3DFACE entity. 3DFACE is a spatial area with 3 or 4 vertices,
all vertices have to be in the same plane.

Args:
    vertices: iterable of 3 or 4 ``(x, y, z)`` vertices.
    invisible: bit coded flag to define the invisible edges,

        1. edge = 1
        2. edge = 2
        3. edge = 4
        4. edge = 8

        Add edge values to set multiple edges invisible,
        1. edge + 3. edge = 1 + 4 = 5, all edges = 15

    layer: layer name as string see :meth:`add_line`
    color: color as :ref:`ACI` see :meth:`add_line`
    linetype: line type as string see :meth:`add_line`

3DFACEN_add_quadrilateral)r9   vertices	invisiblerp   rq   rr   s         r;   
add_3dfaceR12FastStreamWriter.add_3dface   s    8 	h5	
r>   c                .    U R                  SUSX#U5        g)a^  Add a SOLID entity. SOLID is a solid filled area with 3 or 4 edges
and SOLID is a 2D entity.

Args:
    vertices: iterable of 3 or 4 ``(x, y[, z])`` tuples, z-axis will be
        ignored.
    layer: layer name as string see :meth:`add_line`
    color: color as :ref:`ACI` see :meth:`add_line`
    linetype: line type as string see :meth:`add_line`

SOLIDr   Nr   )r9   r   rp   rq   rr   s        r;   	add_solidR12FastStreamWriter.add_solid  s    $ 	1eHMr>   c                   SU-  /nUR                  [        XEU5      5        [        U5      n[        U5      S:  a  [	        SU-  5      e[        U5      S:X  a  UR                  US   5        UR                  S [        USS9 5       5        U(       a$  UR                  [        S[        U5      5      5        U R                  R                  S	R                  U5      5        g )
Nz0
%s
r   z%s needs 3 or 4 vertices.c              3  <   #    U  H  u  p[        X!5      v   M     g 7fr@   )rl   ).0rf   vertexs      r;   	<genexpr>9R12FastStreamWriter._add_quadrilateral.<locals>.<genexpr>,  s!      
 = v$$ =s   r#   )rn   F   rh   )rj   rk   listlenrU   extend	enumeraterx   rD   r:   rB   rm   )r9   dxftyper   flagsrp   rq   rr   rs   s           r;   r   &R12FastStreamWriter._add_quadrilateral  s     7"#

;uX67>x=187BCC]aOOHRL)

 
 )(" =
 	
 JJwr3u:./"''#,'r>   c           	        S/nUR                  [        X4U5      5        UR                  [        SS5      5        UR                  [        SS[        U5      -   5      5        U R                  R                  SR                  U5      5        S[        U5      -   [        SS5      -   nU H}  nU R                  R                  U5        [        U5      n[        U5      n	U	S	:  a  [        S
5      eU	S	:X  a  US   US   S4nU R                  R                  [        USS 5      5        M     U R                  R                  S5        g)aF  Add a 3D POLYLINE entity.

Args:
    vertices: iterable of ``(x, y[, z])`` tuples, z-axis is ``0`` by
        default
    closed: ``True`` creates a closed polyline
    layer: layer name as string see :meth:`add_line`
    color: color as :ref:`ACI` see :meth:`add_line`
    linetype: line type as string see :meth:`add_line`

0
POLYLINE
B   r   r      rh   	0
VERTEX
    r   z,Vertices require at least a x- and a y-axis.r   Nr   	0
SEQEND
)rj   rk   rx   intr:   rB   rm   tupler   rU   rl   )
r9   r   closedrp   rq   rr   rs   vertex_templater   
len_vertexs
             r;   add_polyline R12FastStreamWriter.add_polyline4  s   & 

;uX67

72q>"

72q3v;/0"''#,''+e*<<wr2NFKKo.6]FVJA~ !OPPq )VAY2KKj45  	-(r>   c	                  ^ SU4S jjn	S/n
U
R                  [        XgU5      5        U
R                  [        SS5      5        U
R                  [        S[        U5      5      5        U(       a  U
R                  [        SU5      5        U(       a  U
R                  [        SU5      5        U R                  R                  SR                  U
5      5        S	[        U5      -   [        SS
5      -   nU H{  nU R                  R                  U5        U	" U5      nT HO  nUR                  US
5      nUS
:X  a  US;   a  M#  U R                  R                  [        [        U   U5      5        MQ     M}     U R                  R                  S5        g)a>  Add a 2D POLYLINE entity with start width, end width and bulge value
support.

Format codes:

=== =================================
x   x-coordinate
y   y-coordinate
s   start width
e   end width
b   bulge value
v   (x, y) tuple (z-axis is ignored)
=== =================================

Args:
    points: iterable of (x, y, [start_width, [end_width, [bulge]]])
        tuple, value order according to the `format` string, unset
        values default to ``0``
    format: format: format string, default is ``'xy'``
    closed: ``True`` creates a closed polyline
    start_width: default start width, default is ``0``
    end_width: default end width, default is ``0``
    layer: layer name as string see :meth:`add_line`
    color: color as :ref:`ACI` see :meth:`add_line`
    linetype: line type as string see :meth:`add_line`

c                   > [        5       n[        TU 5       H,  u  p#US:X  a  [        U5      nUS   US'   US   US'   M(  X1U'   M.     U$ )Nvr   r(   r   r)   )dictzipr   )dataattribsrf   valuer   formats        r;   vertex_attribs;R12FastStreamWriter.add_polyline_2d.<locals>.vertex_attribs  sU    fG"6403;$U|H#+A;GCL#+A;GCL$)DM  1 Nr>   r   r   r   r   r%   r&   rh   r   r   sebr   N)r   r   rE   r   )	rj   rk   rx   r   r:   rB   rm   getVERTEX_GROUP_CODES)r9   pointsr   r   start_width	end_widthrp   rq   rr   r   rs   r   pointr   format_coder   s     `             r;   add_polyline_2d#R12FastStreamWriter.add_polyline_2dY  s6   N		 

;uX67

72q>"

72s6{+,JJwr;/0JJwr9-."''#,''+e*<<wr1~MEKKo.$U+G%K3A:+"6!!.{;UC	  &  	-(r>   c                8  ^ ^^^^^^^ SSUUUUU U4S jjjnSS	UU4S jjjnS
S	UUU4S jjjnU" 5       u  mn	U" 5       u  mn
U" 5         T R                   R                  U	5        T R                   R                  U
5        T R                   R                  S5        g)a=  Add a POLYFACE entity. The POLYFACE entity supports only faces of
maximum 4 vertices, more indices will be ignored. A simple square would
be::

    v0 = (0, 0, 0)
    v1 = (1, 0, 0)
    v2 = (1, 1, 0)
    v3 = (0, 1, 0)
    dxf.add_polyface(vertices=[v0, v1, v2, v3], faces=[(0, 1, 2, 3)])

All 3D form functions of the :mod:`ezdxf.render.forms` module return
:class:`~ezdxf.render.MeshBuilder` objects, which provide the required
vertex and face lists.

See sphere example: https://github.com/mozman/ezdxf/blob/master/examples/r12writer.py

Args:
    vertices: iterable of ``(x, y, z)`` tuples
    faces: iterable of 3 or 4 vertex indices, indices have to be 0-based
    layer: layer name as string see :meth:`add_line`
    color: color as :ref:`ACI` see :meth:`add_line`
    linetype: line type as string see :meth:`add_line`

c                p  > S/nUR                  [        TTT5      5        UR                  [        SS5      5        UR                  [        SU 5      5        UR                  [        ST5      5        UR                  [        ST5      5        TR                  R	                  SR                  U5      5        g )Nr   r   r   r   G   H   rh   rj   rk   rx   r:   rB   rm   )r   rs   rq   
face_countrp   rr   r9   vertex_counts     r;   write_polyline8R12FastStreamWriter.add_polyface.<locals>.write_polyline  s    "#CJJ{5%:;JJwr1~&JJwr5)*JJwr<01JJwr:./KKbggcl+r>   c                
  > [        5       nSnS[        T5      -   [        SU 5      -   nT H3  nUS-  nUR                  U5        UR                  [	        U5      5        M5     UR                  5       nUR                  5         X#4$ Nr   r   r   r   )r   rk   rx   rB   rl   getvaluerW   )r   bufcountr*   r   rp   r   s        r;   write_vertices8R12FastStreamWriter.add_polyface.<locals>.write_vertices  sv    *CEE 22WR5GGA"
		!		*V,- # AIIK8Or>   c           	     T  > [        5       nSnS[        T	T5      -   [        SU 5      -   [        S5      -   nT HK  nUS-  nUR	                  U5        [        SU5       H"  u  pVUR	                  [        XVS-   5      5        M$     MM     UR                  5       nUR                  5         X#4$ )Nr   r   r   )r   r   r   r   )r   r   I   J   )r   rk   rx   rl   rB   r   r   rW   )
r   r   r   r*   facerf   indexrq   facesrp   s
          r;   write_faces5R12FastStreamWriter.add_polyface.<locals>.write_faces  s    *CEeU+,"e$% Y'(  
		!#&'7#>KDIIgdAI67 $? 
 AIIK8Or>   r   N@   r   r   rE   rF   )   )r   r   )   rb   )r9   r   r   rp   rq   rr   r   r   r   
vertex_strface_strr   r   s   ``````     @@r;   add_polyface R12FastStreamWriter.add_polyface  sy    B	, 	,
	 
		 	$ $2#3 j*}
H*%(#-(r>   c           
        ^ ^^^^^
^^^ Uu  m
mUu  mmSSUUUU
UUUU 4S jjjnSS	UU U4S jjjnU" 5         U" 5       n	T
T-  U	:w  a  [        S5      eT R                  R                  S5        g)
a  Add a POLYMESH entity. A POLYMESH is a mesh of m rows and n columns,
each mesh vertex has its own x-, y- and z coordinates. The mesh can be
closed in m- and/or n-direction. The vertices have to be in column
order:  (m0, n0), (m0, n1), (m0, n2), (m1, n0), (m1, n1), (m1, n2), ...

See example: https://github.com/mozman/ezdxf/blob/master/examples/r12writer.py

Args:
    vertices: iterable of ``(x, y, z)`` tuples, in column order
    size: mesh dimension as (m, n)-tuple, requirement:
        ``len(vertices) == m*n``
    closed: (m_closed, n_closed) tuple, for closed mesh in m and/or n
        direction
    layer: layer name as string see :meth:`add_line`
    color: color as :ref:`ACI` see :meth:`add_line`
    linetype: line type as string see :meth:`add_line`

c                  > T(       a  U S-  n T(       a  U S-  n S/nUR                  [        TTT5      5        UR                  [        SS5      5        UR                  [        SU 5      5        UR                  [        ST5      5        UR                  [        ST5      5        T	R                  R	                  SR                  U5      5        g )	Nr   r   r   r   r   r   r   rh   r   )
r   rs   rq   rp   rr   mm_closednn_closedr9   s
     r;   r   8R12FastStreamWriter.add_polymesh.<locals>.write_polyline  s    
"#CJJ{5%:;JJwr1~&JJwr5)*JJwr1~&JJwr1~&KKbggcl+r>   c                   > SnS[        T5      -   [        SU 5      -   nT HG  nUS-  nTR                  R                  U5        TR                  R                  [	        U5      5        MI     U$ r   )rk   rx   r:   rB   rl   )r   r   r*   r   rp   r9   r   s       r;   r   8R12FastStreamWriter.add_polymesh.<locals>.write_vertices  sf    EE 22WR5GGA"
!!!$!!*V"45 # Lr>   zInvalid mesh dimensions.r   N)   r   r   )r   r   rE   r   )rU   r:   rB   )r9   r   sizer   rp   rq   rr   r   r   r   r   r   r   r   s   ``  ```   @@@@r;   add_polymesh R12FastStreamWriter.add_polymesh  sk    6 1#(	, 	, 	,	 	 	 q5E>788-(r>   c           
        S/nUR                  [        X5      5        UR                  [        USS95        UR                  [        S[	        U5      5      5        UR                  [        S[	        [        U5      5      5      5        US:w  a-  UR                  [        S[	        [        U5      5      5      5        US:w  a-  UR                  [        S	[	        [        U5      5      5      5        US:w  a-  UR                  [        S
[	        [        U5      5      5      5        US:w  a$  UR                  [        S[	        U5      5      5        [        UR                  5          u  pUR                  [        S[	        U5      5      5        UR                  [        S[	        U5      5      5        UR                  [        USS95        U R                  R                  SR                  U5      5        g)a  Add a one line TEXT entity.

Args:
    text: the text as string
    insert: insert location as ``(x, y)`` tuple
    height: text height in drawing units
    width: text width as factor
    align: text alignment, see table below
    rotation: text rotation in degrees as float
    oblique: oblique in degrees as float, vertical = ``0`` (default)
    style: text style name as string, if FIXED-TABLES are written some
        predefined text styles are available, else text style is
        always ``'STANDARD'``.
    layer: layer name as string see :meth:`add_line`
    color: color as :ref:`ACI` see :meth:`add_line`

============   =============== ================= =====
Vert/Horiz     Left            Center            Right
============   =============== ================= =====
Top            ``TOP_LEFT``    ``TOP_CENTER``    ``TOP_RIGHT``
Middle         ``MIDDLE_LEFT`` ``MIDDLE_CENTER`` ``MIDDLE_RIGHT``
Bottom         ``BOTTOM_LEFT`` ``BOTTOM_CENTER`` ``BOTTOM_RIGHT``
Baseline       ``LEFT``        ``CENTER``         ``RIGHT``
============   =============== ================= =====

The special alignments ``ALIGNED`` and ``FIT`` are not available.

z0
TEXT
r#   re   r   r%         ?r&           r   r   STANDARD   r   r   rg   rh   N)rj   rk   rl   rx   rD   ry   TEXT_ALIGN_FLAGSupperr:   rB   rm   )r9   textinsertheightwidthalignrotationobliquestylerp   rq   rs   halignvaligns                 r;   add_textR12FastStreamWriter.add_text-  sW   T m

;u,-

:f2./

71c$i()

72s3v;/01C<JJwr3s5z?34s?JJwr3s8}#567c>JJwr3s7|#456JJJwq#e*-.)%++-8

72s6{+,

72s6{+,

:f2./"''#,'r>   )r:   )F)r:   r   )rE   rF   )0NN)rn   Vertexro   r  rp   rD   rq   Optional[int]rr   Optional[str]rE   rF   )rz   r  r{   floatrp   rD   rq   r  rr   r	  rE   rF   )r   ih  r  NN)rz   r  r{   r
  rn   r
  ro   r
  rp   rD   rq   r  rr   r	  rE   rF   )
r   r  rp   rD   rq   r  rr   r	  rE   rF   )r   r  NN)r   Iterable[Vertex]r   r   rp   rD   rq   r  rr   r	  rE   rF   )
r   r  rp   rD   rq   r  rr   r	  rE   rF   )r   rD   r   r  r   r   rp   rD   rq   r  rr   r	  rE   rF   )Fr  NN)r   r  r   boolrp   rD   rq   r  rr   r	  rE   rF   )xyFr   r   r  NN)r   zIterable[Sequence]r   rD   r   r  r   r
  r   r
  rp   rD   rq   r  rr   r	  rE   rF   )r   r  r   zIterable[Sequence[int]]rp   rD   rq   r  rr   r	  rE   rF   ))FFr  NN)r   r  r   ztuple[int, int]rp   rD   rq   r  rr   r	  rE   rF   )	r   r   r   r   r   r   r   r  N)r   rD   r   r  r   r
  r   r
  r   rD   r   r
  r   r
  r  rD   rp   rD   rq   r  rE   rF   )rG   rH   rI   rJ   __doc__r<   rW   rt   r|   r   r   r   r   r   r   r   r   r   r  rK   rL   r>   r;   rV   rV   e   s(   21 #"&(( ( 	(
 (  ( 
(F #"&(( ( 	(
 (  ( 
(8 #"&(( ( 	(
 ( ( (  ( 
(D #"&(( ( 	(
  ( 
(2 #"&
"
 
 	

 
  
 

F #"&N"N N 	N
  N 
N((( #( 	(
 ( (  ( 
(6 #"&#)"#) #) 	#)
 #)  #) 
#)P #"&G)"G) G) 	G)
 G) G) G) G)  G) 
G)Z #"&M)"M) 'M) 	M)
 M)  M) 
M)f #"&:)":) :)
 :) :)  :) 
:)~  #;(;( ;( 	;(
 ;( ;( ;( ;( ;( ;( ;( 
;( ;(r>   rV   Nc                    SU -  /nUb  UR                  SU-  5        Ub9  S[        U5      s=::  a  S:  a  O  OUR                  SU-  5        O[        S5      eSR                  U5      $ )Nz8
%s
z6
%s
r   i  z62
%d
z6color has to be an integer in the range from 0 to 256.rh   )rj   r   rU   rm   )rp   rq   rr   rs   s       r;   rk   rk   k  sp     u
C

9x'(E
 S JJzE)*H  773<r>   c           
         / nU  H0  nUR                  SU[        [        U5      5      4-  5        US-  nM2     SR                  U5      $ )N%d
%s
r#   rh   )rj   rD   ry   rm   )r   rf   rs   cs       r;   rl   rl   {  sH    
C

:s3q6{ 334
  773<r>   c                    SX4-  $ )Nr  rL   )rf   r   s     r;   rx   rx     s    %%r>   xysebva9    0
SECTION
  2
HEADER
  9
$ACADVER
  1
AC1009
  9
$DWGCODEPAGE
  3
ANSI_1252
  0
ENDSEC
  0
SECTION
  2
TABLES
  0
TABLE
  2
LTYPE
  5
431
 70
20
  0
LTYPE
  5
40F
  2
CONTINUOUS
 70
0
  3
Solid line
 72
65
 73
0
 40
0.0
  0
LTYPE
  5
410
  2
CENTER
 70
0
  3
Center ____ _ ____ _ ____ _ ____ _ ____ _ ____
 72
65
 73
4
 40
2.0
 49
1.25
 49
-0.25
 49
0.25
 49
-0.25
  0
LTYPE
  5
411
  2
DASHED
 70
0
  3
Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _
 72
65
 73
2
 40
0.75
 49
0.5
 49
-0.25
  0
LTYPE
  5
412
  2
PHANTOM
 70
0
  3
Phantom ______  __  __  ______  __  __  ______
 72
65
 73
6
 40
2.5
 49
1.25
 49
-0.25
 49
0.25
 49
-0.25
 49
0.25
 49
-0.25
  0
LTYPE
  5
413
  2
HIDDEN
 70
0
  3
Hidden __ __ __ __ __ __ __ __ __ __ __ __ __ __
 72
65
 73
2
 40
9.525
 49
6.345
 49
-3.175
  0
LTYPE
  5
43B
  2
CENTERX2
 70
0
  3
Center (2x) ________  __  ________  __  ________
 72
65
 73
4
 40
3.5
 49
2.5
 49
-0.25
 49
0.5
 49
-0.25
  0
LTYPE
  5
43C
  2
CENTER2
 70
0
  3
Center (.5x) ____ _ ____ _ ____ _ ____ _ ____
 72
65
 73
4
 40
1.0
 49
0.625
 49
-0.125
 49
0.125
 49
-0.125
  0
LTYPE
  5
43D
  2
DASHEDX2
 70
0
  3
Dashed (2x) ____  ____  ____  ____  ____  ____
 72
65
 73
2
 40
1.2
 49
1.0
 49
-0.2
  0
LTYPE
  5
43E
  2
DASHED2
 70
0
  3
Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _
 72
65
 73
2
 40
0.3
 49
0.25
 49
-0.05
  0
LTYPE
  5
43F
  2
PHANTOMX2
 70
0
  3
Phantom (2x)____________    ____    ____    ____________
 72
65
 73
6
 40
4.25
 49
2.5
 49
-0.25
 49
0.5
 49
-0.25
 49
0.5
 49
-0.25
  0
LTYPE
  5
440
  2
PHANTOM2
 70
0
  3
Phantom (.5x) ___ _ _ ___ _ _ ___ _ _ ___ _ _ ___
 72
65
 73
6
 40
1.25
 49
0.625
 49
-0.125
 49
0.125
 49
-0.125
 49
0.125
 49
-0.125
  0
LTYPE
  5
441
  2
DASHDOT
 70
0
  3
Dash dot __ . __ . __ . __ . __ . __ . __ . __
 72
65
 73
4
 40
1.4
 49
1.0
 49
-0.2
 49
0.0
 49
-0.2
  0
LTYPE
  5
442
  2
DASHDOTX2
 70
0
  3
Dash dot (2x) ____  .  ____  .  ____  .  ____
 72
65
 73
4
 40
2.4
 49
2.0
 49
-0.2
 49
0.0
 49
-0.2
  0
LTYPE
  5
443
  2
DASHDOT2
 70
0
  3
Dash dot (.5x) _ . _ . _ . _ . _ . _ . _ . _
 72
65
 73
4
 40
0.7
 49
0.5
 49
-0.1
 49
0.0
 49
-0.1
  0
LTYPE
  5
444
  2
DOT
 70
0
  3
Dot .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 72
65
 73
2
 40
0.2
 49
0.0
 49
-0.2
  0
LTYPE
  5
445
  2
DOTX2
 70
0
  3
Dot (2x) .    .    .    .    .    .    .    .
 72
65
 73
2
 40
0.4
 49
0.0
 49
-0.4
  0
LTYPE
  5
446
  2
DOT2
 70
0
  3
Dot (.5) . . . . . . . . . . . . . . . . . . .
 72
65
 73
2
 40
0.1
 49
0.0
 49
-0.1
  0
LTYPE
  5
447
  2
DIVIDE
 70
0
  3
Divide __ . . __ . . __ . . __ . . __ . . __
 72
65
 73
6
 40
1.6
 49
1.0
 49
-0.2
 49
0.0
 49
-0.2
 49
0.0
 49
-0.2
  0
LTYPE
  5
448
  2
DIVIDEX2
 70
0
  3
Divide (2x) ____  . .  ____  . .  ____  . .  ____
 72
65
 73
6
 40
2.6
 49
2.0
 49
-0.2
 49
0.0
 49
-0.2
 49
0.0
 49
-0.2
  0
LTYPE
  5
449
  2
DIVIDE2
 70
0
  3
Divide(.5x) _ . _ . _ . _ . _ . _ . _ . _
 72
65
 73
6
 40
0.8
 49
0.5
 49
-0.1
 49
0.0
 49
-0.1
 49
0.0
 49
-0.1
  0
ENDTAB
  0
TABLE
  2
STYLE
  5
433
 70
18
  0
STYLE
  5
417
  2
STANDARD
 70
0
 40
0.0
 41
1.0
 50
0.0
 71
0
 42
0.2
  3
txt
  4

  0
STYLE
  5
44A
  2
OpenSans
 70
0
 40
0.0
 41
1.0
 50
0.0
 71
0
 42
1.0
  3
OpenSans-Regular.ttf
  4

  0
STYLE
  5
44F
  2
OpenSansCondensed-Light
 70
0
 40
0.0
 41
1.0
 50
0.0
 71
0
 42
1.0
  3
OpenSansCondensed-Light.ttf
  4

  0
ENDTAB
  0
TABLE
  2
VIEW
  5
434
 70
0
  0
ENDTAB
  0
ENDSEC
)FrN   )r:   z"Union[TextIO, BinaryIO, str, Path]rX   r  rY   rD   rE   zIterator[R12FastStreamWriter])NN)rp   rD   rq   r  rr   r	  rE   rD   )r#   )r   r  rE   rD   )rf   r   rE   rD   )$
__future__r   typingr   r   r   r   r   r	   r
   r   
contextlibr   	functoolsr   ior   pathlibr   ezdxf.lldxf.tagwriterr   r
  r  roundry   r   r   r.   r[   rV   rk   rl   rx   	frozensetFORMAT_CODESr_   rL   r>   r;   <module>r     s"   #	 	 	 &    1	%eQ   BRbrB % %  %.%% 
% #	% %PC( C(N HL$7D & "H	r>   