+
    &ú„iG  ã                   ó’   € ^ RI H t  ^ RIt^ RIt^ RIt^ RIt^ RIHtHtHt ^ RI	t
^ RIt
^ RIt^ RIHt ^ RIt ! R R4      tR R ltR# )	é    )ÚglobN)ÚListÚDictÚAny)ÚQuirkc                   óî   a € ] tR t^#t o RV 3R lR lltV 3R lR ltV 3R lR ltV 3R lR ltV 3R	 lR
 ltRV 3R lR llt	V 3R lR lt
V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltRtV tR# )ÚQuirkCheckerc                ó*   <€ V ^8„  d   QhRS[ RS[ RR/# )é   ÚhandlerÚpathÚreturnN)Ústr)ÚformatÚ__classdict__s   "€Ú5/usr/lib/python3/dist-packages/Quirks/quirkapplier.pyÚ__annotate__ÚQuirkChecker.__annotate__$   s#   ø€ ÷ >ñ >¡ð >©3ð >ÐPTñ >ó    c                ó„   € Wn         W n        . V n        V P                  4        V P	                  4       V n        R V n        R# )z/usr/share/X11/xorg.conf.dN)Ú_handlerÚquirks_pathÚ_quirksÚget_quirks_from_pathÚget_system_infoÚ_system_infoÚ_xorg_conf_d_path)Úselfr   r   s   &&&r   Ú__init__ÚQuirkChecker.__init__$   s9   € ØŒØÔØ$&ˆŒØ×!Ñ!Ô#Ø ×0Ñ0Ó2ˆÔØ!=ˆÖr   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ©r   r   )r   r   )r   r   s   "€r   r   r   ,   s   ø€ ÷ ñ ¡d©5¥kñ r   c                ó<  € . V n         \        P                  P                  V P                  4      '       dµ   \        \        P                  P                  V P                  R4      4       Fq  p\        P                  P                  V4      '       g   K*  \        P                  ! RV,          4       V P                  V4      pV ;P                   V,          un         Ks  	  V P                   # \        P                  ! RV P                  ,          4       V P                   # )ú5check all the files in a directory looking for quirksÚ*z
Parsing %sz%s does not exist)r   Úosr   Úisdirr   r   ÚjoinÚisfileÚloggingÚdebugÚget_quirks_from_file)r   ÚfÚquirkss   &  r   r   Ú!QuirkChecker.get_quirks_from_path,   s¸   € àˆŒÜ�7‰7�=‰=˜×)Ñ)×*Ò*Üœ"Ÿ'™'Ÿ,™, t×'7Ñ'7¸Ó=Ö>�Ü—7‘7—>‘> !×$Ô$Ü—M’M ,°Õ"2Ô3Ø!×6Ñ6°qÓ9�FØ—L’L FÕ*—Lñ	 ?ð �|‰|Ðô �MŠMÐ-°×0@Ñ0@Õ@ÔAØ�|‰|Ðr   c                ó6   <€ V ^8„  d   QhRS[ RS[S[,          /# )r   Ú
quirk_filer   )r   r   r   )r   r   s   "€r   r   r   9   s   ø€ ÷ 'ñ '©sð '±t¹Eµ{ñ 'r   c                ó`   € \         P                  P                  V4      pVP                  4       # )r$   )ÚQuirksÚquirkreaderÚ	ReadQuirkÚ
get_quirks)r   r1   s   &&r   r,   Ú!QuirkChecker.get_quirks_from_file9   s)   € ô ×'Ñ'×1Ñ1°*Ó=ˆ
Ø×$Ñ$Ó&Ð&r   c                ó6   <€ V ^8„  d   QhRS[ S[S[3,          /# r"   )r   r   )r   r   s   "€r   r   r   ?   s   ø€ ÷ )ñ )¡¡c©3 h¥ñ )r   c                ó^   € \         P                  P                  4       pVP                  4       # )zGet system info for the quirk)r3   Ú	quirkinfoÚ	QuirkInfoÚget_dmi_info)r   Ú
quirk_infos   & r   r   ÚQuirkChecker.get_system_info?   s%   € ä×%Ñ%×/Ñ/Ó1ˆ
Ø×&Ñ&Ó(Ð(r   c                ó&   <€ V ^8„  d   QhRS[ RS[/# ©r   Úquirkr   ©r   Úbool)r   r   s   "€r   r   r   D   s   ø€ ÷ ñ ¡%ð ©Dñ r   c                óî  € RpVP                   P                  4        F¾  pVP                   V,           F¤  pV P                  P                  V4      '       g   K&  V P                  P                  V4      V8w  g   KH  \	        VP                   V,          4      ^8:  g   Kk  \
        P                  ! RV P                  P                  V4      : RV: 24         R# 	  KÀ  	  \
        P                  ! R4       V# )zSee if tags match system infoTzFailure to match z with FÚSuccess)Ú
match_tagsÚkeysr   ÚgetÚlenr*   r+   )r   rA   ÚresultÚtagÚvals   &&   r   Úmatches_tagsÚQuirkChecker.matches_tagsD   s¿   € àˆØ×#Ñ#×(Ñ(Ö*ˆCØ×'Ñ'¨×,Ð,�à×%Ñ%×)Ñ)¨#×.Ô.Ø×)Ñ)×-Ñ-¨cÓ2°cÖ9Ü˜E×,Ñ,¨SÕ1Ó2°aÖ7ä—M“Mà×,Ñ,×0Ñ0°Ö5²sð<ôó !ó -ñ +ô 	�Š�iÔ Øˆr   c                ó$   <€ V ^8„  d   QhRS[ RR/# )r   Úenabler   N)rC   )r   r   s   "€r   r   r   V   s   ø€ ÷ 9ñ 9¡Dð 9°Dñ 9r   c                óˆ  € V P                    EF+  pV P                  P                  4       VP                   Uu. uF   q3P                  4       P	                  4       NK"  	  up9   g   KZ  \
        P                  ! RVP                  ,          4       V P                  V4      '       d~   V'       d;   \
        P                  ! RVP                  ,          4       V P                  V4       KÚ  \
        P                  ! RVP                  ,          4       V P                  V4       EK  \
        P                  ! R4       EK.  	  R# u upi )z)Process quirks and do something with themzProcessing quirk %szApplying quirk %szUnapplying quirk %szQuirk doesn't matchN)r   r   Úlowerr   Ústripr*   r+   ÚidrM   ÚinfoÚ_apply_quirkÚ_unapply_quirk)r   rP   rA   Úxs   &&  r   Ú_check_quirksÚQuirkChecker._check_quirksV   sÅ   € à—\•\ˆEØ�}‰}×"Ñ"Ó$ÀEÇMÂMÓ(RÁM¸q¯©«¯©Ö):ÁMÑ(RÖRÜ—’Ð3°e·h±hÕ>Ô?Ø×$Ñ$ U×+Ò+çÜŸšÐ%8¸5¿8¹8Õ%CÔDØ×)Ñ)¨%Ö0äŸšÐ%:¸U¿X¹XÕ%EÔFØ×+Ñ+¨E×2ä—M’MÐ"7×8ó "ùÚ(Rs   ¸&D?c                ó   <€ V ^8„  d   QhRR/# ©r   r   N© )r   r   s   "€r   r   r   f   s   ø€ ÷ !ñ !˜tñ !r   c                ó(   € V P                  R4       R# )zEnable all quirks for a handlerTN©rY   ©r   s   &r   Úenable_quirksÚQuirkChecker.enable_quirksf   s   € à×Ñ˜4Ö r   c                ó   <€ V ^8„  d   QhRR/# r\   r]   )r   r   s   "€r   r   r   j   s   ø€ ÷ "ñ " ñ "r   c                ó(   € V P                  R4       R# )z Disable all quirks for a handlerFNr_   r`   s   &r   Údisable_quirksÚQuirkChecker.disable_quirksj   s   € à×Ñ˜5Ö!r   c                ó&   <€ V ^8„  d   QhRS[ RS[/# r@   )r   r   )r   r   s   "€r   r   r   n   s   ø€ ÷ 
ñ 
©3ð 
±3ñ 
r   c                ó–   € V P                   : RV P                  : RVP                  P                  4       P	                  RR4      : R2# )z$Return the path to the X config filez/10-Ú-Ú z.conf)r   r   rT   rR   Úreplace)r   rA   s   &&r   Ú_get_destination_pathÚ"QuirkChecker._get_destination_pathn   s9   € ð ×"Ô"Ø�MŒMØ�H‰H�N‰NÓ×$Ñ$ S¨#Ö.ð
ð 	
r   c                ó&   <€ V ^8„  d   QhRS[ RS[/# r@   rB   )r   r   s   "€r   r   r   v   s   ø€ ÷ ñ ¡%ð ©Dñ r   c                ó.  € V P                  V4      p\        P                  ! RRR7      pVP                  VP                  4       VP                  4        \        P                  P                  VP                  4      p\        P                  ! VP                  4       \        P                  ! VP                  4        \        P                  ! RV,          4       VP                  V4       R#   \         d    \        P                   ! R4        R# i ; i)z!Get the xorg snippet and apply itÚwF)ÚmodeÚdeletezCreating %szError during write()T)rl   ÚtempfileÚNamedTemporaryFileÚwriteÚ	x_snippetÚcloseÚxkitÚ
xorgparserÚParserÚnamer*   r+   Ú
globaldictr&   ÚunlinkÚIOErrorÚ	exception)r   rA   ÚdestinationÚtmp_fileÚtmp_xkits   &&   r   rV   ÚQuirkChecker._apply_quirkv   sÄ   € ð ×0Ñ0°Ó7ˆÜ×.Ò.°CÀÔFˆØ�‰�u—‘Ô'Ø�‰ÔÜ—?‘?×)Ñ)¨(¯-©-Ó8ˆä�Š�h×)Ñ)Ô*Ü
�	Š	�(—-‘-Ô ð	Ü�MŠM˜-¨+Õ5Ô6Ø�N‰N˜;Ô'ñ øô ô 	Ü×ÒÐ4Ô5Úð	ús   Â?.C/ Ã/!DÄDc                ó&   <€ V ^8„  d   QhRS[ RS[/# r@   rB   )r   r   s   "€r   r   r   Š   s   ø€ ÷ ñ ¡Eð ©dñ r   c                óì   € V P                  V4      p\        P                  ! RV,          4        \        P                  ! V4       R#   \
        \        3 d    \        P                  ! R4        R# i ; i)z%Remove the file with the xorg snippetzRemoving %s ...zCannot unlink destinationFT)rl   r*   r+   r&   r}   ÚOSErrorr~   r   )r   rA   r€   s   && r   rW   ÚQuirkChecker._unapply_quirkŠ   sd   € ð ×0Ñ0°Ó7ˆÜ�ŠÐ'¨+Õ5Ô6ð	Ü�IŠI�kÔ"ñ øô œÐ!ô 	Ü×ÒÐ9Ô:Úð	ús   °A Á'A3Á2A3)r   r   r   r   r   N)z/usr/share/jockey/quirks)T)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r,   r   rM   rY   ra   re   rl   rV   rW   Ú__static_attributes__Ú__classdictcell__)r   s   @r   r	   r	   #   ss   ø‡ € ÷>ò >÷ð ÷'ð '÷)ð )÷
ð ÷$9ò 9÷ !ð !÷"ð "÷
ð 
÷ð ÷(ö r   r	   c                ó$   € V ^8„  d   QhR\         /# r"   )Úint)r   s   "r   r   r   ˜   s   € ÷ ñ Œcñ r   c                  ó¸   € \        R RR7      p V P                  4        V P                  4        \        \        P
                  P                  \        4      4       ^ # )Únvidiaz/home/alberto/oem/jockey/quirks)r   )r	   ra   re   Úprintr&   r   ÚabspathÚ__file__)Úas    r   Úmainr–   ˜   s?   € ä�XÐ$EÔF€AØ‡O�OÔØ×ÑÔÜ	Œ"�'‰'�/‰/œ(Ó
#Ô$ñ" r   )r   r&   Úsysrs   r*   Útypingr   r   r   Úxkit.xutilsrx   Úxkit.xorgparserÚQuirks.quirkreaderr3   r   ÚQuirks.quirkinfor	   r–   r]   r   r   Ú<module>r�      s=   ðõ( Û 	Û 
Û Û ß "Ñ "ã Û ã Ý $Û ÷rñ r÷jr   