Ë
    V.j3  ã                   óæ  — 	 d dl Zd dlZd dlZddlmZmZmZmZm	Z	m
Z
 ddlmZmZmZ ddlmZ ddlmZ  G d„ dej&                  «      Z G d	„ d
ej&                  «      Zej,                  j/                  deeD � cg c]  } | j0                  ‘Œ c} ¬«      d„ «       Zej,                  j/                  deeD � cg c]  } | j0                  ‘Œ c} ¬«      d„ «       Zej,                  j/                  deeD � cg c]  } | j0                  ‘Œ c} ¬«      d„ «       Zej,                  j/                  deeD � cg c]  } | j0                  ‘Œ c} ¬«      d„ «       Zy# e$ r d dlZY �ŒUw xY wc c} w c c} w c c} w c c} w )é    Né   )ÚCurveÚNIST256pÚcurvesÚUnknownCurveErrorÚPRIME_FIELD_OIDÚcurve_by_name)ÚCurveFpÚPointJacobiÚ	CurveEdTw)Úder)Únumber_to_stringc                   ó¦   — e Zd Zed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestParameterEncodingc                 ó   — d| _         y )Na0  MIHgAgEBMCwGByqGSM49AQECIQD/////AAAAAQAAAAAAAAAAAAAAAP///////////////zBEBCD/////AAAAAQAAAAAAAAAAAAAAAP///////////////AQgWsY12Ko6k+ez671VdpiGvGUdBrDMU7D2O848PifSYEsEQQRrF9Hy4SxCR/i85uVjpEDydwN9gS3rM6D0oTlF2JjClk/jQuL+Gn+bjufrSnwPnhYrzjNXazFezsu2QGg3v1H1AiEA/////wAAAAD//////////7zm+q2nF56E87nKwvxjJVECAQE=)Úbase64_params)Úclss    úSC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\ecdsa/test_curves.pyÚ
setUpClassz TestParameterEncoding.setUpClass   s   € ð
Cð 	Õó    c                 ó^   — d}t        j                  |«      }| j                  |t        «       y )Náo  -----BEGIN EC PARAMETERS-----
MIHgAgEBMCwGByqGSM49AQECIQD/////AAAAAQAAAAAAAAAAAAAAAP/////////
//////zBEBCD/////AAAAAQAAAAAAAAAAAAAAAP///////////////AQgWsY12K
o6k+ez671VdpiGvGUdBrDMU7D2O848PifSYEsEQQRrF9Hy4SxCR/i85uVjpEDyd
wN9gS3rM6D0oTlF2JjClk/jQuL+Gn+bjufrSnwPnhYrzjNXazFezsu2QGg3v1H1
AiEA/////wAAAAD//////////7zm+q2nF56E87nKwvxjJVECAQE=
-----END EC PARAMETERS-----
)r   Úfrom_pemÚassertIsr   )ÚselfÚ
pem_paramsÚcurves      r   Útest_from_pemz#TestParameterEncoding.test_from_pem"   s*   € ð,ð 	ô —‘˜zÓ*ˆà�‰�eœXÕ&r   c                 óè   — d}| j                  t        j                  «      5 }t        j                  |dg«       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)Nr   Únamed_curvezexplicit curve parameters not©ÚassertRaisesr   ÚUnexpectedDERr   r   ÚassertInÚstrÚ	exception©r   r   Úes      r   Ú2test_from_pem_with_explicit_when_explicit_disabledzHTestParameterEncoding.test_from_pem_with_explicit_when_explicit_disabled0   s\   € ð,ð 	ð ×Ñœs×0Ñ0Ô1°QÜ�N‰N˜:¨ Ô7÷ 2ð 	�‰Ð5´s¸1¿;¹;Ó7GÕH÷ 2Ð1úó   ¢A(Á(A1c                 óè   — d}| j                  t        j                  «      5 }t        j                  |dg«       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)NzK-----BEGIN EC PARAMETERS-----
BggqhkjOPQMBBw==
-----END EC PARAMETERS-----
Úexplicitz named_curve curve parameters notr!   r'   s      r   Ú8test_from_pem_with_named_curve_with_named_curve_disabledzNTestParameterEncoding.test_from_pem_with_named_curve_with_named_curve_disabled?   s\   € ð,ð 	ð
 ×Ñœs×0Ñ0Ô1°QÜ�N‰N˜:¨
 |Ô4÷ 2ð 	�‰Ð8¼#¸a¿k¹kÓ:JÕK÷ 2Ð1úr*   c                 óä   — d}| j                  t        j                  «      5 }t        j                  |«       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)Nai  -----BEGIN PARAMETERS-----
