+
    œ°³jÍl  ã                  óP  a€ 0 t $ R t^ RIHt ^ RIt^ RIt^ RIt^ RIHt ^ t	^t
/ R^bR^bR^bR^bR^bR	^bR
^bR^	bR^
bR^bR^bR^bR^bR^bR^bR^bR^bR^R^R^/CtR]R&   / RRbRRbRRbRRbRRbRR	bR R
bR!RbR"RbR#RbR$RbR%RbR&RbR'RbR(RbR)RbR*RbR+RR,RR-RR.R//CtR0]R1&   / R$^bR^bR!^bR-^bR)^bR ^	bR^
bR*^bR#^bR^bR(^bR%^bR^bR^bR'^bR,^bR&^bR"^R+^R^R.^/CtR]R2&   / R. RmObR. RnObR. RoObR. RpObR. RqObR	. RrObR
. RsObR. RtObR. RuObR. RvObR. RwObR. RxObR. RyObR. RzObR. R{ObR. R|ObR. R}ObR. R~OR. ROR. R€OR/. RtO/CtRU]RV&   / RRR�R3R‚RRƒR4R„R5R…/bRRR†R3R‡RRˆR4R‰R5RŠR6R‹R7RŒR8R�R9RŽR:R�R;R�/bRRR‘R3R’RR“R4R”R5R•R6R–R<R—R=R˜/bRRR™R3RšRR›R4RœR5R�R6RžR<RŸR>R /bRRR¡R3R¢RR£R4R¤R5R¥R?R¦/bR	RR§R3R¨RR©R4RªR5R«R6R¬R7R­R@R®RAR¯/	bR
RR°R3R±RR²R4R³R5R´R6RµR7R¶R@R·RBR¸/	bRRR¹R3RºRR»R4R¼/bRRR½R3R¾RR¿R4RÀR5RÁR6RÂRCRÃRDRÄRERÅRARÆ/
bRRRÇR3RÈRRÉR4RÊR5RËRFRÌRGRÍRHRÎ/bRRRÏR3RÐRRÑR4RÒR5RÓR6RÔRHRÕRDRÖ/bRRR×R3RØRRÙR4RÚR5RÛR6RÜR7RÝRIRÞRJRß/	bRRRàR3RáRRâR4RãR5RäR6RåRKRæRIRç/bRRRèR3RéRRêR4RëR5RìR6RíRHRîRDRïRERðRLRñR9Rò/bRRRóR3RôRRõR4RöR5R÷R6RøR7Rù/bRRRúR3RûRRüR4RýR5RþRMRÿ/bRRER R3ERRERR4ERR5ERRNERRGER/bRRERR3ERRER	R4ER
R5ERR6ERRHERRDERROERRLERRPERRQERRRERRSER/RRERR3ERRERR4ERR5ERR6ERRHERRDERREERRLERR9ERRTER /RRER!R3ER"RER#R4ER$R5ER%RFER&RGER'/R/RER(R3ER(RER(R4ER(//CtRW]RX&   ER)^ER*^ER+^/tRY]RZ&   R^R^R4^R)^/tR]R[&   R\ R] ltER,R^ R_ llt]P+                  4        U Uu/ uF  w  rWbK	  	  upp tR`]Ra&   R/]]
&   RbtRc Rd ltRe Rf ltRg Rh ltRi Rj ltER,Rk Rl lltR# u upp i (-  z<Self-contained protein featurization for ESMFold2 inference.)ÚannotationsN)ÚTensorÚALAÚARGÚASNÚASPÚCYSÚGLNÚGLUÚGLYÚHISÚILEÚLEUÚLYSÚMETÚPHEÚPROÚSERÚTHRÚTRPÚTYRÚVALzdict[str, int]ÚPROTEIN_RESIDUE_TO_RES_TYPEÚAÚRÚNÚDÚCÚQÚEÚGÚHÚIÚLÚKÚMÚFÚPÚSÚTÚWÚYÚVÚXÚUNKzdict[str, str]ÚPROTEIN_1TO3ÚESM_PROTEIN_VOCABÚCAÚOÚCBÚCGÚCDÚNEÚCZÚNH1ÚNH2ÚOD1ÚND2ÚOD2ÚSGÚOE1ÚNE2ÚOE2ÚND1ÚCD2ÚCE1ÚCG1ÚCG2ÚCD1ÚCEÚNZÚSDÚCE2ÚOGÚOG1ÚNE1ÚCE3ÚCZ2ÚCZ3ÚCH2ÚOHzdict[str, list[str]]ÚPROTEIN_HEAVY_ATOMSz0dict[str, dict[str, tuple[float, float, float]]]ÚPROTEIN_REF_POSzdict[tuple[str, str], int]ÚPROTEIN_CHARGED_ATOMSÚ_PROTEIN_ELEMENT_TO_ATOMIC_NUMc               ó    € V ^8„  d   QhRRRR/# )é   ÚnameÚstrÚreturnz	list[int]© )Úformats   "Úk/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/esmfold2/protein_utils.pyÚ__annotate__r_   n  s   € ÷ <ñ <˜Cð < Iñ <ó    c                ó�   € V P                  ^4      R,          pV Uu. uF  q"R8w  d   \        V4      ^ ,
          M^ NK  	  up# u upi )é   :Nrb   NÚ )ÚljustÚord)rY   ÚpaddedÚcs   &  r^   Ú_encode_atom_namerh   n  s=   € Ø�Z‰Z˜‹]˜2Õ€FÙ4:Ó;±F¨q œ8ŒC�‹F�RŽK¨Ò*±FÑ;Ð;ùÒ;s   �#Ac               ó$   € V ^8„  d   QhRRRRRR/# )rX   ÚsequencerZ   Údeviceztorch.device | str | Noner[   zdict[str, Tensor]r\   )r]   s   "r^   r_   r_   s  s-   € ÷ fGñ fG sð fGÐ4Mð fGÐYjñ fGr`   c                óŽ  € V '       g   \        R4      hV  Uu. uF  p\        P                  VR4      NK  	  pp\        V 4      p. p. p. p. p. p	^ p
