
    OgF
                        d dl Z d dlZd dlZ ej                  d      Z e j
                  d      Z e j
                  d      ZdefdZ	dde
defd	Zde
de
fd
Zde
defdZde
de
fdZde
defdZde
de
fdZddddddZde
de
fdZy)    Nsurrogateescapez(\\U\+[A-F0-9]{4})z(\\M\+[1-5][A-F0-9]{4})excc                 v   t        | t        t        f      rd}| j                  | j                  | j
                   D ]L  }t        |      }|dk  r	|d|z  z  }d|cxk  rdk  rn nt        |       c S |dk  r	|d|z  z  }E|d|z  z  }N || j
                  fS t        d	| j                  j                         )
N    z\x%02xi  i  i  z\U+%04xz\U+%08xzCan't handle )
isinstanceUnicodeEncodeErrorUnicodeTranslateErrorobjectstartendordsurrogate_escape	TypeError	__class____name__)r   scxs       Y/var/www/html/public_html/myphp/venv/lib/python3.12/site-packages/ezdxf/lldxf/encoding.pydxf_backslash_replacer      s    #*,ABCCII0 
	$AAADyY]"1&&',,fZ!^#Z!^#
	$ #''z-(>(>'?@AA    r   returnc                 (    | j                  |d      S )z)Shortcut to use the correct error handler
dxfreplace)errors)encode)r   encodings     r   r   r       s    88H\822r   c                 X    | j                  d      rt        t        | dd  d            S | S )Nz\U+      )
startswithchrintr   s    r   _decoder&   %   s*    ||F3qub>""r   c                 H    t        t        j                  t        |             S )zHReturns ``True``  if string `s` contains ``\U+xxxx`` encoded characters.)boolresearchBACKSLASH_UNICODEr%   s    r   has_dxf_unicoder,   ,   s    		+Q/00r   c                 b    dj                  d t        j                  t        |       D              S )z&Decode ``\U+xxxx`` encoded characters.r   c              3   2   K   | ]  }t        |        y wN)r&   .0parts     r   	<genexpr>z%decode_dxf_unicode.<locals>.<genexpr>4   s     LT74=L   )joinr)   splitr+   r%   s    r   decode_dxf_unicoder7   1   s%     77LRXX6G-KLLLr   c                 H    t        t        j                  t        |             S )zSReturns ``True`` if string `s` contains MIF encoded (``\M+cxxxx``) characters.
    )r(   r)   r*   MIF_ENCODEDr%   s    r   has_mif_encodingr:   7   s     		+q)**r   c                 b    dj                  d t        j                  t        |       D              S )z+Decode MIF encoded characters ``\M+cxxxx``.r   c              3   2   K   | ]  }t        |        y wr/   )_decode_mifr0   s     r   r3   z(decode_mif_to_unicode.<locals>.<genexpr>?   s     J;t$Jr4   )r5   r)   r6   r9   r%   s    r   decode_mif_to_unicoder>   =   s"    77J+q1IJJJr   cp932cp950cp949cp1391cp936)12345c                     | j                  d      rN	 t        | d      }t        j                  |      }t	        j
                  | dd        }|j                  |      d   S | S # t        $ r Y | S w xY w)Nz\M+r       r   )r"   MIF_CODE_PAGEcodecslookupbinascii	unhexlifydecode	Exception)r   	code_pagecodec	byte_datas       r   r=   r=   L   sy    ||F	%ad+IMM),E **1QR51I<<	*1-- H  	H	s   AA" "	A/.A/)utf8)r)   rL   rN   lookup_errorr   compiler+   r9   rQ   r   strbytesr   r&   r(   r,   r7   r:   r>   rK   r=    r   r   <module>r[      s    
  &6&&'89 BJJ45 bjj34By B(3c 3u 3
s s 1s 1t 1
M# M# M+ + +KS KS K 
					3 	3 	r   