MIHgAgEBMCwGByqGSM49AQECIQD/////AAAAAQAAAAAAAAAAAAAAAP/////////
//////zBEBCD/////AAAAAQAAAAAAAAAAAAAAAP///////////////AQgWsY12K
o6k+ez671VdpiGvGUdBrDMU7D2O848PifSYEsEQQRrF9Hy4SxCR/i85uVjpEDyd
wN9gS3rM6D0oTlF2JjClk/jQuL+Gn+bjufrSnwPnhYrzjNXazFezsu2QGg3v1H1
AiEA/////wAAAAD//////////7zm+q2nF56E87nKwvxjJVECAQE=
-----END PARAMETERS-----
zPARAMETERS PEM headerr!   r'   s      r   Útest_from_pem_with_wrong_headerz5TestParameterEncoding.test_from_pem_with_wrong_headerJ   sX   € ð)ð 	ð ×Ñœs×0Ñ0Ô1°QÜ�N‰N˜:Ô&÷ 2ð 	�‰Ð-¬s°1·;±;Ó/?Õ@÷ 2Ð1ús   ¢A&Á&A/c                 óT   — d}t        j                  «       }| j                  ||«       y )NsK   -----BEGIN EC PARAMETERS-----
BggqhkjOPQMBBw==
-----END EC PARAMETERS-----
)r   Úto_pemÚassertEqual)r   r   Úencodings      r   Útest_to_pemz!TestParameterEncoding.test_to_pemY   s*   € ð-ð 	ô
 —?‘?Ó$ˆà×Ñ˜ XÕ.r   c                 ó0   — | j                  t        d«       y )Né   )ÚassertNotEqualr   )r   s    r   Ú"test_compare_with_different_objectz8TestParameterEncoding.test_compare_with_different_objectc   s   € Ø×ÑœH cÕ*r   c                 óP   — t        j                  «       }| j                  d|«       y )Ns
   *†HÎ=©r   Úto_derr2   ©r   Úencodeds     r   Útest_named_curve_params_derz1TestParameterEncoding.test_named_curve_params_derf   s!   € Ü—/‘/Ó#ˆð 	×ÑÐDÀgÕNr   c                 óz   — t        j                  «       }t        j                  d«      }| j                  ||«       y ©Nr    r:   )r   Úencoded_defaultÚencoded_nameds      r   Ú+test_verify_that_default_is_named_curve_derzATestParameterEncoding.test_verify_that_default_is_named_curve_derl   s,   € Ü"Ÿ/™/Ó+ˆÜ Ÿ™¨Ó6ˆà×Ñ˜¨-Õ8r   c                 óž   — t        j                  d«      }| j                  |t        t	        j
                  | j                  «      «      «       y ©Nr,   )r   r;   r2   ÚbytesÚbase64Ú	b64decoder   r<   s     r   Ú test_encoding_to_explicit_paramsz6TestParameterEncoding.test_encoding_to_explicit_paramsr   s6   € Ü—/‘/ *Ó-ˆà×Ñ˜¤%¬×(8Ñ(8¸×9KÑ9KÓ(LÓ"MÕNr   c                 óÌ   — | j                  t        «      5 }t        j                  d«       d d d «       | j	                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)NÚunsupportedzOnly 'named_curve')r"   Ú
ValueErrorr   r;   r$   r%   r&   ©r   r(   s     r   Ú!test_encoding_to_unsupported_typez7TestParameterEncoding.test_encoding_to_unsupported_typew   sF   € Ø×ÑœzÔ*¨aÜ�O‰O˜MÔ*÷ +ð 	�‰Ð*¬C°·±Ó,<Õ=÷ +Ð*ús   –AÁA#c                 ó�   — t        j                  dd«      }d}| j                  |t        t	        j
                  |«      «      «       y )Nr,   Ú
compresseda  MIHAAgEBMCwGByqGSM49AQECIQD/////AAAAAQAAAAAAAAAAAAAAAP///////////////zBEBCD/////AAAAAQAAAAAAAAAAAAAAAP///////////////AQgWsY12Ko6k+ez671VdpiGvGUdBrDMU7D2O848PifSYEsEIQNrF9Hy4SxCR/i85uVjpEDydwN9gS3rM6D0oTlF2JjClgIhAP////8AAAAA//////////+85vqtpxeehPO5ysL8YyVRAgEB)r   r;   r2   rF   rG   rH   )r   r=   Úcompressed_base_points      r   Ú+test_encoding_to_explicit_compressed_paramszATestParameterEncoding.test_encoding_to_explicit_compressed_params}   sB   € Ü—/‘/ *¨lÓ;ˆðð 	ð 	×ÑØ”Uœ6×+Ñ+Ð,AÓBÓCõ	
r   c                 ó–   — d}t        j                  t        t        j                  |«      «      «      }| j                  t        |«       y )NaP  MIH3AgEBMCwGByqGSM49AQECIQD/////AAAAAQAAAAAAAAAAAAAAAP///////////////zBbBCD/////AAAAAQAAAAAAAAAAAAAAAP///////////////AQgWsY12Ko6k+ez671VdpiGvGUdBrDMU7D2O848PifSYEsDFQDEnTYIhucEk2pmeOETnSa3gZ9+kARBBGsX0fLhLEJH+Lzm5WOkQPJ3A32BLeszoPShOUXYmMKWT+NC4v4af5uO5+tKfA+eFivOM1drMV7Oy7ZAaDe/UfUCIQD/////AAAAAP//////////vOb6racXnoTzucrC/GMlUQIBAQ==)r   Úfrom_derrF   rG   rH   r2   r   )r   Úp256_explicitÚdecodeds      r   Ú#test_decoding_explicit_from_opensslz9TestParameterEncoding.test_decoding_explicit_from_opensslŒ   s<   € ðð 	ô —.‘.¤¤v×'7Ñ'7¸Ó'FÓ!GÓHˆà×Ñœ 7Õ+r   c                 ó¦   — t        j                  t        t        j                  | j
                  «      «      «      }| j                  |t        «       y ©N)r   rT   rF   rG   rH   r   r   r   )r   r   s     r   Ú-test_decoding_well_known_from_explicit_paramszCTestParameterEncoding.test_decoding_well_known_from_explicit_paramsœ   s4   € Ü—‘œu¤V×%5Ñ%5°d×6HÑ6HÓ%IÓJÓKˆà�‰�eœXÕ&r   c                 óÐ   — | j                  t        «      5 }t        j                  ddg«       d d d «       | j	                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)Nr   Ú
