§
    ¥”jn,  ã                   óJ   — d Z ddlmZ ddlmZ d„ Zd„ Z G d„ de¦  «        Zd	S )
zŽImplement counter styles.

These are defined in CSS Counter Styles Level 3:
https://www.w3.org/TR/css-counter-styles-3/#counter-style-system

é    )Úinfé   )Úremove_whitespacec                 ó    — | \  }}|dk    r|S dS )zCreate a string from a symbol.ÚstringÚ © )Ústring_or_urlÚtype_Úvalues      úf/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/weasyprint/css/counters.pyÚsymbolr      s"   € ð !�L€Eˆ5Ø�ÒÐØˆØˆ2ó    c                 óÊ   — t          | ¦  «        } t          | ¦  «        dk    r<| \  }|j        dk    r/|j        dv r|j        |vr|j        S d S |j        dk    r|j        S d S d S d S )Nr   Úident)ÚdecimalÚdiscÚnone)r   ÚlenÚtypeÚlower_valuer   )ÚtokensÚcounter_styleÚtokens      r   Úparse_counter_style_namer      s�   € Ý˜vÑ&Ô&€FÝ
ˆ6�{„{�aÒÐØ‰ˆØŒ:˜Ò Ð ØÔ Ð$7Ð7Ð7ØÔ$¨MÐ9Ð9Ø œ;Ð&ð :Ð9àÔ" fÒ,Ð,Ø”{Ð"ð Ðà Ð ð -Ð,r   c                   ó<   ‡ — e Zd ZdZdd„Z	 	 dd„Zd„ Zˆ fd„Zˆ xZS )	ÚCounterStylezºCounter styles dictionary.

    Keep a list of counter styles defined by ``@counter-style`` rules, indexed
    by their names.

    See https://www.w3.org/TR/css-counter-styles-3/.

    Nc           
      ó˜  — |d         dv rc|\  }}|dk    r
