+
     h  c                  s  a  0 t $ R t^ RIHt ^ RIt^ RIHtHtHtH	t	 ]
],          ],          ],          ]	],          ,          ]]]3,          ,          tR'R R lltR R ltR R	 ltR
 tR R ltR R ltR R lt]]3]
]3]]3]]3]]3]	]3.tR]R&   R R ltR R ltR R ltR R ltR R ltR R ltR R  lt^ ]^]^]^]^]^]^]/tR! R" lt R# R$ lt!R% R& lt"R# )(z
Minimal CBOR implementation supporting a subset of functionality and types
required for FIDO 2 CTAP.

Use the :func:`encode`, :func:`decode` and :func:`decode_from` functions to encode
and decode objects to/from CBOR.
)annotationsN)AnyCallableMappingSequencec               s$    V ^8  d   QhRRRRRR/# )   dataintmtreturnbytes Zformat   "//usr/lib/python3.14/site-packages/fido2/cbor.py__annotate__r   -   s!      C S      c                s   V ^ 8  d   ^pRV ,
          p V^,          pV ^8:  d   RW,          3pMHV ^8:  d   RV^,          V 3pM4V R8:  d   RV^,          V 3pM V R8:  d   RV^,          V 3pMRV^,          V 3p\         P                  ! V!  # )	    z>Bz>BBi  z>BHl    z>BIz>BQ)structZpack)r   r   Zargs   && r   	_dump_intr   -   s    axDy	qBrz29%	rBw%	rBw%		rBw%rBw%;;r   c                    V ^8  d   QhRRRR/# )r   r   boolr	   r
   r   r   r   r   r   r   @   s     ( (T (e (r   c                s    V '       d   R # R# )s   s   r   r      &r   
_dump_boolr   @   s    7''r   c               r   )r   r   zSequence[CborType]r	   r
   r   r   r   r   r   r   D   s     L L' LE Lr   c           	     s    \        \        V 4      ^R7      RP                  V  Uu. uF  p\        V4      NK  	  up4      ,           # u upi )   r   r   )r   lenjoinencode)r   Zx   & r   
_dump_listr!   D   s7    SY1%T1JT&)T1J(KKK1Js   A
c                s>    V ^ ,          pV^ ,          \        V4      V3# r   )r   )Zentrykeyr    r   
_sort_keysr$   H   s     
(Cq63s8S  r   c               r   )r   r   zMapping[CborType, CborType]r	   r
   r   r   r   r   r   r   M   s     O O0 OU Or   c           	     s@   V P                  4        UUu. uF  w  r\        V4      \        V4      3NK  	  pppVP                  \        R 7       \	        \        V4      ^R7      RP                  V UUu. uF  w  rW,           NK  	  upp4      ,           # u uppi u uppi ))r#   r   r   )itemsr   Zsortr$   r   r   r   )r   kvr%   s   &   r   
_dump_dictr(   M   su    04

=fQi#E=	JJ:JSZA&u2MuVa155u2M)NNN >2Ms   !B3Bc               s     V ^8  d   QhRRRR/# )r   r   r
   r	   r   r   r   r   r   r   S   s     - -e - -r   c                s<    \        \        V 4      ^R7      V ,           # )r   r   )r   r   r   r   r   _dump_bytesr)   S   s    SY1%,,r   c               r   )r   r   strr	   r
   r   r   r   r   r   r   W   s     9 9S 9U 9r   c                s^    V P                  R 4      p\        \        V4      ^R7      V,           # )utf8r   )r   r   r   )r   Z
data_bytesr    r   
_dump_textr,   W   s&    V$JS_+j88r   z-Sequence[tuple[type, Callable[[Any], bytes]]]_SERIALIZERSc               $    V ^8  d   QhRRRRRR/# r   air   r   r
   r	   ztuple[int, bytes]r   r   r   r   r   r   f   s"     7 7# 7U 7'8 7r   c                sr   V ^8  d   W3# V ^8X  d   V^ ,          VR,          3# V ^8X  d(   \         P                  ! RV4      ^ ,          VR,          3# V ^8X  d(   \         P                  ! RV4      ^ ,          VR,          3# V ^8X  d(   \         P                  ! RV4      ^ ,          VR,          3# \        R4      h)	i      NNz>H:r   NNz>I:r   NNz>Q:i   NNzInvalid additional information)r   Zunpack_from
ValueErrorr0   r      &&r   	_load_intr6   f   s    	Bwx	rAwR  	r!!$-a0$r(::	r!!$-a0$r(::	r!!$-a0$r(::
5
66r   c               r.   r/   r   r   r   r   r   r   t   s"      3 e (9 r   c                s2    \        W4      w  r#RV,
          V3# )r2   r   r6   )r0   r   valrest   &&  r   
_load_nintr;   t   s    "#IC8T>r   c               r.   )r   r0   r   r   r
   r	   ztuple[bool, bytes]r   r   r   r   r   r   y   s"      3 e (: r   c                s    V ^8H  V3# )i   r   r4   r5   r   
_load_boolr<   y   s    8T>r   c               r.   )r   r0   r   r   r
   r	   ztuple[bytes, bytes]r   r   r   r   r   r   }   s"        C  u  )<  r   c                s.    \        W4      w  r!VR V WR  3# Nr7   )r0   r   lnr   r   _load_bytesr?   }   s#    "HB9d3ir   c               r.   )r   r0   r   r   r
   r	   ztuple[str, bytes]r   r   r   r   r   r      s"     $ $3 $e $(9 $r   c                sB    \        W4      w  r#VP                  R 4      V3# )r+   )r?   decode)r0   r   Zencr9   r:   r   
_load_textrA      s"    B%IC::ft##r   c               r.   )r   r0   r   r   r
   r	   z tuple[Sequence[CborType], bytes]r   r   r   r   r   r      s"      C u )I r   c                s    \        W4      w  r!. p\        V4       F!  p\        V4      w  rQVP                  V4       K#  	  W13# r=   )r6   rangedecode_fromZappend)r0   r   r>   valuesir8   s   &&    r   _load_arrayrF      sC    "HBF2Y%	c  <r   c               r.   )r   r0   r   r   r
   r	   z)tuple[Mapping[CborType, CborType], bytes]r   r   r   r   r   r      s"      # U 'P r   c                s    \        W4      w  r!/ p\        V4       F!  p\        V4      w  rQ\        V4      w  raWcV&   K#  	  W13# r=   )r6   rB   rC   )r0   r   r>   rD   rE   r&   r'   s   &&     r   	_load_maprG      sJ    "HBF2Yd#d#q	  <r   c               r   )r   r   CborTyper	   r
   r   r   r   r   r   r      s     5 5 5e 5r   c                st    \          F   w  r\        W4      '       g   K  V! V 4      u # 	  \        RV : 24      h)z#Encodes data to a CBOR byte string.zUnsupported value: )r-   Z
isinstancer3   )r   r&   r'      &  r   r   r      s7    dT7N  *4(3
44r   c               r   )r   r   r
   r	   ztuple[Any, bytes]r   r   r   r   r   r      s     ; ;e ; 1 ;r   c                sf    V ^ ,          p\         V^,	          ,          ! V^,          V R,          4      # )zDecodes a CBOR-encoded value from the start of a byte string.

Additional data after a valid CBOR object is returned as well.

:return: The decoded object, and any remaining data.r1   )_DESERIALIZERS)r   Zfbr    r   rC   rC      s+     
aB"'"2<b::r   c               s    V ^8  d   QhRR/# )r   r	   rH   r   r   r   r   r   r      s      H r   c                sD    \        V 4      w  rVR8w  d   \        R4      hV# )zmDecodes data from a CBOR-encoded byte string.

Also validates that no extra data follows the encoded object.
r   zExtraneous data)rC   r3   )r   Zvaluer9   rI   r   r@   r@      s(    
 d#KEs{*++Lr   r"   )#__conditional_annotations__Z__doc__Z
__future__r    r   Ztypingr   r   r   r   r   r   r*   r
   rH   r   r   r!   r$   r(   r)   r,   r-   Z__annotations__r6   r;   r<   r?   rA   rF   rG   rJ   r   rC   r@   )rK   s   @r   <module>rL      s  : #  3 3:e#hsm3gc3h6GG&(L!
O-9 
:)*
Kjz?; 7
 
$
 yz{z{yz5;r   