explicitCAzOnly named_curve)r"   rL   r   rT   r$   r%   r&   rM   s     r   Ú,test_decoding_with_incorrect_valid_encodingszBTestParameterEncoding.test_decoding_with_incorrect_valid_encodings¡   sJ   € Ø×ÑœzÔ*¨aÜ�N‰N˜3  Ô/÷ +ð 	�‰Ð(¬#¨a¯k©kÓ*:Õ;÷ +Ð*ús   –AÁA%c                 ó¾   — t        ddd«      }t        |ddddd¬«      }t        |dd	ddd¬«      }t        d
||d «      }t        d
||d «      }| j                  ||«       y )Né   r   é   é   é   é	   T©Ú	generatoré   Úunknown)r
   r   r   r7   )r   Úcurve_fpÚbase_aÚbase_bÚcurve_aÚcurve_bs         r   Ú-test_compare_curves_with_different_generatorszCTestParameterEncoding.test_compare_curves_with_different_generators§   sh   € Ü˜2˜q !Ó$ˆÜ˜X r¨1¨a°¸dÔCˆÜ˜X q¨"¨a°¸dÔCˆä˜	 8¨V°TÓ:ˆÜ˜	 8¨V°TÓ:ˆà×Ñ˜G WÕ-r   c                 ó*  — t        ddd«      }t        |ddddd¬«      }t        d	||d «      }|j                  «       }t        j                  |«      }| j                  ||«       d
}| j                  |t        t        j                  |«      «      «       y )Nr_   r   r`   ra   rb   rc   Trd   rg   z0MCECAQEwDAYHKoZIzj0BAQIBFzAGBAEBBAEHBAMEDQMCAQk=)	r
   r   r   r;   rT   r2   rF   rG   rH   )r   rh   Ú
base_pointr   r=   rV   Úexpecteds          r   Ú$test_default_encode_for_custom_curvez:TestParameterEncoding.test_default_encode_for_custom_curve±   s‚   € Ü˜2˜q !Ó$ˆÜ  ¨2¨q°!°QÀ$ÔGˆ
ä�i ¨:°tÓ<ˆà—,‘,“.ˆä—.‘. Ó)ˆà×Ñ˜ Ô(àEˆà×Ñ˜¤%¬×(8Ñ(8¸Ó(BÓ"CÕDr   c                 ó  — t        ddd«      }t        |ddddd¬«      }t        d	||d «      }| j                  t        «      5 }|j                  d
«       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)Nr_   r   r`   ra   rb   rc   Trd   rg   r    zCan't encode curve)	r
   r   r   r"   r   r;   r$   r%   r&   )r   rh   ro   r   r(   s        r   Ú(test_named_curve_encode_for_custom_curvez>TestParameterEncoding.test_named_curve_encode_for_custom_curveÁ   sy   € Ü˜2˜q !Ó$ˆÜ  ¨2¨q°!°QÀ$ÔGˆ
