
    k7i                     h    S SK r S SKrS SKrSS jrSS jrSS jrS rSS jrS rS r	S	 r
S
 rS rg)    Nc                    U c  g [        U [        5      (       a  U $ [        U [        5      (       a  U R                  X5      $ [        U [        [
        45      (       a  [        U 5      R                  X5      $ [        U 5      $ N)
isinstancebytesstrencodeintfloatxcharseterrorss      Q/home/james-whalen/.local/lib/python3.13/site-packages/authlib/common/encoding.pyto_bytesr      se    y!U!Sxx((!c5\""1v}}W--8O    c                     U b  [        U [        5      (       a  U $ [        U [        5      (       a  U R                  X5      $ [        U 5      $ r   )r   r   r   decoder   s      r   
to_unicoder      s=    yJq#&&!Uxx((q6Mr   c                 R    [        U [        5      (       a  U $ U R                  U5      $ r   )r   r   r   )r   encodings     r   	to_nativer      s#    !S88Hr   c                 .    [         R                  " U 5      $ r   )jsonloadsss    r   
json_loadsr       s    ::a=r   c                 ,    [         R                  " XSS9$ )N),:)ensure_ascii
separators)r   dumps)datar!   s     r   
json_dumpsr%   $   s    ::d*MMr   c                 X    U S[        U 5      * S-  -  -  n [        R                  " U 5      $ )N   =   )lenbase64urlsafe_b64decoder   s    r   r+   r+   (   s,    #a&1	A##A&&r   c                 L    [         R                  " U 5      R                  S5      $ )Nr'   )r*   urlsafe_b64encoderstripr   s    r   r-   r-   -   s    ##A&--d33r   c           	          [        [        U SS95      n[        R                  " [	        U5       S3U5      n[        SR                  U Vs/ s H  o3S PM     sn5      S5      $ s  snf )Nascii)r   B 02x   )r+   r   structunpackr)   r	   join)r   r$   bufbytes       r   base64_to_intr:   1   sY    Xa9:D
--3t9+Q
.Crww#6#$*#67<<6s   A$c                     U S:  a  [        S5      eU R                  U R                  5       S-   S-  SSS9n[        [	        U5      5      $ )Nr   zMust be a positive integer      bigF)signed)
ValueErrorr   
bit_lengthr   r-   )numr   s     r   int_to_base64rC   7   sK    
Qw566cnn&*q0%FA'*++r   c                 j    [        U [        5      (       a  [        U 5      n [        [	        U 5      5      $ r   )r   dictr%   r-   r   )texts    r   json_b64encoderG   ?   s(    $$Xd^,,r   )zutf-8strict)r0   )F)r*   r   r5   r   r   r   r   r%   r+   r-   r:   rC   rG    r   r   <module>rJ      sA      	N'
4=,-r   