\	        \        W4      4       EF  w  pw  rÍ\        V,          p\        P                  V\        4      p\        P                  V\        R,          4      pVP                  V
4       V FW  p\        P                  VV3^ 4      pV^ ,          p\        V,          V,          pVP                  VVVVV34       V
^,          p
KY  	  RV9   d   RMRpV	P                  W[,          VP                  V4      ,           4       VP                  V4       VP                  V4       EK  	  \        V4      pV^ 8”  d%   \        P                  ! V^ ,          4      ^ ,          M^ p\         P"                  ! V^\         P$                  R7      p\         P"                  ! V\         P&                  R7      p\         P"                  ! V\         P(                  R7      p\         P"                  ! V^\         P&                  R7      p\         P"                  ! V\         P&                  R7      p\         P"                  ! V\         P*                  R7      p\         P"                  ! V\         P&                  R7      p\	        V4       F‹  w  pw  ppppp\         P,                  ! V\         P$                  R7      VV&   \.        V,          VV&   VVV&   \         P,                  ! \1        V4      \         P&                  R7      VV&   VVV&   RVV&   VVV&   K�  	  \         P2                  ! V\         P&                  R7      p \         P2                  ! V\         P&                  R7      p!\         P"                  ! V\         P&                  R7      p"\         P"                  ! V\         P&                  R7      p#\         P4                  ! V\         P&                  R7      p$\         P6                  ! V3\8        \         P&                  R7      p%\         P,                  ! V\         P&                  R7      p\         P,                  ! V\         P&                  R7      p&\         P"                  ! WD^\         P$                  R7      p'\         P4                  ! V\         P*                  R7      p(\         P,                  ! V	\         P&                  R7      p)VP;                  ^ 4      p*\         P4                  ! ^V\         P*                  R7      p+\         P"                  ! ^V\         P*                  R7      p,\         P"                  ! ^V\         P$                  R7      p-\         P"                  ! V\         P$                  R7      p./ RV bR	V!bR
V"bRV#bRV$bRV%bRVbRV&bRV'bRV(bRVbRVbRVbRVbRVbRVbRVbRV)RV*RV+RV,RV-RV./Cp/V/P=                  4        U0U1u/ uF'  w  p0p1V0V1P;                  ^ 4      P?                  V4      bK)  	  up1p0# u upi u up1p0i )zþFeaturize a single protein sequence for [`EsmFold2Model.fold`].

Covers a single-chain protein with no MSA, modifications, distogram conditioning or covalent
bonds. All tensors have a leading batch dim of 1, on ``device`` (the CPU when it is not given).
zsequence must be non-emptyr.   r-   r3   r1   )ÚdtypeTÚtoken_indexÚresidue_indexÚasym_idÚsym_idÚ	entity_idÚmol_typeÚres_typeÚ	input_idsÚtoken_bondsÚattention_maskÚref_posÚref_elementÚ
ref_chargeÚref_atom_name_charsÚref_space_uidÚatom_attention_maskÚatom_to_tokenÚdistogram_atom_idxÚmsaÚmsa_attention_maskÚhas_deletionÚdeletion_valueÚdeletion_mean) Ú
ValueErrorr/   ÚgetÚlenÚ	enumerateÚziprS   r   ÚPROTEIN_UNK_RES_TYPEr0   ÚappendrU   rT   ÚindexÚmathÚceilÚtorchÚzerosÚfloat32Úint64Úint8ÚboolÚtensorrV   rh   ÚarangeÚonesÚfullÚMOL_TYPE_PROTEINÚ	unsqueezeÚitemsÚto)2rj   rk   rg   Úres_3letterr#   Útoken_atom_startsÚatom_recordsÚres_type_valsÚinput_id_valsÚdistogram_rep_atom_idxÚatom_cursorÚt_idxÚletterÚres_3Ú
atom_namesrt   Úinput_idrY   ÚchargeÚelementrx   Úrep_nameÚnumber_of_real_atomsÚnumber_of_atomsry   rz   r{   r|   r}   r~   ÚiÚposrn   ro   rp   rq   rr   rs   ru   rv   rw   r   r€   r�   r‚   rƒ   r„   ÚfeaturesÚkÚvs2   &&                                                r^   Úprepare_protein_featuresr³   s  sI  € ÷ ÜÐ5Ó6Ð6á7?Ó@±x°!”<×#Ñ# A uÖ-±x€KÐ@ÜˆH‹€Aà#%ÐØPR€LØ!€MØ!€MØ(*Ðà€KÜ"+¬C°Ó,F×"GÑˆ‰�Ü(¨Õ/ˆ
Ü.×2Ñ2°5Ô:NÓOˆÜ$×(Ñ(¨Ô1BÀ3Õ1GÓHˆà× Ñ  Ô-ÛˆDÜ*×.Ñ.°°t¨}¸aÓ@ˆFØ˜1•gˆGÜ% eÕ,¨TÕ2ˆGØ×Ñ ¨¨g°v¸wÐ GÔHØ˜1ÕŠKñ ð   :Ô-‘4°4ˆØ×%Ñ%Ð&7Õ&>À×AQÑAQÐRZÓA[Õ&[Ô\à×Ñ˜XÔ&Ø×Ñ˜X×&ñ# #Hô& ˜|Ó,ÐØCWÐZ[ÔC[”d—i’iÐ 4°rÕ 9Ó:¸RÖ?Ðac€Oä�kŠk˜/¨1´E·M±MÔB€GÜ—+’+˜o´U·[±[ÔA€KÜ—’˜_´E·J±JÔ?€JÜŸ+š+ o°qÄÇÁÔLÐÜ—K’K ´u·{±{ÔC€MÜŸ+š+ o¼U¿Z¹ZÔHÐÜ—K’K ´u·{±{ÔC€Mä2;¸LÖ2IÑ.ˆÑ.ˆE�4˜ &¨#Ü—\’\ #¬U¯]©]Ô;ˆ�‰
Ü7¸Õ@ˆ�A‰Øˆ
�1‰Ü!&§¢Ô.?ÀÓ.EÌUÏ[É[Ô!YÐ˜AÑØ ˆ�aÑØ!%Ð˜AÑØ ˆ�aÓñ 3Jô —,’,˜q¬¯©Ô4€KÜ—L’L ¬%¯+©+Ô6€MÜ�kŠk˜!¤5§;¡;Ô/€GÜ�[Š[˜¤%§+¡+Ô.€FÜ—
’
˜1¤E§K¡KÔ0€IÜ�zŠz˜1˜$Ô 0¼¿¹ÔD€HÜ�|Š|˜M´·±Ô=€HÜ—’˜]´%·+±+Ô>€IÜ—+’+˜a A¬U¯]©]Ô;€KÜ—Z’Z ¬¯©Ô4€NÜŸšÐ&<ÄEÇKÁKÔPÐð ×
Ñ
˜QÓ
€CÜŸš A q´·
±
Ô;ÐÜ—;’;˜q !¬5¯:©:Ô6€LÜ—[’[  A¬U¯]©]Ô;€NÜ—K’K ¬¯©Ô7€MðØ�{ðà˜ðð 	�7ðð 	�&ð	ð
 	�Yðð 	�Hðð 	�Hðð 	�Yðð 	�{ðð 	˜.ðð 	�7ðð 	�{ðð 	�jðð 	Ð2ðð 	˜ðð  	Ð2ð!ð" 	˜ð#ð$ 	Ð0ØˆsØÐ0Ø˜Ø˜.Ø˜ñ/€Hð2 6>·^±^Ô5EÔFÑ5E©T¨Q°ˆAˆq�{‰{˜1‹~× Ñ  Ó(Ò(Ñ5EÒFÐFùò{ Aùóz Gs   ˜X<Ø-Yzdict[int, str]Ú_RES_TYPE_TO_3LETTERÚ>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789c               ó   € V ^8„  d   QhRR/# )rX   r[   rZ   r\   )r]   s   "r^   r_   r_   ä  s   € ÷ Yñ Y Sñ Yr`   c                óN   € RP                  R V  4       4      P                  4       # )zcDecode one atom's four encoded name characters back to a string (inverse of ``_encode_atom_name``).Ú c              3  ó|   "  € T F2  p\        V4      ^ 8w  d   \        \        V4      ^ ,           4      MRx € K4  	  R# 5i)é    rc   N)ÚintÚchr)Ú.0rg   s   & r^   Ú	<genexpr>Ú$_decode_atom_name.<locals>.<genexpr>æ  s,   é € ÐPÁZÀ¤s¨1£v°¤{”3”s˜1“v •{Ô#¸Ô;ÃZùs   ‚:<)ÚjoinÚstrip)Ú
name_charss   &r^   Ú_decode_atom_namerÃ   ä  s    € à�7‰7ÑPÁZÓPÓP×VÑVÓXÐXr`   c               ó   € V ^8„  d   QhRR/# )rX   r[   r»   r\   )r]   s   "r^   r_   r_   é  s   € ÷ Eñ E˜Sñ Er`   c                óˆ  € R Fq  p\        V \        4      '       d   V P                  V4      M\        WR4      pVf   K<  \	        VP                  4       P                  4       P                  4       4      u # 	  \	        V R,          P                  4       P                  RR7      P                  4       P                  4       4      # )z†Index of the best-scoring diffusion sample, ranked on ``ptm`` and falling back to mean
``plddt`` when the confidence head was not run.NÚplddt)Údim)ÚptmÚcomplex_plddtéÿÿÿÿ)	Ú
isinstanceÚdictr†   Úgetattrr»   ÚfloatÚargmaxÚitemÚmean)ÚoutputÚkeyÚscores   &  r^   Ú_rank_samplesrÕ   é  s”   € ó (ˆÜ#-¨f´d×#;Ò#;�—
‘
˜3”ÄÈÐVZÓA[ˆØÔÜ�u—{‘{“}×+Ñ+Ó-×2Ñ2Ó4Ó5Ò5ñ (ô ˆv�g�×$Ñ$Ó&×+Ñ+°Ð+Ó3×:Ñ:Ó<×AÑAÓCÓDÐDr`   c               ó4   € V ^8„  d   QhRRRRRRRRRRRR	R
R/# )rX   Ú
atom_indexr»   Ú	atom_namerZ   Úresidue_nameÚ	chain_tagÚresidue_numberÚb_factorrÎ   r[   r\   )r]   s   "r^   r_   r_   ó  sN   € ÷ ñ Øðàðð ðð ð	ð
 ðð ðð 	ñr`   c                óô   € \        V4      ^8X  d   TMRV 2pV'       d
   V^ ,          MRpR;p	;r«RpRR V R RVR V	R VR	 RVR VR
 V
R RV^ ,          R V^,          R V^,          R VR VR RVR VR 2# )zOOne PDB ``ATOM`` record. PDB is a columnar format, so every space here matters.rc   r¸   g      ð?ÚATOMú<6ú>5z<4ú>1ú>3ú>4z   z>8.3fz>6.2fz
          z>2)r‡   )r×   rØ   rÙ   rÚ   rÛ   ÚpositionrÜ   rY   rª   Úalt_locÚinsertion_coder©   Ú	occupancys   &&&&&&&      r^   Ú_pdb_atom_linerè   ó  sÁ   € ô ˜I›¨!Ô+‰9°1°Y°K°€Dß'ˆi˜Žl¨S€GØ(*Ð*€GÐ*ˆnØ€Ià�"ˆ+�j �_ A d¨2 Y¨w°r¨lØ˜Ð
˜1˜Y r˜NØ˜"Ð
˜n¨RÐ0°Ø�A�;�uÐ
˜h q�k¨%Ð0°¸!µ¸UÐ0CØ�UÐ
˜H UÐ+¨:Ø�2ˆ,�v˜b�kð	#ðr`   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )rX   r×   r»   rÙ   rZ   rÚ   rÛ   r[   r\   )r]   s   "r^   r_   r_     s8   € ÷ añ a Sð a¸ð aÈð aÐ]`ð aÐehñ ar`   c                ó(   € RR V R RVR RVR VR 2# )	z#The ``TER`` record closing a chain.ÚTERrß   rà   z      râ   rc   rá   rã   r\   )r×   rÙ   rÚ   rÛ   s   &&&&r^   Ú_pdb_terminator_linerì     s.   € à�BˆZ˜
 2� f¨\¸"Ð,=¸Q¸yÈ¸nÈ^Ð\^ÐL_Ð`Ð`r`   c               ó$   € V ^8„  d   QhRRRRRR/# )rX   r°   rÌ   Ú
sample_idxz
int | Noner[   rZ   r\   )r]   s   "r^   r_   r_     s&   € ÷ P ñ P  Dð P °jð P ÈCñ P r`   c                ó  € V R,          pVP                  4       ^8X  d
   VR,          pVf   \        V 4      pVP                  4       P                  4       P	                  4       V,          pV R,          P                  4       P                  4       P	                  4       V,          pVR,          P                  4       P	                  4       pVR,          P                  4       P	                  4       pVR,          P                  4       P	                  4       pVR,          P                  4       P	                  4       P                  \        4      pVR,          P                  4       P	                  4       P                  \        4      p	VR	,          P                  4       P	                  4       p
R
V9   d&   VR
,          P                  4       P	                  4       M\        P                  ! V
4      pVP                  ^8X  d@   V^ ,          pV^ ,          pV^ ,          pV^ ,          pV	^ ,          p	V
^ ,          p
V^ ,          pR.p^pRpR^ pp\        ^ ,          p\        VP                  ^ ,          4       EFA  p\        VV,          4      pV	V,          '       d   VV,          '       g   K6  \        P                  \        VV,          4      R4      p\        V
V,          4      ^,           p\        \        VV,          4      \!        \        4      ,          ,          pVe>   VV8w  d7   VP#                  \%        WßVV4      4       V^,          pVP#                  R4       Tp\'        VV,          4      pVP#                  \)        VVVVVVV,          \+        VV,          4      R7      4       V^,          pTTTprþEKD  	  Ve   VP#                  \%        WßVV4      4       VP#                  R4       VP#                  R4       RP-                  V4      # )a  Convert an ESMFold2 forward output into a PDB string.

Every predicted atom is written under its own name, in featurization order -- which is the
conventional PDB ordering (``N``, ``CA``, ``C``, ``O``, then side chain).

Args:
    output: The model output to render.
    features: The feature dict the model was run on.
    sample_idx: Which diffusion sample to render. Defaults to the best-ranked one
        (see :func:`_rank_samples`).

Returns:
    The PDB string. Per-residue pLDDT goes in the b-factor column.
Úsample_atom_coordsNrÆ   r~   r{   rt   rw   r}   ro   rp   z
PARENT N/Ar.   )r×   rØ   rÙ   rÚ   rÛ   rä   rÜ   ÚENDr¸   Ú
):NNNrº   )rÇ   rÕ   ÚdetachÚcpuÚnumpyÚastyper”   ÚnpÚ
zeros_likeÚndimÚ_PDB_CHAIN_TAGSÚrangeÚshaper»   r´   r†   r‡   r‹   rì   rÃ   rè   rÎ   rÀ   )rÒ   r°   rî   ÚcoordsrÆ   r~   Ú	ref_charsrt   Ú
token_maskÚatom_mask_inÚresidue_index_arrrp   Ú	pdb_linesr×   Úprevious_tokenÚprevious_residue_nameÚprevious_numberrÚ   ÚatomÚtokenrÙ   rÛ   Únext_chain_tagrØ   s   &&&                     r^   Úoutput_to_pdbr	    se  € ð Ð(Õ)€FØ‡z�zƒ|�qÔØ˜•ˆØÒÜ" 6Ó*ˆ
Ø�]‰]‹_× Ñ Ó"×(Ñ(Ó*¨:Õ6€Fà�7�O×"Ñ"Ó$×(Ñ(Ó*×0Ñ0Ó2°:Õ>€EØ˜_Õ-×1Ñ1Ó3×9Ñ9Ó;€MØÐ.Õ/×3Ñ3Ó5×;Ñ;Ó=€IØ˜
Õ#×'Ñ'Ó)×/Ñ/Ó1€HØÐ*Õ+×/Ñ/Ó1×7Ñ7Ó9×@Ñ@ÄÓF€JØÐ1Õ2×6Ñ6Ó8×>Ñ>Ó@×GÑGÌÓM€LØ  Õ1×5Ñ5Ó7×=Ñ=Ó?Ðà3<ÀÔ3Hˆh�yÕ!×%Ñ%Ó'×-Ñ-Ô/ÌbÏmÊmÐ\mÓNn€Gà×Ñ˜QÔØ% aÕ(ˆØ˜a•Lˆ	Ø˜A•;ˆØ •]ˆ
Ø# A•ˆØ-¨aÕ0ÐØ˜!•*ˆà(˜>€IØ€Jà!%€NØ-2°A˜?ÐÜ Õ"€IÜ�m×)Ñ)¨!Õ,×-ˆÜ�M $Õ'Ó(ˆØ˜D×!Ô!¨°E×):Ô):Ùä+×/Ñ/´°H¸UµOÓ0DÀeÓLˆÜÐ.¨uÕ5Ó6¸Õ:ˆÜ(¬¨W°U­^Ó)<¼sÄ?Ó?SÕ)SÕTˆØÒ%¨.¸IÔ*EØ×ÑÔ1°*ÐU^Ð`oÓpÔqØ˜!�OˆJØ×Ñ˜\Ô*Ø"ˆ	ä% i°¥oÓ6ˆ	Ø×ÑÜØ%Ø#Ø)Ø#Ø-Ø �Ü˜u U�|Ó,ôô
	