ä�i ¨:°tÓ<ˆà×ÑÔ0Ô1°QØ�L‰L˜Ô'÷ 2ð 	�‰Ð*¬C°·±Ó,<Õ=÷ 2Ð1ús   ÁBÂBc                 óö   — d}| j                  t        «      5 }t        j                  t	        j
                  |«      «       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)NzÈMIGRAgEBMBwGByqGSM49AQIwEQIBcQYJKoZIzj0BAgMCAgEJMDkEDwAwiCUMpufH/mSc6Fgg9wQPAOi+5NPiJgdEGIvg6ccjAxUAEOcjqxTWluZ2h1YVF1b+v4/LSakEHwQAnXNhbzX0qxQH1zViwQ8ApSgwJ3lY7oTRMV7TGIYCDwEAAAAAAAAA2czsijnlbwIBAg==z#Characteristic 2 curves unsupported)	r"   r   r   rT   rG   rH   r$   r%   r&   )r   Úsect113r1_explicitr(   s      r   Ú!test_try_decoding_binary_explicitz7TestParameterEncoding.test_try_decoding_binary_explicitÌ   s_   € ðð 	ð ×ÑÔ0Ô1°QÜ�N‰Nœ6×+Ñ+Ð,>Ó?Ô@÷ 2ð 	�‰Ð;¼SÀÇÁÓ=MÕN÷ 2Ð1ús   ˜)A/Á/A8c                 óL  — t        j                  t        j                  Ž t        j                  d«      z   }| j                  t         j                  «      5 }t        j                  |«       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)Nr   zUnexpected data after OID)r   Ú
