Ë
    £eh¨$  ã                  ó¦  — d dl mZ d dlZd dlmZ d dlmZmZ d dlm	Z	m
Z
mZmZmZmZmZ 	 d dlmZ d dlmZ d dlmZ d d	lmZ d
gZ ej4                  d«      ZdddœZded   › d�Z ed¬«      d„ «       Zdd„Zd d„Z d!d„Z!	 	 	 	 	 	 d"d„Z"d#d„Z#	 	 	 	 	 	 d$d„Z$d%d„Z%d&d„Z&d'd„Z' e ejP                  d«      «      d(d„«       Z)y# e$ r dZY Œ�w xY w))é    )ÚannotationsN)Ú	lru_cache)ÚchainÚcount)ÚDictÚIterableÚIteratorÚListÚOptionalÚSetÚTuple)Úetree)ÚttLib)Ú_add_method)ÚSVGDocumentÚsubset_glyphsz^glyph(\d+)$zhttp://www.w3.org/2000/svgzhttp://www.w3.org/1999/xlink)ÚsvgÚxlinkú{r   z}href)Úmaxsizec                ó8   — t        j                  | t        ¬«      S )N)Ú
namespaces)r   ÚXPathÚ
NAMESPACES)Úpaths    úR/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/fontTools/subset/svg.pyÚxpathr   !   s   € ô �;‰;�t¬
Ô3Ð3ó    c                óf   —  t        d«      | «      D �ci c]  }|j                  d   |“Œ c}S c c}w )Nz//svg:*[@id]Úid)r   Úattrib)ÚtreeÚels     r   Úgroup_elements_by_idr$   '   s2   € ð +@¬%°Ó*?ÀÓ*EÖF BˆB�I‰I�d‰O˜RÑÒFÐFùÒFs   ”.c                ó
  — i }| j                  d«      D ]l  }|j                  d«      dk(  r8|j                  d«      \  }}|j                  «       }|j                  «       ||<   ŒO|j                  «       sŒ`t        d|› �«      ‚ |S )Nú;ú:é   z Invalid CSS declaration syntax: )Úsplitr   ÚstripÚ
ValueError)Ú
style_attrÚresultÚdeclarationÚproperty_nameÚvalues        r   Úparse_css_declarationsr1   .   s‘   € ð €FØ!×'Ñ'¨Ó,ò OˆØ×Ñ˜SÓ! QÒ&Ø#.×#4Ñ#4°SÓ#9Ñ ˆM˜5Ø)×/Ñ/Ó1ˆMØ$)§K¡K£MˆF�=Ò!Ø×ÑÕ ÜÐ?À¸}ÐMÓNÐNðOð €Mr   c              #  ób  K  — t        d«      }t        | g || «      «      D ]Š  }t        |«      }|�|–— |j                  }d|v r%i t	        |«      ¥t        |j                  d   «      ¥}dD ]=  }||v sŒ||   }|j                  d«      sŒ|j                  d«      sŒ1|dd }|sJ ‚|–— Œ? ŒŒ y ­w)NzŠ.//svg:*[ starts-with(@xlink:href, '#') or starts-with(@fill, 'url(#') or starts-with(@clip-path, 'url(#') or contains(@style, ':url(#') ]Ústyle)Úfillz	clip-pathzurl(#ú)é   éÿÿÿÿ)r   r   Úhref_local_targetr!   Údictr1   Ú
startswithÚendswith)r"   Ú!find_svg_elements_with_referencesr#   Úref_idÚattrsÚattrr0   s          r   Úiter_referenced_idsr@   <   sÏ   è ø€ ô
 ).ð	ó)Ð%ô �T�FÑ=¸dÓCÓDò !ˆÜ" 2Ó&ˆØÐØŠLà—	‘	ˆØ�eÑØQ”t˜E“{ÐQÔ&<¸R¿Y¹YÀwÑ=OÓ&PÐQˆEØ)ò 	!ˆDØ�uŠ}Ø˜d™�Ø×#Ñ# GÕ,°·±ÀÕ1DØ" 1 R˜[�FÙ!�M˜6Ø “Lñ	!ñ!ùs   ‚A1B/Á4B/ÂB/ÂB/c                óª   — |}|rOt        «       }|D ]$  }|| vrŒ|j                  t        | |   «      «       Œ& ||z  }|j                  |«       |}|rŒNy y ©N)ÚsetÚupdater@   )ÚelementsÚelement_idsÚ	unvisitedÚ
referencedÚel_ids        r   Úclosure_element_idsrJ   Z   sk   € ð
 €IÙ
Ü"›uˆ
Øò 	DˆEØ˜HÑ$àØ×ÑÔ1°(¸5±/ÓBÕCð		Dð
 	�kÑ!ˆ
Ø×Ñ˜:Ô&Øˆ	ô r   c           	     óø   — | j                   j                  d«      |v ryt        | D �cg c]  }t        ||«      ‘Œ c}«      ryt	        | «      dk(  sJ ‚| j                  «       }|�|j                  | «       yc c}w )Nr    Tr   F)r!   ÚgetÚanyÚsubset_elementsÚlenÚ	getparentÚremove)r#   Úretained_idsÚeÚparents       r   rN   rN   l   sp   € ð 
‡y�y‡}�}�TÓ˜lÑ*àô °bÖ9°ŒO˜A˜|Õ,Ò9Ô:ØÜˆr‹7�aŠ<Ðˆ<Ø�\‰\‹^€FØÐØ�‰�bÔØùò :s   ¨A7c                ól  — t        | «      }i }|j                  «       D ]“  \  }}t        j                  |«      }|sŒt	        |j                  d«      «      }|j                  |«      }|�||k(  rŒQd|› �}	n)d|› �}	t        d«      }
|	|v r|	› dt        |
«      › �}	|	|v rŒ|	||<   |	|j                  d<   Œ• |S )Nr(   Úglyphú.r    )
r$   ÚitemsÚGID_REÚmatchÚintÚgrouprL   r   Únextr!   )r   Úglyph_index_maprE   Úid_maprI   r#   ÚmÚ	old_indexÚ	new_indexÚnew_idÚns              r   Úremap_glyph_idsre      sÚ   € ô
 $ CÓ(€HØ€FØ—^‘^Ó%ò !‰	ˆˆrÜ�L‰L˜ÓˆÙØÜ˜Ÿ™ ›
“Oˆ	Ø#×'Ñ'¨	Ó2ˆ	ØÐ Ø˜IÒ%ØØ˜Y˜KÐ(‰Fð
 ˜˜�[ˆFÜ�a“ˆAØ˜HÑ$Ø"˜8 1¤T¨!£W IÐ.�ð ˜HÒ$ð ˆˆu‰Ø ˆ�	‰	�$Šð)!ð, €Mr   c                ó–   — t         | j                  v r7| j                  t            }|j                  d«      rt        |«      dkD  r|dd  S y )Nú#r(   )Ú
XLINK_HREFr!   r:   rO   )r#   Úhrefs     r   r8   r8   Ÿ   s@   € Ü�R—Y‘YÑØ�y‰yœÑ$ˆØ�?‰?˜3Ô¤C¨£I°¢MØ˜˜�8ˆOØr   c                óŽ   —  t        d«      | «      D ]1  }t        |«      }|€J ‚||v sŒ||   }d|› �|j                  t        <   Œ3 y )Nz,.//svg:*[starts-with(@xlink:href, '#glyph')]rg   )r   r8   r!   rh   )r   r_   r#   Úold_idrc   s        r   Úupdate_glyph_href_linksrl   §   sY   € àCŒeÐBÓCÀCÓHò 1ˆÜ" 2Ó&ˆØÐ!Ð!Ð!Ø�VÒØ˜F‘^ˆFØ&'¨ x LˆB�I‰I”jÒ!ñ1r   c              #  óÄ   K  — t        t        t        | «      «      «      }	 t        |«      x}}|D ]  }|dz
  |k(  r|}Œ||f–— |x}}Œ ||f–— y # t        $ r Y y w xY w­w)Nr(   )ÚiterÚsortedrC   r]   ÚStopIteration)ÚintsÚsorted_intsÚstartÚendÚvs        r   Úrangesrv   ±   s€   è ø€ ä”vœc $›iÓ(Ó)€KðÜ˜;Ó'Ð'ˆ�ð ò ˆØˆq‰5�CŠ<Ø‰Cà˜#�,ÒØˆOˆE‘Cðð �#ˆ,Óøô ò Ùðüs'   ‚A ¡A ®#A Á	AÁA ÁAÁA zSVG c           
     ó  ‡— t         €t        d«      ‚|j                  }|j                  }|j                  Šg }| j
                  D �]Ž  }t        |j                  |j                  dz   «      D �ch c]  }||   ’Œ	 c}j                  |j                  «      }|sŒTt        j                  |j                  j                  d«      t        j                  ddd¬«      ¬«      }t        |«      }	|D �
ch c]  }
||
   ’Œ	 }}
|D �ch c]  }d|› �’Œ	 }}t!        |	|«       t#        ||«      sŒâ|j$                  j&                  st)        |‰«      }t+        ||«       t        j,                  ||j$                  j.                  ¬	«      j1                  d«      }ˆfd
„|D «       }t3        |«      D ],  \  }}|j5                  t7        ||||j8                  «      «       Œ. �Œ‘ || _        t;        | j
                  «      S c c}w c c}
w c c}w )Nz.No module named 'lxml', required to subset SVGr(   zutf-8TF)Ú	huge_treeÚremove_blank_textÚresolve_entities)ÚparserrV   )Úpretty_printc              3  ó(   •K  — | ]	  }‰|   –— Œ y ­wrB   © )Ú.0Úir^   s     €r   ú	<genexpr>z subset_glyphs.<locals>.<genexpr>÷   s   øè ø€ Ò5¨1�O AÕ&Ñ5ùs   ƒ)r   ÚImportErrorÚorig_glyph_orderÚreverseOrigGlyphMapr^   ÚdocListÚrangeÚstartGlyphIDÚ
endGlyphIDÚintersectionÚglyphsÚ
fromstringÚdataÚencodeÚ	XMLParserr$   rJ   rN   ÚoptionsÚretain_gidsre   rl   ÚtostringÚ
pretty_svgÚdecoderv   Úappendr   Ú
compressedÚbool)ÚselfÚsÚglyph_orderÚrev_orig_glyph_mapÚnew_docsÚdocr€   rŠ   r   rE   ÚgÚgidsrF   r_   Únew_docÚnew_gidsrs   rt   r^   s                     @r   r   r   Á   sÜ  ø€ ä€}ÜÐJÓKÐKð ×/Ñ/€Kà)*×)>Ñ)>Ðà&'×&7Ñ&7€Oà"$€HØ�|‰|ó +Nˆä$)¨#×*:Ñ*:¸C¿N¹NÈQÑ<NÓ$Oö
Ø ˆK˜‹Nò
ç
‰,�q—x‘xÓ
 ð 	ñ àä×Ñð �H‰H�O‰O˜GÓ$Ü—?‘?ð
 ð #'ð "'ôô	
ˆô& (¨Ó,ˆØ/5Ö6¨!Ð" 1Ó%Ð6ˆÐ6Ø,0Ö1 q˜˜q˜c’{Ð1ˆÐ1Ü˜H kÔ2ä˜s KÔ0Øà�y‰y×$Ò$Ü$ S¨/Ó:ˆFÜ# C¨Ô0ä—.‘. °1·9±9×3GÑ3GÔH×OÑOÐPWÓXˆã5°Ô5ˆÜ  Ó*ò 	N‰JˆE�3Ø�O‰OœK¨°¸¸S¿^¹^ÓLÕMò	NðU+NðZ €D„Lä�—‘ÓÐùò]
ùò6 7ùÚ1s   Á.G3Ã.G8Ä G=)r"   úetree.ElementÚreturnúDict[str, etree.Element])r,   Ústrr¢   úDict[str, str])r"   r¡   r¢   zIterator[str])rE   r£   rF   úSet[str]r¢   ÚNone)r#   r¡   rR   r¦   r¢   r–   )r   r¡   r^   zDict[int, int]r¢   r¥   )r#   r¡   r¢   zOptional[str])r   r¡   r_   r¥   r¢   r§   )rq   zIterable[int]r¢   zIterator[Tuple[int, int]])r¢   r–   )*Ú
__future__r   ÚreÚ	functoolsr   Ú	itertoolsr   r   Útypingr   r   r	   r
   r   r   r   Úlxmlr   r‚   Ú	fontToolsr   ÚfontTools.subset.utilr   ÚfontTools.ttLib.tables.S_V_G_r   Ú__all__ÚcompilerY   r   rh   r   r$   r1   r@   rJ   rN   re   r8   rl   rv   ÚgetTableClassr   r~   r   r   ú<module>r´      s&  ðÝ "ã 	Ý ß "ß G× GÑ GðÝõ Ý -Ý 5ð Ð
€ð 
ˆ�‰�OÓ	$€ð (Ø+ñ€
ð �*˜WÑ%Ð& fÐ-€
ñ �4Ôñ4ó ð4ó
Góó!ð<Ø&ðØ5=ðà	óó$ð&Ø	ðØ)7ðàóó@ó1óñ  Ð ˆU× Ñ  Ó(Ó)ò;ó *ñ;øðq ò ð ‚Eðús   ¬C ÃCÃC