ð 	�a�ˆ
ØAFÈÐVd¨Ð-ªñ7 .ð: Ò!Ø×ÑÔ-¨jÐQZÐ\kÓlÔmØ×Ñ�UÔØ×Ñ�RÔØ�9‰9�YÓÐr`   )r   r1   r   r2   r3   )r   r1   r   r2   r3   r4   r5   r6   r7   r8   r9   )r   r1   r   r2   r3   r4   r:   r;   )r   r1   r   r2   r3   r4   r:   r<   )r   r1   r   r2   r3   r=   )	r   r1   r   r2   r3   r4   r5   r>   r?   )	r   r1   r   r2   r3   r4   r5   r>   r@   )r   r1   r   r2   )
r   r1   r   r2   r3   r4   rA   rB   rC   r?   )r   r1   r   r2   r3   rD   rE   rF   )r   r1   r   r2   r3   r4   rF   rB   )	r   r1   r   r2   r3   r4   r5   rG   rH   )r   r1   r   r2   r3   r4   rI   rG   )r   r1   r   r2   r3   r4   rF   rB   rC   rJ   r7   )r   r1   r   r2   r3   r4   r5   )r   r1   r   r2   r3   rK   )r   r1   r   r2   r3   rL   rE   )r   r1   r   r2   r3   r4   rF   rB   rM   rJ   rN   rO   rP   rQ   )r   r1   r   r2   r3   r4   rF   rB   rC   rJ   r7   rR   )r   r1   r   r2   r3   rD   rE   )g   À‘‹„¿g   ÀQó¿g   `Zãð¿)g    t¥¿g   €HUÆ?g    Uâ¿)g    qgó?g   €RÞ?g   àÙüÈ?)g   `Gÿ?g   €à,÷?g   àÎœÁ¿)g    \nô¿g   @ÖqÛ?g   `þ(Ó?)g    ç" Àg   `8å?g    ëÞò¿)g    g Àg   `$Zâ¿g   Àâ8Ú¿)g    jÁÀg    ûð¿g   à'£Ñ¿)g    $“Àg   €�Àg   @=‹ê¿)g    ªµö¿g   `é×¿g   @v‡ï?)g    ñh¾?g    ÆëÓ¿g    <Øî?)g    %Bå?g   Àíð?g   à„]Ù?)g   àGß @g   €0�ñ?g   ÀH–ã?)g   àŽÊ@g    ö”Ô?g    ')·¿)g   ÀLØ@g    ›Ø?g    ¯ÙÕ?)g   `I@g    ,ªÚ¿g    QÖñ¿)g   àVNè¿g   àÜè?g    1ò?)g    Yè¿g   àÌ�Î?g    …,Î¿)g    Ø¼þ¿g    Xæ¿g   €‹Û¿)g   @ÜkÀg   À7iâ¿g   ÀÐÁö¿)g    ��á?g   @/@à¿g    Ä?á¿)g    ¤™û?g   À*JÛ?g   `†}â¿)g   @'ÿ?g   €ü¼ñ?g   À$Ñù¿)g    ×–@g   à…Vâ?g    �òá?)g   €9†ý¿g    ¡xó¿g   @9áÈ?)g   €vjä¿g    ÝÚ¿g   à­Ú?)g    X.î¿g    æ‘ð?g   `VÀÇ?)g   À4Kø¿g   À5yö?g    °÷ë¿)g   @¼ß?g   @—´ì¿g   À‚«à¿)g   àH|ü?g   `	É¿g    Í“Í¿)g   `Ž)@g   @¹Wã¿g   à�æ?)g    õ)@g   @æwí?g    àï¿)g   àç¨?g   @Œ
ó?g   àV’ò¿)g   @¥
½?g   @ª¸¿g   àÎhÝ¿)g   ÀE>ô¿g   àÝå¿g   @×¿)g    	i÷¿g   Àu)þ¿g    ‚Øå¿)g    Ä$æ?g   €È ·?g    ¼zî?)g   @)²@g   €Áà?g   @}Ýì?)g    ÅõÀg   €×î¿g   @³jé¿)g   €‡ëõ¿g   €i3ã¿g   ÀyëÊ?)g   `£ü¿g   `½±æ?g   à·üê?)g   @¢ý¿g    ™é?g   € Å @)g    kä”?g    §à¿g   `6¦Ü¿)g    :4ò?g    [Ò¿g   Àß§â?)g   €ÐË@g    „¾Ï¿g   `^ù·¿)g    2Y	@g   €ù¾ô¿g    ÅúÅ¿)g   àS”@g   Àh¹î?g   Àò
æ¿)g   €„\ù¿g   €'gõ¿g   Àç^î?)g   ÀÆåð¿g   @9œ?g   À»}ð?)g   €æbü¿g    íî?g   @_´·?)g    kþ¿g    gs@g   À8ÂÙ?)g   À6Þ?g    Òü¨?g    T÷é?)g   À?:í?g   àò Û¿g   @¾¨â¿)g    É0@g   @CÒÓ¿g   `ßç¿)g    ˆ	@g   Àsdô¿g    £úØ¿)g   €ß·@g   À­ì?g    µÅò¿)g    Oö¿g    $…Ù¿g    ð‘Õ¿)g    i•Ù¿g   @‹�á?g   `Ð‚Ã?)g    K5î?g   Àggº¿g    ›kÉ?)g    Y]õ?g    <jå¿g   @æô?)g    ©@÷¿g    xñ¿g   à¾1ì?)g   `
oõ¿g   À«½Ï?g   `èòÏ?)g    ífÀg    kå?g   `x{Ó¿)g    ’	Àg    zíü?g    _±¿)g   ÀðwÓ¿g   €‹ÍË?g   `Ønì¿)g   €†kñ?g    º¢�?g   @÷N×¿)g    †rý?g    ©¨ð?g    /Ó?)g   @b~ü?g   `Nžñ¿g    HiØ¿)g   `O§@g   `Ê„ß?g    ºä?)g   Àb9@g    �ì¿g   @ª±Ð?)g    ¨ïæ¿g    Œ®ø¿g    Xòï¿)g   `Šñ¿g    "‚Ö¿g   @=bË¿)g   à<ö¿g    ê?g    ÍÜñ¿)g    ñÍó¿g   `Œ^ç?g   ÀëìÀ)g   `Ñ’¯?g   @Ha�?g    žÈé?)g   `R
ø?g   ÀŽÈ¶¿g   àëÎ?)g   @À9«¿g   àrDë¿g   `É� @)g   à÷¯ü?g    ñÊì?g    —\ì¿)g   `¸sÿ?g   @Ÿÿ¿g    ‰ŠÇ¿)g    �ìô?g   À&^å¿g    HóÈ¿)g    Ùÿ?g   €üóÎ?g    E7é?)g    >� @g    ?,´¿g    ×	 @)g   À-þÉ¿g   `ùåé¿g   ÀŠÈ¼?)g    h»ï¿g    zÀà?g    þ5±?)g    èaÀg   @æ*Ó?g   `\Vâ?)g    Ûsð¿g   À ò?g   `F‰õ¿)g   €‰`@g    ð¶ä¿g    Æbä?)g   @@ @g   àiÕÑ?g    ®‚Û¿)g   À ¼@g   À8ˆù?g   @¢ÈÊ¿)g   Às.@g   €qî @g   àË!ò¿)g   `à?g   €T1ß?g   @zfß¿)g   @+
Ð¿g   àÅBé¿g   €Kúì¿)g    òPü¿g    ÅÄá¿g    1¥ð¿)g    ½œÀg    ¬Zð¿g    ÿ«Ç?)g   À8'Àg   `›Ï¿g   @Ž(ö?)g   €?þ?g   € gø¿g   @èIÛ¿)g   `{5ô?g   `:AÏ¿g    ™gè¿)g   `hn@g   €ÔÆê?g   `û6ç¿)g   @+¹@g    ^|ù?g    Iˆû¿)g    Ó»?g    hÎ»?g   `ñDÉ?)g   Àˆñ¿g   `õë¿g   ÀôŽ¶?)g    M¥Àg   à„SÕ¿g   `¶Vò?)g   à
Àg   `ã�æ?g   àŽª½¿)g   ÀœÉÀg    £iø¿g   ÀåS’?)g    µxù¿g   €2Xë¿g   à‰‰Ö?)g   à²=þ¿g   ÀXUÝ?g   @_ð?)g   €àzõ¿g    €Ñç?g   àù @)g   @ÛTè¿g   ÀLä¿g   @wŸí¿)g   ÀäTã?g    æn²¿g   à‰¬ã¿)g   @>ë?g    øó?g   €’Þæ¿)g   €žìú?g    Ñ9ï¿g   `7Â¿)g   €ÿp@g   €æ™ü?g   À0÷×¿)g    A@g    ÉåÞ¿g    §‚Å?)g    Ñ2	@g   @éæî?g   Àó»¦?)g    �Âê¿g   Àê­ï¿g    ÒËá?)g    4ñÔ?g    ì¹ã¿g   àãÐ¿)g    bËù?g    ì¼ò¿g   àŠäÓ?)g    ìÍù?g    ³7Àg    ÁLí?)g   `ÙÉÔ?g    ðãì?g   €	[Õ¿)g   à¶Gò¿g   ÀB^ô?g   €p”Ð¿)g   àò—ý¿g   €°6›?g   `)Ñ?)g    ¼–å?g    ©ø?g   `ã,á¿)g   à"?g   @Éß?g   @)?Ò?)g   à¬Ïï?g    ã2á¿g   `ˆ…ç?)g   ÀTßð?g   €�Éë¿g   €P1ÿ?)g    ÿò¿g   Àq=Å¿g   €Üƒà¿)g   @ý¿g   À.]ñ¿g   ÀÂ†Ò?)g   à™6õ¿g   À÷õ¿g   àìæ?)g   àöbá¿g    gòÄ¿g    ¥¯Ú?)g   ÀÉµô¿g   €È¥æ?g    „Âá¿)g   €yû¿g   ÀGÎ?g    ôvú¿)g    qMë?g    *á¿g   `ZÂ¿)g   ÀrZø?g    fö¿g   Àºnè?)g    ¾�û?g   €;“æ?g   @W^×¿)g   Àý|@g   €ëQè?g   àÁß?)g   àž@g   `->·?g   €t
á?)g   @ä @g    `–ã¿g    g¿è¿)g   `’¾ü?g   `)Qý¿g   àâè¿)g   `�ô?g    ŒÒñ?g   `.dë?)g   @ú¥¿g    ¦’Ü?g    +‚ñ?)g   `EÛ¿g    ÍÃ¿g    4È@)g   Àc£ñ¿g    œ Ë?g   Àíƒ½?)g   €ž?û¿g    ×‡è¿g    Üy @)g    {] Àg   `P=ß¿g   `Í½æ?)g   @Dzó¿g    û†ã?g   `<Íô¿)g    N
Àg   àxSí¿g    +,„¿)g   À‡Àg   @E‡Í?g   €`¤ÿ¿)g    æÀg    à*â¿g   àíÙô¿)g   `¤ü¿g   àúèê¿g    –õ?)g    CŸþ¿g   àË%Î?g    ±)Õ?)g    ;Ç
Àg    <÷Ö?g   @£*¹¿)g   à¾Àg    O£ä¿g   àÄZá¿)g   à&ð¿g   €þ??g    °½ì¿)g   À=îÜ?g   à�«•?g   Àžúà¿)g    €–ñ?g    2ó?g   `èÖ¿)g   €”âò?g   €îô¿g   àëÓ¿)g    è3@g   €5/ó?g   À…ž?)g   àêÄ@g   @ÛÙó¿g   `J¦?)g   `r	@g   @Tì§?g    ¤YÌ?)g    J@g   Àª-±?g    ÖÎâ?)g   Àù(ã?g    qù¿g    úœç¿)g    ö>ã?g    áãº¿g    ¯Fä¿)g   @=mý?g    ÄÚ?g    °B°?)g   àa)@g   @IÑ¿g    Å#ï?)g   àH;æ¿g   €BÛ?g   ÀOV¢?)g   `v×þ¿g    K\¸?g   €Ë&ê¿)g    \šì¿g   ÀÜ¶¿g    ¾Ž÷?)ç        r
  r
  )r   rH   )r   r9   )r   rA   )N)Ú__conditional_annotations__Ú__doc__Ú