encode_oidr   ÚoidÚencode_integerr"   r#   r   rT   r$   r%   r&   ©r   Úbad_derr(   s      r   Ú!test_decode_malformed_named_curvez7TestParameterEncoding.test_decode_malformed_named_curveÙ   sn   € Ü—.‘.¤(§,¡,Ð/´#×2DÑ2DÀQÓ2GÑGˆà×Ñœs×0Ñ0Ô1°QÜ�N‰N˜7Ô#÷ 2ð 	�‰Ð1´3°q·{±{Ó3CÕD÷ 2Ð1ús   ÁBÂB#c                 ó\  — t        t        j                  | j                  «      «      t	        j
                  d«      z   }| j                  t        j                  «      5 }t        j                  |«       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)Nr   z"Unexpected data after ECParameters)rF   rG   rH   r   r   rz   r"   r#   r   rT   r$   r%   r&   r{   s      r   Ú4test_decode_malformed_explicit_garbage_after_ECParamzJTestParameterEncoding.test_decode_malformed_explicit_garbage_after_ECParamá   s   € ÜÜ×Ñ˜T×/Ñ/Ó0ó
ä×Ñ˜qÓ!ñ"ˆð ×Ñœs×0Ñ0Ô1°QÜ�N‰N˜7Ô#÷ 2ð 	�‰Ð:¼CÀÇÁÓ<LÕM÷ 2Ð1ús   ÁB"Â"B+c                 ó0  — t        j                  t        j                  d«      «      }| j                  t         j                  «      5 }t        j                  |«       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)Né   z!Unknown parameter encoding format)
r   Úencode_sequencerz   r"   r#   r   rT   r$   r%   r&   r{   s      r   Ú,test_decode_malformed_unknown_version_numberzBTestParameterEncoding.test_decode_malformed_unknown_version_numberë   sg   € Ü×%Ñ%¤c×&8Ñ&8¸Ó&;Ó<ˆà×Ñœs×0Ñ0Ô1°QÜ�N‰N˜7Ô#÷ 2ð 	�‰Ð9¼3¸q¿{¹{Ó;KÕL÷ 2Ð1ús   ÁBÂBc                 ó¨  — t         j                  j                  «       }t        j                  t        j
                  d«      t        j                  t        j                  ddd«      t        j
                  |«      «      t        j                  t        j                  t        t         j                  j                  «       |z  |«      «      t        j                  t        t         j                  j                  «       |«      «      «      t        j                  t         j                  j                  d«      «      t        j
                  t         j                  j                  «       «      «      }| j                  t        «      5 }t!        j"                  |«       d d d «       | j%                  dt'        j(                  «      «       y # 1 sw Y   Œ/xY w)Nr   r�   rb   ÚuncompressedzUnknown field type: (1, 2, 3))r   r   Úpr   r‚   rz   rx   Úencode_octet_stringr   ÚaÚbre   Úto_bytesÚorderr"   r   r   rT   r$   r%   r&   ©r   Úcurve_pr|   r(   s       r   Ú(test_decode_malformed_unknown_field_typez>TestParameterEncoding.test_decode_malformed_unknown_field_typeó   sH  € Ü—.‘.×"Ñ"Ó$ˆÜ×%Ñ%Ü×Ñ˜qÓ!Ü×ÑÜ—‘˜q ! QÓ'¬×);Ñ);¸GÓ)Dóô ×ÑÜ×'Ñ'Ü$¤X§^¡^×%5Ñ%5Ó%7¸'Ñ%AÀ7ÓKóô ×'Ñ'Ü$¤X§^¡^×%5Ñ%5Ó%7¸ÓAóó	ô ×#Ñ#Ü×"Ñ"×+Ñ+¨NÓ;óô ×Ñœx×1Ñ1×7Ñ7Ó9Ó:ó!
ˆð& ×ÑÔ0Ô1°QÜ�N‰N˜7Ô#÷ 2ð 	�‰Ð5´s¸1¿;¹;Ó7GÕH÷ 2Ð1ús   ÆGÇGc                 óâ  — t         j                  j                  «       }t        j                  t        j
                  d«      t        j                  t        j                  t        Ž t        j
                  |«      t        j
                  d«      «      t        j                  t        j                  t        t         j                  j                  «       |z  |«      «      t        j                  t        t         j                  j                  «       |«      «      «      t        j                  t         j                  j                  d«      «      t        j
                  t         j                  j                  «       «      «      }| j                  t        j                   «      5 }t#        j$                  |«       d d d «       | j'                  dt)        j*                  «      «       y # 1 sw Y   Œ/xY w)Nr   r…   zPrime-p element)r   r   r†   r   r‚   rz   rx   r   r‡   r   rˆ   r‰   re   rŠ   r‹   r"   r#   r   rT   r$   r%   r&   rŒ   s       r   Ú)test_decode_malformed_garbage_after_primez?TestParameterEncoding.test_decode_malformed_garbage_after_prime  sX  € Ü—.‘.×"Ñ"Ó$ˆÜ×%Ñ%Ü×Ñ˜qÓ!Ü×ÑÜ—‘¤Ð0Ü×"Ñ" 7Ó+Ü×"Ñ" 1Ó%óô
 ×ÑÜ×'Ñ'Ü$¤X§^¡^×%5Ñ%5Ó%7¸'Ñ%AÀ7ÓKóô ×'Ñ'Ü$¤X§^¡^×%5Ñ%5Ó%7¸ÓAóó	ô ×#Ñ#Ü×"Ñ"×+Ñ+¨NÓ;óô ×Ñœx×1Ñ1×7Ñ7Ó9Ó:ó%