d}d|ff}d}nB|dk    r<d |d         |d         dk    rdnd f}t          d	„ |dd …         D ¦   «         ¦  «        }d
}|dd|ddd|ddœ	S || v rØ|€g }n||v rd S |                     |¦  «         | |                              ¦   «         }|d         r|d         \  }	}}
nd\  }	}|	r€|| v rx| |         }|d         |d<   |                     |¦  «         |d         r|d         \  }	}}
nd\  }	}|	r
||v rd\  }	}ŒT|                     ¦   «         D ]\  }}||         €|�|||<   Œn|S |	°€|S d S )Nr   )ú	symbols()r   r   )NÚcyclicN©r   r   r   Úfixedr   c              3   ó   K  — | ]}d |fV — Œ	dS )r   Nr	   )Ú.0Úarguments     r   ú	<genexpr>z/CounterStyle.resolve_counter.<locals>.<genexpr>6   s@   è è € ð  Hð  HØ-5�X˜xÐ(ð Hð  Hð  Hð  Hð  Hð  Hr   )r   ú ©)r   ú-r!   Úauto©r   r   r   r	   )	ÚsystemÚnegativeÚprefixÚsuffixÚrangeÚpadÚfallbackÚsymbolsÚadditive_symbolsr,   )NÚsymbolic)Úextendsr   )ÚtupleÚappendÚcopyÚitems)ÚselfÚcounter_nameÚprevious_typesÚcounter_typeÚ	argumentsr,   r3   r/   Úcounterr6   Ú_Úextended_counterÚnamer   s                 r   Úresolve_counterzCounterStyle.resolve_counter,   s;  € Ø˜Œ?Ð5Ð5Ð5Ø&2Ñ#ˆL˜)Ø˜xÒ'Ð'Ø/�Ø$ iÐ0Ð2�Ø'��Ø Ò,Ð,à˜) Aœ,¨Y°q¬\¸WÒ-DÐ-D¨¨È$ðP�åð  Hð  HØ9BÀ1À2À2¼ð Hñ  Hô  Hñ Hô H�à(�à Ø=Ø(Ø ØØØ%Ø"Ø$&ð
ð 
ð 
ð ˜TÐ!Ð!àÐ%Ø!#��Ø Ð/Ð/Ø�Ø×!Ò! ,Ñ/Ô/Ð/à˜<Ô(×-Ò-Ñ/Ô/ˆGØ�xÔ ð 3Ø%,¨XÔ%6Ñ"�˜  à"2‘�˜ð ð #Ø˜T�>�>Ø'+¨F¤|Ð$Ø(8¸Ô(B�G˜HÑ%Ø"×)Ò)¨&Ñ1Ô1Ð1Ø˜xÔ(ð ;Ø-4°XÔ->Ñ*˜ ¨¨à*:™˜ Øð ! 6¨^Ð#;Ð#;Ø*>™˜ Ø Ø'7×'=Ò'=Ñ'?Ô'?ð 2ð 2™˜˜eØ" 4œ=Ð0°UÐ5FØ,1˜G D™Møð2ð #�Nð! ð #ð$ ˆNðC "Ð!r   c                 óì  — |s|sJ ‚|p|                       ||¦  «        }|€d| v r|                      |d¦  «        S dS |d         r|d         \  }}}nd\  }}}|€g }n||v r|                      |d¦  «        S |                     |¦  «         |r£|| v r‡| |         }|d         |d<   |d         r|d         \  }}}nd\  }}}||v r|                      |d¦  «        S |                     |¦  «         |                     ¦   «         D ]\  }	}
||	         €|
�|
||	<   Œn|                      |d¦  «        S |°£|d         dv r$t           t          }}|dv rd	}n|d
k    rd}||ff}n|d         }|D ]\  }}||cxk    r|k    rn Œ n!Œ|                      ||d         pd|¬¦  «        S d}|dk     }|r,d„ |d         pdD ¦   «         \  }}|dv }|rt          |¦  «        }|dk    rVt          |d         ¦  «        }|d	k     r|                      |d¦  «        S |d	z
  |z  }t          |d         |         ¦  «        }�nH|dk    rƒt          |d         ¦  «        }|d	k     r|                      |d¦  «        S ||z
  }d|cxk    r|k     r n nt          |d         |         ¦  «        }�nß|                      ||d         pd|¬¦  «        S |dk    rdt          |d         ¦  «        }|d	k     r|                      |d¦  «        S |d	z
  |z  }|d	z
  |z  d	z   }t          |d         |         ¦  «        |z  }�nU|dk    ržt          |d         ¦  «        }|dk     r|                      |d¦  «        S g }|dk    rA|d	z  }|                     t          |d         ||z           ¦  «        ¦  «         ||z  }|dk    °Ad                     t          |¦  «        ¦  «        }�n±|dk    rÊ|dk    rt          |d         d         ¦  «        }�nˆg }t          |d         ¦  «        }|dk     r|                      |d¦  «        S t          |¦  «        }|dk    r<|                     t          |d         ||z           ¦  «        ¦  «         ||z  }|dk    °<d                     t          |¦  «        ¦  «        }ná|d
k    rÛ|dk    r$|d         D ]\  }}|dk    rt          |¦  «        }Œn�g }t          |d         ¦  «        d	k     r|                      |d¦  «        S |d         D ]U\  }}||z  }| 
                    t          |¦  «        g|z  ¦  «         |||z  z  }|dk    rd                     |¦  «        } nŒV|€ |                      ||d         pd|¬¦  «        S |€J ‚|d         pd}|d         t          |¦  «        z
  }|r$|r"|t          |¦  «        t          |¦  «        z   z  }|dk    r|t          |d	         ¦  «        z  |z   }|r
|r||z   |z   }|S )zzGenerate the counter representation.

        See https://www.w3.org/TR/css-counter-styles-3/#generate-a-counter

        Nr   r   r,   )Nr5   Nr0   )r*   N)Ú