__future__r   r�   rõ   r÷   r�   r   r™   rŠ   r   Ú__annotations__r/   r0   rS   rT   rU   rV   rh   r³   r›   r´   rú   rÃ   rÕ   rè   rì   r	  )ÚthreeÚrtr  s   00@r^   Ú<module>r     s@
  øðô Cå "ã ã Û Ý ð Ð ØÐ ð/Ø	ˆ1ð/à	ˆ1ð/ð 
ˆ1ð/ð 
ˆ1ð	/ð
 
ˆ1ð/ð 
ˆ1ð/ð 
ˆ1ð/ð 
ˆ1ð/ð 
ˆ2ð/ð 
ˆ2ð/ð 
ˆ2ð/ð 
ˆ2ð/ð 
ˆ2ð/ð 
ˆ2ð/ð 
ˆ2ð/ð  
ˆ2ð!/ð" 
ˆ2ð#/ð$ 
ˆ2Ø	ˆ2Ø	ˆ2ñ)/Ð ˜^ó ð. Øˆð àˆð ð ˆð ð ˆð	 ð
 ˆð ð ˆð ð ˆð ð ˆð ð ˆð ð ˆð ð ˆð ð ˆð ð ˆð ð ˆð ð ˆð ð  ˆð! ð" ˆð# ð$ ˆØˆØˆØˆñ+ €ˆnó ð0%Øˆð%àˆð%ð ˆð%ð ˆð	%ð
 ˆð%ð ˆð%ð ˆð%ð ˆð%ð ˆð%ð ˆð%ð ˆð%ð ˆð%ð ˆð%ð ˆð%ð ˆð%ð  ˆð!%ð" ˆð#%ð$ ˆØˆØˆØˆñ+%Ð �>ó ð2%-Ø	Ò&ð%-à	ÒLð%-ð 