ˆð* ×Ñœs×0Ñ0Ô1°QÜ�N‰N˜7Ô#÷ 2ð 	�‰Ð'¬¨Q¯[©[Ó)9Õ:÷ 2Ð1ús   Æ!G%Ç%G.N)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr   r   r)   r-   r/   r4   r8   r>   rC   rI   rN   rR   rW   rZ   r]   rm   rq   rs   rv   r}   r   rƒ   rŽ   r�   © r   r   r   r      s’   „ Øñ	
ó ð	
ò'òIò	LòAò/ò+òOò9òOò
>ò
ò,ò 'ò
<ò.òEò 	>òOòEòNòMòIó4;r   r   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestCurveSearchingc                 óF   — t        d«      }| j                  |t        «       y )Nr   ©r	   r   r   ©r   Úcs     r   Útest_correct_namez$TestCurveSearching.test_correct_name+  s   € Ü˜*Ó%ˆØ�‰�aœÕ"r   c                 óF   — t        d«      }| j                  |t        «       y )NÚ
prime256v1r™   rš   s     r   Útest_openssl_namez$TestCurveSearching.test_openssl_name/  s   € Ü˜,Ó'ˆØ�‰�aœÕ"r   c                 ó¸   — | j                  t        «      5 }t        d«       d d d «       | j                  dt	        j
                  «      «       y # 1 sw Y   Œ/xY w)Nzfoo barzFname 'foo bar' unknown, only curves supported: ['NIST192p', 'NIST224p'©r"   r   r	   r$   r%   r&   rM   s     r   Útest_unknown_curvez%TestCurveSearching.test_unknown_curve3  sH   € Ø×ÑÔ0Ô1°QÜ˜)Ô$÷ 2ð 	�‰ð&ä�—‘Óõ	