alphabeticr5   r   Úadditiver   r2   )r=   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S ©N)r   )r$   Ú	characters     r   r&   z,CounterStyle.render_value.<locals>.<genexpr>«   sC   è è € ð 0Mð 0MØ&/•�yÑ!Ô!ð0Mð 0Mð 0Mð 0Mð 0Mð 0Mr   r-   r(   )r5   rF   ÚnumericrG   r    r3   r"   r5   rF   é   rK   r4   r1   r+   )rD   Úrender_valuer8   r:   r   Úabsr   r   ÚjoinÚreversedÚextend)r;   Úcounter_valuer<   r@   r=   r6   r,   Úfixed_numberrB   rC   r   Ú	min_rangeÚ	max_rangeÚcounter_rangesÚinitialÚis_negativeÚnegative_prefixÚnegative_suffixÚuse_negativeÚlengthÚindexÚrepeatÚreversed_partsÚweightÚsymbol_stringÚpartsÚrepetitionsr1   Úpad_differences                                r   rM   zCounterStyle.render_valueg   s"  € ð Ð&˜,Ð&Ð&Ð&ØÐO˜T×1Ò1°,ÀÑOÔOˆØˆ?Ø˜DÐ Ð Ø×(Ò(¨¸	ÑBÔBÐBð �rà�8Ôð 	CØ,3°HÔ,=Ñ)ˆG�V˜\˜\à,BÑ)ˆG�V˜\ð Ð!ØˆNˆNØ�~Ð%Ð%Ø×$Ò$ ]°IÑ>Ô>Ð>Ø×Ò˜lÑ+Ô+Ð+ð ð 	CØ˜ˆ~ˆ~Ø#'¨¤<Ð Ø$4°XÔ$>�˜Ñ!Ø˜8Ô$ð KØ4;¸HÔ4EÑ1�G˜V \ \à4JÑ1�G˜V \Ø˜^Ð+Ð+Ø×,Ò,¨]¸IÑFÔFÐFØ×%Ò% fÑ-Ô-Ð-Ø#3×#9Ò#9Ñ#;Ô#;ð .ð .‘K�D˜%Ø˜t”}Ð,°Ð1BØ(-˜ ™øð.ð ×(Ò(¨¸	ÑBÔBÐBð ð 	Cð$ �7Ô˜~Ð-Ð-Ý$' 4­�yˆIØÐ3Ð3Ð3Ø�	�	Ø˜:Ò%Ð%Ø�	Ø(¨)Ð4Ð6ˆNˆNà$ WÔ-ˆNØ$2ð 	/ð 	/Ñ ˆI�yØ˜MÐ6Ð6Ò6Ð6¨YÒ6Ð6Ð6Ð6Ð6Ø�ð 7ð ×$Ò$Ø˜w zÔ2Ð?°iØ-ð %ñ /ô /ð /ð
 ˆØ# aÒ'ˆØð 	3ð0Mð 0Mà˜:Ô&ÐKÐ*Kð0Mñ 0Mô 0MÑ,ˆO˜_ð ØAðBð ð ð 3Ý # MÑ 2Ô 2�ð �XÒÐÝ˜ Ô+Ñ,Ô,ˆFØ˜ŠzˆzØ×(Ò(¨¸	ÑBÔBÐBØ" QÑ&¨&Ñ0ˆEÝ˜W YÔ/°Ô6Ñ7Ô7ˆG‰Gà�wÒÐÝ˜ Ô+Ñ,Ô,ˆFØ˜ŠzˆzØ×(Ò(¨¸	ÑBÔBÐBØ! LÑ0ˆEØ�EÐ"Ð"Ò"Ð"˜FÒ"Ð"Ð"Ð"Ð"Ý  ¨Ô!3°EÔ!:Ñ;Ô;�‘à×(Ò(Ø! 7¨:Ô#6Ð#C¸)Ø#1ð )ñ 3ô 3ð 3ð �zÒ!Ð!Ý˜ Ô+Ñ,Ô,ˆFØ˜ŠzˆzØ×(Ò(¨¸	ÑBÔBÐBØ" QÑ&¨&Ñ0ˆEØ# aÑ'¨FÑ2°QÑ6ˆFÝ˜W YÔ/°Ô6Ñ7Ô7¸&Ñ@ˆG‰Gà�|Ò#Ð#Ý˜ Ô+Ñ,Ô,ˆFØ˜ŠzˆzØ×(Ò(¨¸	ÑBÔBÐBØˆNØ 1Ò$Ð$Ø Ñ"�Ø×%Ò%¥fØ˜IÔ& }°vÑ'=Ô>ñ'@ô '@ñ Aô Að Aà &Ñ(�ð	   1Ò$Ð$ð
 —g’g�h ~Ñ6Ô6Ñ7Ô7ˆG‰Gà�yÒ Ð Ø Ò!Ð!Ý  ¨Ô!3°AÔ!6Ñ7Ô7�‘à!#�Ý˜W YÔ/Ñ0Ô0�Ø˜A’:�:Ø×,Ò,¨]¸IÑFÔFÐFÝ # MÑ 2Ô 2�Ø# qÒ(Ð(Ø"×)Ò)­&Ø 	Ô*¨=¸6Ñ+AÔBñ+Dô +Dñ Eô Eð Eà! fÑ,�Mð $ qÒ(Ð(ð Ÿ'š'¥(¨>Ñ":Ô":Ñ;Ô;��à�zÒ!Ð!Ø Ò!Ð!Ø-4Ð5GÔ-Hð 8ð 8Ñ)�F˜MØ ’{�{Ý"(¨Ñ"7Ô"7˜øð8ð �Ý�wÐ1Ô2Ñ3Ô3°aÒ7Ð7Ø×,Ò,¨]¸IÑFÔFÐFØ-4Ð5GÔ-Hð ð Ñ)�F˜MØ"/°6Ñ"9�KØ—L’L¥&¨Ñ"7Ô"7Ð!8¸;Ñ!FÑGÔGÐGØ! V¨kÑ%9Ñ9�MØ$¨Ò)Ð)Ø"$§'¢'¨%¡.¤.˜Ø˜ð *ð ˆØ×(Ò(Ø! 7¨:Ô#6Ð#C¸)Ø#1ð )ñ 3ô 3ð 3ð Ð"Ð"Ð"ð �eŒnÐ' ˆØ˜Qœ¥# g¡,¤,Ñ.ˆØð 	J˜<ð 	JØ�c /Ñ2Ô2µS¸Ñ5IÔ5IÑIÑIˆNØ˜AÒÐØ$¥v¨c°!¬f¡~¤~Ñ5¸Ñ?ˆGð ð 	B˜<ð 	BØ%¨Ñ/°/ÑAˆGð ˆr   c                 ó
  — |                       |¦  «        }|€d| v r|                      d|¦  «        S dS t          |d         pd¦  «        }t          |d         pd¦  «        }|                      ||¬¦  «        }|€J ‚||z   |z   S )	z2Generate the content of a ::marker pseudo-element.Nr   r   r.   r!   r/   )r   z. )r<   )rD   Úrender_markerr   rM   )r;   r<   rR   r@   r.   r/   r   s          r   rf   zCounterStyle.render_marker  s¤   € à×&Ò& |Ñ4Ô4ˆØˆ?Ø˜DÐ Ð Ø×)Ò)¨)°]ÑCÔCÐCð �rå˜ Ô)Ð;¨^Ñ<Ô<ˆÝ˜ Ô)Ð=Ð-=Ñ>Ô>ˆà×!Ò! -¸lÐ!ÑKÔKˆØÐ Ð Ð Ø˜‰~ Ñ&Ð&r   c                 ó^   •— t          t          ¦   «                              ¦   «         ¦  «        S rI   )r   Úsuperr9   )r;   Ú	__class__s    €r   r9   zCounterStyle.copy&  s   ø€ å�E™GœGŸLšL™NœNÑ+Ô+Ð+r   rI   )NNN)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__rD   rM   rf   r9   Ú__classcell__)ri   s   @r   r   r   #   s‰   ø€ € € € € ðð ð9ð 9ð 9ð 9ðv FJØ$(ðlð lð lð lð\'ð 'ð 'ð",ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,r   r   N)	rm   Úmathr   r   r   r   r   Údictr   r	   r   r   ú<module>rq      s‘   ððð ð Ð Ð Ð Ð Ð à %Ð %Ð %Ð %Ð %Ð %ðð ð ð	#ð 	#ð 	#ðE,ð E,ð E,ð E,ð E,�4ñ E,ô E,ð E,ð E,ð E,r   