o
    욌h                     @   s  d dl mZ d dlmZ G dd deZG dd deZG dd deZG d	d
 d
eZG dd deZ	G dd deZ
G dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd  d eZG d!d" d"eZG d#d$ d$eZG d%d& d&eZG d'd( d(eZG d)d* d*eZG d+d, d,eZG d-d. d.eZG d/d0 d0eZG d1d2 d2eZG d3d4 d4eZG d5d6 d6eZG d7d8 d8eZG d9d: d:eZ G d;d< d<eZ!G d=d> d>eZ"G d?d@ d@eZ#G dAdB dBeZ$G dCdD dDeZ%G dEdF dFeZ&G dGdH dHeZ'G dIdJ dJeZ(G dKdL dLeZ)G dMdN dNeZ*G dOdP dPeZ+G dQdR dReZ,G dSdT dTeZ-G dUdV dVeZ.G dWdX dXeZ/G dYdZ dZeZ0G d[d\ d\eZ1G d]d^ d^eZ2G d_d` d`eZ3G dadb dbeZ4G dcdd ddeZ5G dedf dfeZ6G dgdh dheZ7G didj djeZ8G dkdl dleZ9G dmdn dneZ:G dodp dpeZ;G dqdr dreZ<G dsdt dteZ=G dudv dveZ>G dwdx dxeZ?dyS )z   )BaseStemmer)Amongc                   @   st  e Zd ZdZedddedddedddedddedddeddded	dded
ddedddedddg
ZedddedddedddgZedddedddedddgZedddedddedddeddded	ddedddgZedddedddedddeddded	ddedddgZ	edddedddedddeddded	ddedddgZ
edddedddedddedddedddedddgZedddedddedddedddeddded
ddgZedddedddedddgZedddedddedddedddedddeddded ddedddgZedddedddedddedddedddeddded ddedddgZed!dded"dded#ddgZedddedddedddedddedddeddded	dded
ddedddedddg
Zedddedddedddeddded	ddedddgZeddded dded$ddgZed%dded&ddgZedddedddedddedddedddeddded ddedddgZed'dded(dded)dded*d+ded,dded-dded.dded/dded0dded1dded2dded3dded4ddgZedddedddedddeddded	ddedddgZedddedddedddeddded	ddedddgZedddedddedddedddedddeddded ddedddgZedddedddedddedddedddeddded ddedddgZed/dded5ddgZed!dded6dded"dded7dded#dded8dded9dded:dded;dded<dded=dded>ddgZedddedddedddedddedddeddded ddedddgZed?dded@ddedAddedBddedCddedDddgZdEZdEZ dFdG Z!dHdI Z"dJdK Z#dLdM Z$dNdO Z%dPdQ Z&dRdS Z'dTdU Z(dVdW Z)dXdY Z*dZd[ Z+d\d] Z,d^d_ Z-d`da Z.dbdc Z/ddS )eTamilStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
       கu   ங   சu   ஞ   தu   ந   ப   ம   யu   வu	   ந்தu   ந்த்u   ந்   ி   ீ   ைu   டu   றu   ரu   லu   ளu   ழu   ண   னu   வ்   ாu   ுu   ூu   ெu   ேu   அu   இ   உu   ோu   பிu   விu   பட்டu   பட்டணu	   தானu   படிதான   u   குரியu	   படிu   பற்றிu	   படுu   விடுu   பட்டுu   விட்டுu   பட்டதுu   ெல்லாம்u   கொண்டிர்u   ஆu   ஈ   ஊ   எu   ஏu   ஐ   ஒ   ஓu   ஔu	   கிறu   கின்றu   ாநின்றu   கிற்u   கின்ற்u   ாநின்ற்Fc                 C   s   t | jdks	dS dS )N   FT)lencurrentself r   Z/var/www/Befach/backend/venv/lib/python3.10/site-packages/snowballstemmer/tamil_stemmer.py__r_has_min_length  s   zTamilStemmer.__r_has_min_lengthc           
      C   sP  z| j }z<| j }| j }z| ds|| _ t W n	 ty"   Y nw || _ | j | _| ds2t | j | _| ds?W W dS t  tyJ   Y nw || _ z<| j }| j }z| dsa|| _ t W n	 tyk   Y nw || _ | j | _| ds{t	 | j | _| dsW W dS t  t	y   Y nw || _ z<| j }| j }z| ds|| _ t
 W n	 t
y   Y nw || _ | j | _| dst | j | _| dsW W dS t  ty   Y nw || _ | j }| j }	z| ds|	| _ t W n	 ty   Y nw || _ | j | _| dsW dS | j | _| d	sW dS W d
S  ty'   Y d
S w )Nu   வோr   Fu   வொr   u   வுr   u   வூr   T)cursoreq_slab2bralab1ket
slice_fromlab0lab4lab3lab6lab5lab7)
r   v_1v_2v_3v_4v_5v_6v_7v_8v_9r   r   r   __r_fix_va_start	  s   









zTamilStemmer.__r_fix_va_startc                 C   s^   | j }z	 | j }z	|  st W q ty   Y nw || _ 	 W n	 ty)   Y nw || _ dS NT)r   _TamilStemmer__r_fix_endingr#   r&   r   r,   r-   r   r   r   __r_fix_endingsS  s   zTamilStemmer.__r_fix_endingsc                 C   sd   | j | _| dsdS | tjdkrdS | dsdS | j | _|  s&dS | j }|   || _ dS )Nr   F       ்T)	r   r"   r    
find_amongr   a_0r$   	slice_del_TamilStemmer__r_fix_va_startr   r,   r   r   r   __r_remove_question_prefixesc  s   

z)TamilStemmer.__r_remove_question_prefixesc                 C   s	  t | jdks	dS | j| _| j| _z| j| j }z| j| _| tjdkr)t	 | j| _
|  s5W W dS t  t	y@   Y nw | j| | _z2| j| _| dsTt | j| j }| tjdkret | j| | _| j| _
|  swW W dS t  ty   Y nw | j| | _zI| j| _z+| j| j }z| dst t  ty   Y nw | j| | _| dst W n	 ty   Y nw | j| _
| dsW W dS t  ty   Y nw | j| | _z| j| _| dst | j| _
| d	sW W dS t  ty   Y nw | j| | _z| j| _| d
st | j| _
| d	s+W W dS t  ty7   Y nw | j| | _z| j| _| dsLt | j| _
| dsZW W dS t  tyf   Y nw | j| | _zX| jsut | j| _| dst | j| j }| j| j }z| dst t  ty   Y nw | j| | _| j| | _| j| _
| dsW W dS | j| _
t  ty   Y nw | j| | _zN| j| _z.| j| j }z| dst t  ty   Y nw | j| | _| dst W n
 ty   Y nw | j| _
| ds"W W dS t  ty.   Y nw | j| | _z>| j| _| dsCt | tjdkrOt | dsXt | tjdkrdt | j| _
|  sqW W dS t  ty}   Y nw | j| | _z| j| _| dst  | j| _
| dsW W dS t  t y   Y nw | j| | _z)| j| _| dst! | tj"dkrt! | j| _
|  sW W dS t  t!y   Y nw | j| | _zf| j| _| dst# z4| j| j }z| tj$dkrt% t&  t%y   Y nw | j| | _| tj'dkr.t# W n
 t&y9   Y nw | dsCt# | j| _
| dsQW W dS t  t#y]   Y nw | j| | _z | j| _| tj(dkrut) | j| _
|  sW W dS t  t)y   Y nw | j| | _zO| j| _| dst* | j| j }| j| j }	z| tj+dkrt, t*  t,y   Y nw | j|	 | _| j| | _| j| _
|  sW W dS t  t*y   Y nw | j| | _zM| j| _| dst- | j| j }
| j| j }z| dst. t-  t.y%   Y nw | j| | _| j|
 | _| j| _
| ds@W W dS t  t-yL   Y nw | j| | _z| j| _| dsat/ | j| _
|  snW W dS t  t/yz   Y nw | j| | _| j| _| dsW dS | j| j }z2| j| j }z| tj0dkrt1 t2  t1y   Y nw | j| | _| dsW W dS W n
 t2y   Y nw | j| | _| j| _
|  sW dS W n
 ty   Y nw | j| _dS )N   Fr:   u   ய்u   ட்ப்u   ட்க்   ள்u   ன்ற்   ல்u   ற்க்u   ட்ட்u   டுu   த்த்r   u   ம்u	   ுக்u   ுக்க்r;   u   னுu   ங்T)3r   r   r   limit_backwardlimitr$   find_among_br   a_1r#   r"   r>   r&   eq_s_br!   a_2r*   r'   r(   r%   r)   r+   lab8B_found_vetrumai_urupulab9lab10lab13lab12lab11lab14a_3a_4lab15lab16a_5lab17a_6lab19lab18a_7a_8lab20lab21a_9lab22lab23lab24lab25a_10lab27lab26)r   r,   r-   r.   r/   r0   r1   r2   r3   r4   v_10v_11v_12v_13r   r   r   __r_fix_endingt  s  











zTamilStemmer.__r_fix_endingc                 C   sv   d| _ | j| _| tjdkrdS | tjdkrdS | ds"dS | j| _| 	 s,dS d| _ | j}| 
  || _dS NFr:   r;   T)B_found_a_matchr   r"   r<   r   a_11a_12r    r$   r>   r?   r@   r   r   r   __r_remove_pronoun_prefixes  s    
z(TamilStemmer.__r_remove_pronoun_prefixesc                 C   s  d| _ | j| _| j| _z| j| j }zL| j| _| dst | j| j }| j| j }z| tj	dkr7t
 t  t
yB   Y nw | j| | _| j| | _| j| _| ds\W W dS t  tyg   Y nw | j| | _z| j| _| ds{t | j| _| dsW W dS t  ty   Y nw | j| | _z| j| _| dst | j| _| dsW W dS t  ty   Y nw | j| | _| j| _| d	sW dS | j| _|  sW dS W n	 ty   Y nw d
| _ | j| _d
S )NFu   ுங்கள்r:   r;   u   ற்கள்rD   u   ட்கள்rC   u	   கள்T)rn   r   rE   rF   r$   rI   r#   rG   r   a_13r!   r"   r%   r&   r(   r'   r>   )r   r,   r-   r.   r   r   r   __r_remove_plural_suffix  sn   






z%TamilStemmer.__r_remove_plural_suffixc                 C   s   |   sdS d| _| j| _| j| _| j| j }z | j| _| tjdkr't	 | j| _
| ds3W dS d| _W n	 t	y@   Y nw | j| | _| j| _|   dS rm   )_TamilStemmer__r_has_min_lengthrn   r   rE   rF   r$   rG   r   a_14r&   r"   r%   _TamilStemmer__r_fix_endingsr@   r   r   r   __r_remove_question_suffixes  s&   

z)TamilStemmer.__r_remove_question_suffixesc                 C   sd   |   sdS d| _| j| _| j| _| j| _| tjdkrdS | j| _	| 
 s)dS d| _| j| _dS )NFr:   T)rt   rn   r   rE   rF   r$   rG   r   a_15r"   r>   r   r   r   r   __r_remove_command_suffixes  s   z(TamilStemmer.__r_remove_command_suffixesc                 C   st   d| _ |  s	dS | j| _| j| _| j| _| dsdS | j| _| ds'dS d| _ | j| _| j}| 	  || _dS )NFu	   ும்r;   T)
rn   rt   r   rE   rF   r$   rI   r"   r%   r7   r@   r   r   r   __r_remove_um  s"   

zTamilStemmer.__r_remove_umc                 C   s  d| _ |  s	dS | j| _| j| _z!| j| j }z| j| j }| j| _z| j| j }z| ds6t t  tyA   Y nw | j| | _z| dsQt	 t  t	y\   Y nw | j| | _z| dslt
 t  t
yw   Y nw | j| | _z| dst t  ty   Y nw | j| | _z| dst t  ty   Y nw | j| | _z| dst t  ty   Y nw | j| | _z| dst t  ty   Y nw | j| | _z| d	st t  ty   Y nw | j| | _z| d
st t  ty   Y nw | j| | _z| ds,t t  ty8   Y nw | j| | _z| dsIt t  tyU   Y nw | j| | _z>| dsft | j| j }| j| j }z| tjdkrt t  ty   Y nw | j| | _| j| | _t  ty   Y nw | j| | _z| dst t  ty   Y nw | j| | _| dst W n
 ty   Y nw | j| _| dsW W dS d| _ | j| | _t  ty    Y nw | j| | _| j| j }| j| _| tjdkrW dS | j| _|  s)W dS d| _ | j| | _W n
 ty=   Y nw | j| _|   dS )NFu   ுடன்u   ில்லை   ிடம்u   ின்றிu	   ாகிu   ாகியu   ென்றுu   ுள்ளu   ுடைய	   ுடைu   ெனும்u	   ல்லr:   u   ெனr;   T) rn   rt   r   rE   rF   r$   rI   r(   r!   r'   r*   r)   r+   rK   rM   rN   rQ   rP   rO   rR   rG   r   a_16rU   rV   r#   r"   r%   r&   a_17r>   rv   )r   r,   r-   r.   r/   r0   r1   r   r   r   __r_remove_common_word_endings  s   








z+TamilStemmer.__r_remove_common_word_endingsc                 C   s
  d| _ d| _|  sdS | j| _| j| _z| j| j }z'| j| j }| j| _| ds/t | j| _	| 
 s;W W dS | j| | _t  tyL   Y nw | j| | _z| j| j }| j| _z| j| j }zhz+| j| j }z| dsvt t  ty   Y nw | j| | _| dst W n	 ty   Y nw | j| j }| j| j }z| tjdkrt t  ty   Y nw | j| | _| j| | _t  ty   Y nw | j| | _| dst | j| j }| tjdkrt | dst | j| | _W n
 ty   Y nw | j| _	| dsW W dS | j| | _t  ty0   Y nw | j| | _z#| j| j }	| j| _z| j| j }
z| dsUt t  tya   Y nw | j|
 | _z| dsrt t  ty~   Y nw | j|
 | _z| d	st t  ty   Y nw | j|
 | _z| d
st t  ty   Y nw | j|
 | _z;| dst | j| j }| j| j }z| dst t  ty   Y nw | j| | _| j| | _t  ty   Y nw | j|
 | _z| dst t  ty!   Y nw | j|
 | _z| ds2t t  ty>   Y nw | j|
 | _z| dsOt  t  t y[   Y nw | j|
 | _zt!| j"dksnt# | dswt# t  t#y   Y nw | j|
 | _z| dst$ t  t$y   Y nw | j|
 | _z| dst% t  t%y   Y nw | j|
 | _z| dst& t  t&y   Y nw | j|
 | _z>| dst' | j| j }| j| j }z| tj(dkrt) t'  t)y   Y nw | j| | _| j| | _t  t'y)   Y nw | j|
 | _| ds9t* W n
 tyD   Y nw | j| _	| dsSW W dS | j|	 | _t  t*ye   Y nw | j| | _z| j| j }| j| _z| j| j }z| dst+ t,  t+y   Y nw | j| | _z| dst- t,  t-y   Y nw | j| | _z| dst. t,  t.y   Y nw | j| | _z| dst/ t,  t/y   Y nw | j| | _z| dst0 t,  t0y	   Y nw | j| | _z| dst1 t,  t1y&   Y nw | j| | _| ds6t2 | j| j }| j| j }z| tj3dkrOt4 t2  t4y[   Y nw | j| | _| j| | _W n
 t,ys   Y nw | j| _	| 
 sW W dS | j| | _t  t2y   Y nw | j| | _| j| j }| j| _| dsW dS | j| _	| dsW dS | j| | _W n
 ty   Y nw d | _ d | _| j| j }z| j| _| dst5 | j| _	| dsW dS W n
 t5y   Y nw | j| | _| j| _| 6  d S )!NF   னைu	   ினைr   r:   r;   u	   ொடுu	   ோடுu	   ில்u	   ிற்u	   ின்r
   u   ின்றுu   ிருந்துu	   விட   r{   u	   ால்r|   u   ாமல்rD   u	   ுள்u	   கண்u   முன்u   மேல்u   மேற்u   கீழ்u   பின்   துr   r   T)7rn   rL   rt   r   rE   rF   r$   rI   r#   r"   r>   r&   r)   r*   r'   rG   r   a_18r+   r(   r!   a_19r%   rN   rM   rQ   rP   rO   rR   rU   rV   rX   r[   r   r   rZ   r^   r_   ra   rb   a_20rc   rK   rf   rg   lab28lab29lab30lab31lab32rd   a_21lab33lab34rv   )r   r,   r-   r.   r/   r0   r1   r2   r3   r4   rh   ri   rj   rk   v_14v_15v_16v_17v_18v_19v_20r   r   r   __r_remove_vetrumai_urupukal  s  





z)TamilStemmer.__r_remove_vetrumai_urupukalc                 C   sR   d| _ 	 | j}z| j st | j}|   || _W q ty"   Y nw || _	 dS r6   )rn   r   r&   $_TamilStemmer__r_remove_tense_suffixr8   r   r   r   __r_remove_tense_suffixes  s   z&TamilStemmer.__r_remove_tense_suffixesc                 C   s  d| _ |  s	dS | j| _| j| _| j| j }zz| j| j }z.| j| j }| j| _| tjdkr7t	 | j| _
|  sDW W W dS d| _ | j| | _t  t	yX   Y nw | j| | _z| j| j }| j| _z| j| j }z| ds|t t  ty   Y nw | j| | _z| dst t  ty   Y nw | j| | _z| dst t  ty   Y nw | j| | _z| dst t  ty   Y nw | j| | _z| dst t  ty   Y nw | j| | _z| d	st t  ty   Y nw | j| | _z>| d
s!t | j| j }| j| j }z| tjdkr:t t  tyF   Y nw | j| | _| j| | _t  ty_   Y nw | j| | _z| dspt t  ty|   Y nw | j| | _z| dst t  ty   Y nw | j| | _z| dst t  ty   Y nw | j| | _z| dst t  ty   Y nw | j| | _z| dst t  ty   Y nw | j| | _z| dst t  ty   Y nw | j| | _z| dst t  ty*   Y nw | j| | _z| ds;t t  tyG   Y nw | j| | _z| dsXt  t  t yd   Y nw | j| | _z| dsut! t  t!y   Y nw | j| | _z| dst" t  t"y   Y nw | j| | _z| dst# t  t#y   Y nw | j| | _z>| dst$ | j| j }| j| j }	z| tj%dkrt& t$  t&y   Y nw | j|	 | _| j| | _t  t$y
   Y nw | j| | _z| dst' t  t'y'   Y nw | j| | _z| ds8t( t  t(yD   Y nw | j| | _z| dsUt) t  t)ya   Y nw | j| | _z| dsrt* t  t*y~   Y nw | j| | _z| dst+ t  t+y   Y nw | j| | _z| dst, t  t,y   Y nw | j| | _z| dst- t  t-y   Y nw | j| | _z| dst. t  t.y   Y nw | j| | _| d st/ W n
 ty   Y nw | j| _
|  sW W W dS d| _ | j| | _t  t/y1   Y nw | j| | _z^| j| j }
| j| _z-| j| j }z;| d!sVt0 | j| j }| j| j }z| d"slt1 t0  t1yx   Y nw | j| | _| j| | _t2  t0y   Y nw | j| | _z| d#st3 t2  t3y   Y nw | j| | _z| d$st4 t2  t4y   Y nw | j| | _z| d%st5 t2  t5y   Y nw | j| | _z| d&st6 t2  t6y   Y nw | j| | _z| d'st7 t2  t7y"   Y nw | j| | _z| d(s3t8 t2  t8y?   Y nw | j| | _z| d)sPt9 t2  t9y\   Y nw | j| | _z| d*smt: t2  t:yy   Y nw | j| | _z| dst; t2  t;y   Y nw | j| | _z| dst< t2  t<y   Y nw | j| | _z| d+st= t2  t=y   Y nw | j| | _z| dst> t2  t>y   Y nw | j| | _z| d,st? t2  t?y
   Y nw | j| | _z| dst@ t2  t@y'   Y nw | j| | _z| d-s8tA t2  tAyD   Y nw | j| | _z| d.sUtB t2  tBya   Y nw | j| | _| d/sqtC W n
 t2y|   Y nw | j| _
| Dd0sW W W dS d| _ | j|
 | _t  tCy   Y nw | j| | _| j| j }| j| _z.| j| j }z| d1stE tF  tEy   Y nw | j| | _| dstG W n
 tFy   Y nw | j| j }| d0stG | j| | _| j| _
|  sW W dS d| _ | j| | _W n
 ty!   Y nw W n
 tGy-   Y nw | j| | _| j| j }z!| j| _| tjHdkrKtI | j| _
|  sWW dS d| _ W n
 tIye   Y nw | j| | _| j| _| J  dS )2NFr:   Tu   மார்u   மின்u	   னன்u   னான்u   னாள்u   னார்u	   வன்u	   னள்u	   வள்u	   னர்u	   வர்r   r	   r   r   r   u	   பன்u	   பள்u	   பர்r   u   ிற்றுu	   பம்u	   னம்u   தும்u   றும்u   கும்u   னென்r   u   வைu	   ான்r   u	   ாள்u	   ார்u	   ேன்r   u	   ாம்u	   ெம்u	   ேம்u	   ோம்u   டும்u	   ாய்u   னிர்u	   ீர்u   ீயர்r;   u   கு)Krn   rt   r   rE   rF   r$   rG   r   a_22r!   r"   r>   r#   rI   r*   r'   r)   r+   rK   rM   rN   rQ   a_23rP   rO   rR   rU   rV   rX   r[   rZ   r^   r_   ra   rb   rc   rd   a_24rg   rf   r   r   r   r   r   r   r   r(   lab37lab38lab36lab39lab40lab41lab42lab43lab44lab45lab46lab47lab48lab49lab50lab51lab52lab53lab54lab35r%   lab56lab55r&   a_25lab57rv   )r   r,   r-   r.   r/   r0   r1   r2   r3   r4   rh   ri   rj   rk   r   r   r   r   r   r   r   __r_remove_tense_suffix  s  











z$TamilStemmer.__r_remove_tense_suffixc                 C   s   d| _ | j}|   || _|  sdS | j}|   || _| j}|   || _| j}|   || _| j}|   || _| j}|   || _| j}| 	  || _| j}| 
  || _| j}	|   |	| _| j}
|   |
| _dS )NFT)rL   r   r7   rt   )_TamilStemmer__r_remove_question_prefixes(_TamilStemmer__r_remove_pronoun_prefixes)_TamilStemmer__r_remove_question_suffixes_TamilStemmer__r_remove_um+_TamilStemmer__r_remove_common_word_endings)_TamilStemmer__r_remove_vetrumai_urupukal%_TamilStemmer__r_remove_plural_suffix(_TamilStemmer__r_remove_command_suffixes&_TamilStemmer__r_remove_tense_suffixes)r   r,   r-   r.   r/   r0   r1   r2   r3   r4   rh   r   r   r   _stem,  sD   zTamilStemmer._stemN)0__name__
__module____qualname____doc__r   r=   rH   rJ   rS   rT   rW   rY   r\   r]   r`   re   ro   rp   rr   ru   rx   r}   r~   r   r   r   r   r   r   r   r   rL   rn   rt   r?   rv   r   r7   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s   













































































































































































	J  9~     r   c                   @      e Zd ZdS )r&   Nr   r   r   r   r   r   r   r&   Q      r&   c                   @   r   )r#   Nr   r   r   r   r   r#   T  r   r#   c                   @   r   )r!   Nr   r   r   r   r   r!   W  r   r!   c                   @   r   )r(   Nr   r   r   r   r   r(   Z  r   r(   c                   @   r   )r'   Nr   r   r   r   r   r'   ]  r   r'   c                   @   r   )r*   Nr   r   r   r   r   r*   `  r   r*   c                   @   r   )r)   Nr   r   r   r   r   r)   c  r   r)   c                   @   r   )r+   Nr   r   r   r   r   r+   f  r   r+   c                   @   r   )rK   Nr   r   r   r   r   rK   i  r   rK   c                   @   r   )rM   Nr   r   r   r   r   rM   l  r   rM   c                   @   r   )rN   Nr   r   r   r   r   rN   o  r   rN   c                   @   r   )rQ   Nr   r   r   r   r   rQ   r  r   rQ   c                   @   r   )rP   Nr   r   r   r   r   rP   u  r   rP   c                   @   r   )rO   Nr   r   r   r   r   rO   x  r   rO   c                   @   r   )rR   Nr   r   r   r   r   rR   {  r   rR   c                   @   r   )rU   Nr   r   r   r   r   rU   ~  r   rU   c                   @   r   )rV   Nr   r   r   r   r   rV     r   rV   c                   @   r   )rX   Nr   r   r   r   r   rX     r   rX   c                   @   r   )r[   Nr   r   r   r   r   r[     r   r[   c                   @   r   )rZ   Nr   r   r   r   r   rZ     r   rZ   c                   @   r   )r^   Nr   r   r   r   r   r^     r   r^   c                   @   r   )r_   Nr   r   r   r   r   r_     r   r_   c                   @   r   )ra   Nr   r   r   r   r   ra     r   ra   c                   @   r   )rb   Nr   r   r   r   r   rb     r   rb   c                   @   r   )rc   Nr   r   r   r   r   rc     r   rc   c                   @   r   )rd   Nr   r   r   r   r   rd     r   rd   c                   @   r   )rg   Nr   r   r   r   r   rg     r   rg   c                   @   r   )rf   Nr   r   r   r   r   rf     r   rf   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   Nr   r   r   r   r   r     r   r   N)@basestemmerr   amongr   r   BaseExceptionr&   r#   r!   r(   r'   r*   r)   r+   rK   rM   rN   rQ   rP   rO   rR   rU   rV   rX   r[   rZ   r^   r_   ra   rb   rc   rd   rg   rf   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s               V