Ò:ð%-ð 
Ò:ð	%-ð
 
Ò,ð%-ð 
Ò@ð%-ð 
Ò@ð%-ð 
Ò ð%-ð 
ÒHð%-ð 
Ò;ð%-ð 
Ò:ð%-ð 
Ò>ð%-ð 
Ò8ð%-ð 
ÒNð%-ð 
Ò2ð%-ð  
Ò,ð!%-ð" 
Ò4ð#%-ð$ 
ò ð  
ÒTØ	Ò4Ø	Ò ñI%-Ð Ð)ó %ðNVEØ	ØÐMØÐNØÐJØÐKØÐKððVEð 
ØÐKØÐMØÐKØÐLØÐLØÐKØÐJØÐJØÐKØÐKØÐMððVEð* 
ØÐJØÐLØÐMØÐKØÐLØÐKØÐKØÐIð	ð+VEð> 
ØÐLØÐNØÐKØÐKØÐMØÐLØÐLØÐLð	ð?VEðR 
ØÐIØÐOØÐLØÐLØÐJØÐJððSVEðb 
ØÐKØÐKØÐJØÐJØÐNØÐKØÐNØÐMØÐKð
ðcVEðx 
ØÐJØÐMØÐKØÐHØÐLØÐLØÐKØÐMØÐLð
ðyVEðN 
ØÐMØÐMØÐLØÐIð	ðOVEðZ 
ØÐJØÐMØÐKØÐLØÐMØÐNØÐKØÐLØÐKØÐMðð[VEðr 
ØÐLØÐOØÐKØÐKØÐMØÐMØÐOØÐKð	ðsVEðF 
ØÐLØÐMØÐJØÐIØÐNØÐLØÐLØÐLð	ðGVEðZ 
ØÐJØÐKØÐJØÐHØÐLØÐNØÐKØÐLØÐLð
ð[VEðp 
ØÐLØÐMØÐHØÐIØÐMØÐMØÐLØÐLð	ðqVEðD 
ØÐKØÐLØÐKØÐGØÐLØÐLØÐLØÐMØÐLØÐMØÐJððEVEð^ 
ØÐJØÐNØÐKØÐJØÐLØÐLØÐMðð_VEðp 
ØÐIØÐOØÐHØÐJØÐMØÐLððqVEð@ 
ØÑJØÑNØÑJØÑLØÑLØÑKØÑLððAVEðR 
ØÑGØÑJØÑKØÑJØÑIØÑMØÑOØÑMØÑMØÑKØÑLØÑNØÑLØÑNðð  
ØÑKØÑJØÑKØÑKØÑOØÑMØÑLØÑMØÑMØÑLØÑJØÑIðð 
ØÑJØÑMØÑJØÑJØÑKØÑNØÑMðð 
Ø‰_Ø‰oØ‰_Ø‰_ð	ñaVE€ÐAó Vñt �1Ù�AÙ�Að5Ð Ð1ó ð 36°q¸#¸qÀ#ÀqÈ#ÈrÐ1RÐ  Ó Rõ<÷
fGð fGðT D_×CdÑCdÔCfÔ'gÑCf±i°e¨ª	ÑCfÒ'gÐ �nÓ gØ-2Ð Ð)Ñ *ð S€õYõ
Eõõ2a÷
P ò P ùói (hs   Í"N"