÷ 2Ð1úó   –AÁAc                 ó¸   — | j                  t        «      5 }t        d «       d d d «       | j                  dt	        j
                  «      «       y # 1 sw Y   Œ/xY w)NzAname None unknown, only curves supported: ['NIST192p', 'NIST224p'r¡   rM   s     r   Útest_with_None_as_parameterz.TestCurveSearching.test_with_None_as_parameter=  sH   € Ø×ÑÔ0Ô1°QÜ˜$Ô÷ 2ð 	�‰ð&ä�—‘Óõ	
÷ 2Ð1úr£   N)r‘   r’   r“   rœ   rŸ   r¢   r¥   r•   r   r   r—   r—   *  s   „ ò#ò#ò
ó
r   r—   r   )Úidsc                 óZ   — t        j                  | j                  d«      «      }| |k(  sJ ‚y r@   ©r   rT   r;   ©r   Úrets     r   Ú%test_curve_params_encode_decode_namedr«   H  s%   € ä
�.‰.˜Ÿ™ mÓ4Ó
5€Cà�CŠ<Ð‰<r   c                 ó  — t        | j                  t        «      r4t        j                  t
        «      5  | j                  d«       d d d «       y t        j                  | j                  d«      «      }| |k(  sJ ‚y # 1 sw Y   y xY wrE   ©	Ú
isinstancer   r   ÚpytestÚraisesr   r;   r   rT   r©   s     r   Ú(test_curve_params_encode_decode_explicitr±   O  s_   € ä�%—+‘+œyÔ)Ü�]‰]Ô,Õ-Ø�L‰L˜Ô$÷ .Ð-ô �n‰n˜UŸ\™\¨*Ó5Ó6ˆà˜Š|Ð‰|÷ .Ð-ús   ´A;Á;Bc                 óX   — t        j                  | j                  «       «      }| |k(  sJ ‚y rY   r¨   r©   s     r   Ú'test_curve_params_encode_decode_defaultr³   Z  s"   € ä
�.‰.˜Ÿ™›Ó
(€Cà�CŠ<Ð‰<r   c                 ó  — t        | j                  t        «      r5t        j                  t
        «      5  | j                  dd«       d d d «       y t        j                  | j                  dd«      «      }| |k(  sJ ‚y # 1 sw Y   y xY w)Nr,   rP   r­   r©   s     r   Ú3test_curve_params_encode_decode_explicit_compressedrµ   a  sc   € ä�%—+‘+œyÔ)Ü�]‰]Ô,Õ-Ø�L‰L˜ \Ô2÷ .Ð-ô �n‰n˜UŸ\™\¨*°lÓCÓDˆà˜Š|Ð‰|÷ .Ð-ús   ´A=Á=B)Ú	unittest2ÚunittestÚImportErrorrG   r¯   r   r   r   r   r   r	   Úellipticcurver
   r   r   Ú r   Úutilr   ÚTestCaser   r—   ÚmarkÚparametrizeÚnamer«   r±   r³   rµ   )Úis   0r   Ú<module>rÁ      sy  ððÛ ó Û ÷÷ ÷ ;Ñ :Ý Ý "ôR;˜H×-Ñ-ô R;ôj
˜×*Ñ*ô 
ð< ‡�×Ñ˜ &¹vÓ.F¹v¸!¨q¯v«v¸vÑ.FÐÓGñó Hðð ‡�×Ñ˜ &¹vÓ.F¹v¸!¨q¯v«v¸vÑ.FÐÓGñó Hðð ‡�×Ñ˜ &¹vÓ.F¹v¸!¨q¯v«v¸vÑ.FÐÓGñó Hðð ‡�×Ñ˜ &¹vÓ.F¹v¸!¨q¯v«v¸vÑ.FÐÓGñó Hñøð
 ò ÞðüòJ
 /Gùò /Gùò /Gùò /Gs)   ‚E Á9EÂ5E$Ã1E)Ä-E.Å	EÅE