§
    aÒ³g:  ã                  ó¾   — d Z ddlmZ ddlmZmZmZmZ ddlm	Z	m
Z
 ddlmZ dZ	 dd„Zdd„Zdd„Zdd„Zdd„ZeeeeegZ	  G d„ d¦  «        Z G d„ de¦  «        ZdS )z·
Stuff to translate curve segments to palette values (derived from
the corresponding code in GIMP, written by Federico Mena Quintero.
See the GIMP distribution for more information.)
é    )Úannotations)ÚlogÚpiÚsinÚsqrt)ÚIOÚCallableé   )Úo8g»½×Ùß|Û=ÚmiddleÚfloatÚposÚreturnc                ó|   — || k    r| t           k     rdS d|z  | z  S || z
  }d| z
  } | t           k     rdS dd|z  | z  z   S )Ng        ç      à?ç      ð?)ÚEPSILON©r   r   s     úR/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/PIL/GimpGradientFile.pyÚlinearr       s`   € Ø
ˆf‚}€}Ø•GÒÐØ�3à˜‘9˜vÑ%Ð%à�F‰lˆØ�v‘ˆØ•GÒÐØ�3à˜˜s™ VÑ+Ñ+Ð+ó    c                ól   — |t          d¦  «        t          t          | t          ¦  «        ¦  «        z  z  S )Nr   )r   Úmaxr   r   s     r   Úcurvedr   /   s*   € Ø•3�s‘8”8�c¥# f­gÑ"6Ô"6Ñ7Ô7Ñ7Ñ8Ð8r   c                óp   — t          t           dz  t          t          | |¦  «        z  z   ¦  «        dz   dz  S )Ng       @r   )r   r   r   r   s     r   Úsiner   3   s4   € Ý•"��s‘�b¥6¨&°#Ñ#6Ô#6Ñ6Ñ6Ñ7Ô7¸#Ñ=ÀÑDÐDr   c                óN   — t          dt          | |¦  «        dz
  dz  z
  ¦  «        S ©Nr   é   ©r   r   r   s     r   Úsphere_increasingr!   7   s)   € Ý�•v˜f cÑ*Ô*¨SÑ0°QÑ6Ñ6Ñ7Ô7Ð7r   c                óN   — dt          dt          | |¦  «        dz  z
  ¦  «        z
  S r   r    r   s     r   Úsphere_decreasingr#   ;   s)   € Ø•�c�F 6¨3Ñ/Ô/°1Ñ4Ñ4Ñ5Ô5Ñ5Ð5r   c                  ó(   — e Zd ZU dZded<   d
dd	„ZdS )ÚGradientFileNzblist[tuple[float, float, float, list[float], list[float], Callable[[float, float], float]]] | NoneÚgradienté   ÚentriesÚintr   útuple[bytes, str]c           	     ó‚  — | j         €J ‚g }d}| j         |         \  }}}}}}	t          |¦  «        D �]w}
|
|dz
  z  }||k     r|dz  }| j         |         \  }}}}}}	||k     °||z
  }|t          k     r |	dd¦  «        }n |	||z
  |z  ||z
  |z  ¦  «        }t          t	          d|d         |d         z
  |z  |d         z   z  dz   ¦  «        ¦  «        }t          t	          d|d         |d         z
  |z  |d         z   z  dz   ¦  «        ¦  «        }t          t	          d|d         |d         z
  |z  |d         z   z  dz   ¦  «        ¦  «        }t          t	          d|d         |d         z
  |z  |d         z   z  dz   ¦  «        ¦  «        }|                     ||z   |z   |z   ¦  «         �Œyd                     |¦  «        dfS )	Nr   r
   r   éÿ   r   é   r   ÚRGBA)r&   Úranger   r   r)   ÚappendÚjoin)Úselfr(   ÚpaletteÚixÚx0Úx1ÚxmÚrgb0Úrgb1ÚsegmentÚiÚxÚwÚscaleÚrÚgÚbÚas                     r   Ú
getpalettezGradientFile.getpaletteR   sø  € ØŒ}Ð(Ð(Ð(ØˆàˆØ*.¬-¸Ô*;Ñ'ˆˆB��D˜$ å�w‘”ð 	*ñ 	*ˆAØ�W˜q‘[Ñ!ˆAà�q’&�&Ø�a‘�Ø26´-ÀÔ2CÑ/��B˜˜D $¨ð �q’&�&ð �R‘ˆAà•7Š{ˆ{Ø˜  SÑ)Ô)��à˜  b¡¨A¡°°B±¸!©|Ñ<Ô<�õ •3�s˜t Aœw¨¨a¬Ñ0°EÑ9¸DÀ¼GÑCÑDÀsÑJÑKÔKÑLÔLˆAÝ•3�s˜t Aœw¨¨a¬Ñ0°EÑ9¸DÀ¼GÑCÑDÀsÑJÑKÔKÑLÔLˆAÝ•3�s˜t Aœw¨¨a¬Ñ0°EÑ9¸DÀ¼GÑCÑDÀsÑJÑKÔKÑLÔLˆAÝ•3�s˜t Aœw¨¨a¬Ñ0°EÑ9¸DÀ¼GÑCÑDÀsÑJÑKÔKÑLÔLˆAð �NŠN˜1˜q™5 1™9 q™=Ñ)Ô)Ð)Ñ)à�xŠx˜Ñ Ô  &Ð(Ð(r   )r'   )r(   r)   r   r*   )Ú__name__Ú
__module__Ú__qualname__r&   Ú__annotations__rC   © r   r   r%   r%   C   sM   € € € € € € ð 	ð ð ð ð ñ ð)ð )ð )ð )ð )ð )ð )r   r%   c                  ó   — e Zd ZdZdd„ZdS )	ÚGimpGradientFilez(File handler for GIMP's gradient format.Úfpú	IO[bytes]r   ÚNonec           	     óú  — |                      ¦   «         d d…         dk    rd}t          |¦  «        ‚|                      ¦   «         }|                     d¦  «        r&|                      ¦   «                              ¦   «         }t	          |¦  «        }g | _        t          |¦  «        D ]Ô}|                      ¦   «                              ¦   «         }d„ |d d…         D ¦   «         }|d         |d         }	}|d	         }
|d
d…         }|dd…         }t          t	          |d         ¦  «                 }t	          |d         ¦  «        }|dk    rd}t          |¦  «        ‚| j         
                    ||	|
|||f¦  «         ŒÕd S )Né   s   GIMP Gradientznot a GIMP gradient files   Name: c                ó,   — g | ]}t          |¦  «        ‘ŒS rH   )r   )Ú.0r<   s     r   ú
<listcomp>z-GimpGradientFile.__init__.<locals>.<listcomp>‡   s   € Ð*Ð*Ð*˜a•�q‘”Ð*Ð*Ð*r   é   r   r   r
   r-   é   é   zcannot handle HSV colour space)ÚreadlineÚSyntaxErrorÚ
startswithÚstripr)   r&   r/   ÚsplitÚSEGMENTSÚOSErrorr0   )r2   rK   ÚmsgÚlineÚcountr;   Úsr=   r5   r6   r7   r8   r9   r:   Úcspaces                  r   Ú__init__zGimpGradientFile.__init__v   sn  € Ø�;Š;‰=Œ=˜˜"˜ÔÐ!1Ò1Ð1Ø,ˆCÝ˜cÑ"Ô"Ð"à�{Š{‰}Œ}ˆð �?Š?˜9Ñ%Ô%ð 	)Ø—;’;‘=”=×&Ò&Ñ(Ô(ˆDå�D‘	”	ˆàˆŒå�u‘”ð 	Dð 	DˆAØ—’‘”×#Ò#Ñ%Ô%ˆAØ*Ð* 1 S b S¤6Ð*Ñ*Ô*ˆAà�q”T˜1˜Qœ4�ˆBØ�1”ˆBØ�Q�q�S”6ˆDØ�Q�r�T”7ˆDå�s 1 R¤5™zœzÔ*ˆGÝ˜˜2œ‘Z”ZˆFà˜Š{ˆ{Ø6�Ý˜c‘l”lÐ"àŒM× Ò  " b¨"¨d°D¸'Ð!BÑCÔCÐCÐCð!	Dð 	Dr   N)rK   rL   r   rM   )rD   rE   rF   Ú__doc__rb   rH   r   r   rJ   rJ   s   s4   € € € € € Ø2Ð2ðDð Dð Dð Dð Dð Dr   rJ   N)r   r   r   r   r   r   )rc   Ú
__future__r   Úmathr   r   r   r   Útypingr   r	   Ú_binaryr   r   r   r   r   r!   r#   r[   r%   rJ   rH   r   r   ú<module>rh      s_  ðð ð ð
 #Ð "Ð "Ð "Ð "Ð "à #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð à
€Ø ð,ð ,ð ,ð ,ð9ð 9ð 9ð 9ðEð Eð Eð Eð8ð 8ð 8ð 8ð6ð 6ð 6ð 6ð �F˜DÐ"3Ð5FÐG€Ø ð-)ð -)ð -)ð -)ð -)ñ -)ô -)ð -)ð`"Dð "Dð "Dð "Dð "D�|ñ "Dô "Dð "Dð "Dð "Dr   