Ë
    jûàg
9  ã                   ó(  — d dl mZ d dl mZ d dlmZmZ ej                  ej                  j                  ej                  j                  fZ
ej                  ej                  j                  ej                  j                  fZej                  ej                  j                   fZd„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z eej@                  «      d„ «       Z! eejD                  «      d„ «       Z#d„ Z$d„ Z%d„ Z& eejN                  «      d„ «       Z( eejR                  «      d„ «       Z* e«       d„ «       Z+ eejX                  «      d„ «       Z- eej@                  «      d„ «       Z. e«       d„ «       Z/d„ Z0d„ Z1d„ d „ d!d"d"fd#„Z2y!)$é    )Úsql)Útokens)ÚrecurseÚimtc                 ó¶  — g }d}t        t        | «      «      D ]¯  \  }}||z
  }|j                  rŒ|j                  rt	        ||«      st        ||«       Œ= |j                  |j                  Ž r|j                  |«       Œh |j                  |j                  Ž sŒ‚	 |j                  «       }|}| j                  |||«       |||z
  z  }Œ± y# t        $ r Y Œ¾w xY w)z*Groups Tokens that have beginning and end.r   N)Ú	enumerateÚlistÚis_whitespaceÚis_groupÚ
isinstanceÚ_group_matchingÚmatchÚM_OPENÚappendÚM_CLOSEÚpopÚ
IndexErrorÚgroup_tokens)	ÚtlistÚclsÚopensÚtidx_offsetÚidxÚtokenÚtidxÚopen_idxÚ	close_idxs	            úV/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sqlparse/engine/grouping.pyr   r      sÝ   € à€EØ€KÜ¤ U£Ó,ò 0‰
ˆˆUØ�[Ñ ˆà×Òð à�>Š>¤*¨U°CÔ"8ô ˜E 3Ô'Øàˆ5�;‰;˜Ÿ
™
Ñ#Ø�L‰L˜ÕàˆU�[‰[˜#Ÿ+™+Ò&ðØ Ÿ9™9›;�ð
 ˆIØ×Ñ˜s H¨iÔ8Ø˜9 xÑ/Ñ/‰Kñ90øô, ò ñ ðús   ÂCÃ	CÃCc                 ó8   — t        | t        j                  «       y ©N)r   r   ÚSquareBrackets©r   s    r   Úgroup_bracketsr#   4   s   € Ü�Eœ3×-Ñ-Õ.ó    c                 ó8   — t        | t        j                  «       y r    )r   r   ÚParenthesisr"   s    r   Úgroup_parenthesisr'   8   s   € Ü�Eœ3Ÿ?™?Õ+r$   c                 ó8   — t        | t        j                  «       y r    )r   r   ÚCaser"   s    r   Ú
group_caser*   <   s   € Ü�Eœ3Ÿ8™8Õ$r$   c                 ó8   — t        | t        j                  «       y r    )r   r   ÚIfr"   s    r   Úgroup_ifr-   @   s   € Ü�Eœ3Ÿ6™6Õ"r$   c                 ó8   — t        | t        j                  «       y r    )r   r   ÚForr"   s    r   Ú	group_forr0   D   s   € Ü�Eœ3Ÿ7™7Õ#r$   c                 ó8   — t        | t        j                  «       y r    )r   r   ÚBeginr"   s    r   Úgroup_beginr3   H   s   € Ü�Eœ3Ÿ9™9Õ%r$   c                 óZ   — d„ }d„ }d„ }|x}}t        | t        j                  ||||«       y )Nc                 óB   — | j                  t        j                  d«      S )Nz::©r   ÚTÚPunctuation©r   s    r   r   zgroup_typecasts.<locals>.matchM   s   € Ø�{‰{œ1Ÿ=™=¨$Ó/Ð/r$   c                 ó
   — | d uS r    © r9   s    r   Úvalidzgroup_typecasts.<locals>.validP   ó   € Ø˜DÐ Ð r$   c                 ó
   — ||fS r    r;   ©r   Úpidxr   Únidxs       r   Úpostzgroup_typecasts.<locals>.postS   ó   € Ø�TˆzÐr$   ©Ú_groupr   Ú
Identifier©r   r   r<   rB   Ú
valid_prevÚ
valid_nexts         r   Úgroup_typecastsrJ   L   s3   € ò0ò!òð $Ð#€J�Ü
ˆ5”#—.‘. %¨°ZÀÕFr$   c                 óX   — d„ }d„ }d„ }d„ }t        | t        j                  ||||«       y )Nc                 óP   — | j                   t        j                  j                  k(  S r    )Úttyper7   ÚKeywordÚTZCastr9   s    r   r   zgroup_tzcasts.<locals>.match[   s   € Ø�{‰{œaŸi™i×.Ñ.Ñ.Ð.r$   c                 ó
   — | d uS r    r;   r9   s    r   rH   z!group_tzcasts.<locals>.valid_prev^   r=   r$   c                 ó¼   — | d uxrW | j                   xsI | j                  t        j                  d«      xs'  | j                  t        j
                  j                  Ž S ©NÚAS)r
   r   r7   rN   r   ÚTypedLiteralr   r9   s    r   rI   z!group_tzcasts.<locals>.valid_nexta   sS   € Ø˜DÐ ò 
Ø×Ñò 6Ø�{‰{œ1Ÿ9™9 dÓ+ò6àˆu�{‰{œC×,Ñ,×4Ñ4Ð5ð	
r$   c                 ó
   — ||fS r    r;   r?   s       r   rB   zgroup_tzcasts.<locals>.posth   rC   r$   rD   ©r   r   rH   rI   rB   s        r   Úgroup_tzcastsrW   Z   s.   € ò/ò!ò
òô ˆ5”#—.‘. %¨°ZÀÕFr$   c           	      ó¨   — d„ }d„ }d„ }d„ }d„ }d„ }t        | t        j                  ||||d¬«       t        | t        j                  ||||d	¬«       y )
Nc                 óL   — t        | t        j                  j                  ¬«      S )N©Úm)r   r   rT   r   r9   s    r   r   z"group_typed_literal.<locals>.matcht   s   € Ü�5œC×,Ñ,×3Ñ3Ô4Ð4r$   c                 ó6   — t        | t        j                  «      S r    )r   r   rT   r9   s    r   Úmatch_to_extendz,group_typed_literal.<locals>.match_to_extendw   s   € Ü˜%¤×!1Ñ!1Ó2Ð2r$   c                 ó
   — | d uS r    r;   r9   s    r   rH   z'group_typed_literal.<locals>.valid_prevz   r=   r$   c                 ó\   — | d uxr'  | j                   t        j                  j                  Ž S r    )r   r   rT   r   r9   s    r   rI   z'group_typed_literal.<locals>.valid_next}   s)   € Ø˜DÐ ÒK [ U§[¡[´#×2BÑ2B×2JÑ2JÐ%KÐKr$   c                 ó\   — | d uxr'  | j                   t        j                  j                  Ž S r    )r   r   rT   ÚM_EXTENDr9   s    r   Úvalid_finalz(group_typed_literal.<locals>.valid_final€   s)   € Ø˜DÐ ÒL [ U§[¡[´#×2BÑ2B×2KÑ2KÐ%LÐLr$   c                 ó
   — ||fS r    r;   r?   s       r   rB   z!group_typed_literal.<locals>.postƒ   rC   r$   F©ÚextendT)rE   r   rT   )r   r   r]   rH   rI   rb   rB   s          r   Úgroup_typed_literalrf   n   s^   € ò5ò3ò!òLòMòô ˆ5”#×"Ñ" E¨:°zØ˜õä
ˆ5”#×"Ñ" O°ZÀØ˜ör$   c                 óX   — d„ }d„ }d„ }d„ }t        | t        j                  ||||«       y )Nc                 ó¦   — t         j                  dft         j                  dft         j                  dffD ]  \  }}| j                  ||«      sŒ y y)Nú.z->z->>TF)r7   r8   ÚOperatorr   )r   rM   Úvalues      r   r   zgroup_period.<locals>.match�   sS   € ÜŸm™m¨SÐ1ÜŸj™j¨$Ð/ÜŸj™j¨%Ð0ð2ò 	‰LˆE�5ð �{‰{˜5 %Õ(Ùð		ð
 r$   c                 ó²   — t         j                  t         j                  f}t        j                  t        j
                  j                  f}t        | ||¬«      S ©N©ÚiÚt)r   r!   rF   r7   ÚNameÚStringÚSymbolr   ©r   ÚsqlclsÚttypess      r   rH   z group_period.<locals>.valid_prev•   s;   € Ü×#Ñ#¤S§^¡^Ð3ˆÜ—‘œŸ™Ÿ™Ð(ˆÜ�5˜F fÔ-Ð-r$   c                  ó   — y©NTr;   r9   s    r   rI   z group_period.<locals>.valid_nextš   s   € àr$   c                 ó(  — t         j                  t         j                  f}t        j                  t        j
                  j                  t        j                  t        j
                  j                  f}|�| |   nd }t        |||¬«      }|r||fS ||fS rm   )
r   r!   ÚFunctionr7   rq   rr   rs   ÚWildcardÚSingler   )r   r@   r   rA   ru   rv   Únext_rI   s           r   rB   zgroup_period.<locals>.postž   so   € ä×#Ñ#¤S§\¡\Ð1ˆÜ—‘œŸ™Ÿ™¬!¯*©*´a·h±h·o±oÐEˆØ#Ð/��d’°TˆÜ˜ &¨FÔ3ˆ
á)��dˆ|Ð;°°d¨|Ð;r$   rD   rV   s        r   Úgroup_periodr~   Œ   s.   € òò.ò
ò<ô ˆ5”#—.‘. %¨°ZÀÕFr$   c                 óX   — d„ }d„ }d„ }d„ }t        | t        j                  ||||«       y )Nc                 ó<   — | j                   xr | j                  dk(  S rR   )Ú
is_keywordÚ
normalizedr9   s    r   r   zgroup_as.<locals>.match«   s   € Ø×ÑÒ< E×$4Ñ$4¸Ñ$<Ð<r$   c                 ó>   — | j                   dk(  xs | j                   S )NÚNULL)r‚   r�   r9   s    r   rH   zgroup_as.<locals>.valid_prev®   s!   € Ø×Ñ 6Ñ)ÒA°×1AÑ1AÐ-AÐAr$   c                 óˆ   — t         j                  t         j                  t         j                  f}t	        | |¬«       xr | d uS ©N©rp   )r7   ÚDMLÚDDLÚCTEr   )r   rv   s     r   rI   zgroup_as.<locals>.valid_next±   s4   € Ü—‘œŸ™œqŸu™uÐ$ˆÜ�u Ô'Ð'Ò=¨E¸Ð,=Ð=r$   c                 ó
   — ||fS r    r;   r?   s       r   rB   zgroup_as.<locals>.postµ   rC   r$   rD   rV   s        r   Úgroup_asrŒ   ª   s/   € ò=òBò>òô ˆ5”#—.‘. %¨°ZÀÕFr$   c                 óZ   — d„ }d„ }d„ }|x}}t        | t        j                  ||||«       y )Nc                 óB   — | j                  t        j                  d«      S )Nz:=)r   r7   Ú
Assignmentr9   s    r   r   zgroup_assignment.<locals>.match¼   s   € Ø�{‰{œ1Ÿ<™<¨Ó.Ð.r$   c                 óH   — | d uxr | j                   t        j                  fvS r    )rM   r7   rN   r9   s    r   r<   zgroup_assignment.<locals>.valid¿   s!   € Ø˜DÐ ÒD U§[¡[¼¿¹¸Ð%DÐDr$   c                 óf   — t         j                  df}| j                  ||¬«      \  }}|xs |}||fS )Nú;©r[   r   )r7   r8   Útoken_next_by)r   r@   r   rA   Úm_semicolonÚsnidxÚ_s          r   rB   zgroup_assignment.<locals>.postÂ   s<   € Ü—m‘m SÐ(ˆØ×&Ñ&¨¸$Ð&Ó?‰ˆˆqØŠ}˜ˆØ�TˆzÐr$   )rE   r   r�   rG   s         r   Úgroup_assignmentr˜   »   s4   € ò/òEòð $Ð#€J�Ü
ˆ5”#—.‘. %¨°ZÀÕFr$   c           	      ó*  ‡‡— t         j                  t         j                  t         j                  t         j                  t         j
                  fŠt        t        z   t        z   Šd„ }ˆˆfd„}d„ }|x}}t        | t         j                  ||||d¬«       y )Nc                 óP   — | j                   t        j                  j                  k(  S r    )rM   r7   rj   Ú
Comparisonr9   s    r   r   zgroup_comparison.<locals>.matchÑ   s   € Ø�{‰{œaŸj™j×3Ñ3Ñ3Ð3r$   c                 ó`   •— t        | ‰‰¬«      ry| r| j                  r| j                  dk(  ryy)N)rp   ro   Tr„   F)r   r�   r‚   rt   s    €€r   r<   zgroup_comparison.<locals>.validÔ   s0   ø€ Üˆu˜ &Õ)ØÙ�u×'Ò'¨E×,<Ñ,<ÀÒ,FØàr$   c                 ó
   — ||fS r    r;   r?   s       r   rB   zgroup_comparison.<locals>.postÜ   rC   r$   Frd   )r   r&   rz   rF   Ú	OperationrT   ÚT_NUMERICALÚT_STRINGÚT_NAMErE   r›   ©r   r   r<   rB   rH   rI   ru   rv   s         @@r   Úgroup_comparisonr£   Ì   sq   ù€ Ü�o‰oœsŸ|™|¬S¯^©^Ü�m‰mœS×-Ñ-ð/€Fäœ8Ñ#¤fÑ,€Fò4õòð $Ð#€J�Ü
ˆ5”#—.‘. %Ø�z 4°ö7r$   c                 óü   — t         j                  j                  t         j                  f}| j	                  |¬«      \  }}|r;| j                  t        j                  ||«       | j	                  ||¬«      \  }}|rŒ:y y )Nr‡   ©rp   r   )r7   rr   rs   rq   r”   r   r   rF   )r   rv   r   r   s       r   Úgroup_identifierr¦   ä   sf   € ä�h‰h�o‰oœqŸv™vÐ&€Fà×%Ñ%¨Ð%Ó/�K€Dˆ%Ù
Ø×Ñœ3Ÿ>™>¨4°Ô6Ø×)Ñ)¨F¸Ð)Ó=‰ˆˆeô r$   c                 ó„  — | j                  t        j                  j                  ¬«      \  }}|r‘| j	                  |«      \  }}t        |t        j                  t        j                  ¬«      r!| j                  t        j                  ||«       | j                  t        j                  j                  |¬«      \  }}|rŒ�y y )NrZ   rn   r“   )
r”   r   ÚOverr   Ú
token_nextr   r&   r7   rq   r   )r   r   r   rA   r}   s        r   Ú
group_overrª   î   sˆ   € à×%Ñ%¬¯©¯©Ð%Ó8�K€Dˆ%Ù
Ø×&Ñ& tÓ,‰ˆˆeÜˆuœŸ™¬1¯6©6Õ2Ø×ÑœsŸx™x¨¨tÔ4Ø×)Ñ)¬C¯H©H¯O©OÀÐ)ÓF‰ˆˆeô	 r$   c           
      ó  ‡‡— t         j                  t         j                  t         j                  fŠt        j
                  t        j                  j                  fŠd„ }ˆˆfd„}d„ }d„ }t        | t         j                  ||||dd¬«       y )Nc                 ó6   — t        | t        j                  «      S r    )r   r   r!   r9   s    r   r   zgroup_arrays.<locals>.matchü   s   € Ü˜%¤×!3Ñ!3Ó4Ð4r$   c                 ó    •— t        | ‰‰¬«      S rm   ©r   rt   s    €€r   rH   z group_arrays.<locals>.valid_prevÿ   s   ø€ Ü�5˜F fÔ-Ð-r$   c                  ó   — yrx   r;   r9   s    r   rI   z group_arrays.<locals>.valid_next  s   € Ør$   c                 ó
   — ||fS r    r;   r?   s       r   rB   zgroup_arrays.<locals>.post  rC   r$   TF)re   r   )	r   r!   rF   rz   r7   rq   rr   rs   rE   )r   r   rH   rI   rB   ru   rv   s        @@r   Úgroup_arraysr±   ø   sg   ù€ Ü×Ñ¤§¡´·±Ð=€FÜ�V‰V”Q—X‘X—_‘_Ð$€Fò5õ.òòô ˆ5”#—.‘. %Ø�z 4°¸eöEr$   c           	      óH  ‡‡— t         t        z   t        z   Št        j                  t        j
                  t        j                  t        j                  t        j                  t        j                  fŠd„ }ˆˆfd„}d„ }|x}}t        | t        j                  ||||d¬«       y )Nc                 óX   — t        | t        j                  t        j                  f¬«      S r†   )r   r7   rj   r{   r9   s    r   r   zgroup_operator.<locals>.match  s   € Ü�5œQŸZ™Z¬¯©Ð4Ô5Ð5r$   c                 ól   •— t        | ‰‰¬«      xs$ | xr  | j                  t        j                  d«      S )Nrn   )ÚCURRENT_DATEÚCURRENT_TIMEÚCURRENT_TIMESTAMP)r   r   r7   rN   rt   s    €€r   r<   zgroup_operator.<locals>.valid  s:   ø€ Ü�5˜F fÔ-ò HØò G˜%Ÿ+™+Ü—	‘	ØEóGð	Hr$   c                 ó:   — t         j                  | |   _        ||fS r    )r7   rj   rM   r?   s       r   rB   zgroup_operator.<locals>.post  s   € ÜŸJ™Jˆˆd‰ÔØ�TˆzÐr$   Frd   )rŸ   r    r¡   r   r!   r&   rz   rF   rž   rT   rE   r¢   s         @@r   Úgroup_operatorr¹     sz   ù€ Üœ8Ñ#¤fÑ,€FÜ× Ñ ¤#§/¡/´3·<±<Ü�n‰nœcŸm™m¬S×-=Ñ-=ð?€Fò6õHòð $Ð#€J�Ü
ˆ5”#—-‘- Ø�z 4°ö7r$   c           	      óÐ  ‡‡‡— t         j                  dfŠt        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  fŠt        t        z   t        z   t         j                  t         j                  t         j                  fz   Šd„ }ˆˆˆfd„}d„ }|x}}t        | t        j                  ||||d¬«       y )N)ÚnullÚrolec                 óB   — | j                  t        j                  d«      S )Nú,r6   r9   s    r   r   z$group_identifier_list.<locals>.match*  s   € Ø�{‰{œ1Ÿ=™=¨#Ó.Ð.r$   c                 ó"   •— t        | ‰‰‰¬«      S )N)ro   r[   rp   r®   )r   Úm_roleru   rv   s    €€€r   r<   z$group_identifier_list.<locals>.valid-  s   ø€ Ü�5˜F f°Ô7Ð7r$   c                 ó
   — ||fS r    r;   r?   s       r   rB   z#group_identifier_list.<locals>.post0  rC   r$   Trd   )r7   rN   r   rz   r)   rF   r›   ÚIdentifierListrž   rŸ   r    r¡   ÚCommentr{   rE   )	r   r   r<   rB   rH   rI   rÀ   ru   rv   s	         @@@r   Úgroup_identifier_listrÄ   #  s£   ú€ Ü�Y‰YÐ(Ð(€FÜ�l‰lœCŸH™H¤c§n¡n´c·n±nÜ× Ñ ¤#§-¡-ð1€FäœHÑ$¤vÑ-Ü—‘œAŸI™I¤q§z¡zÐ2ñ3€Fò/ö8òð $Ð#€J�Ü
ˆ5”#×$Ñ$ eØ�z 4°ö6r$   c                 ó>  — | j                  t        j                  ¬«      \  }}|rx| j                  d„ |¬«      \  }}|�7| j	                  |d¬«      \  }}| j                  t        j                  ||«       | j                  t        j                  |¬«      \  }}|rŒwy y )Nr‡   c                 óT   — t        | t        j                  ¬«      xs | j                  S r†   )r   r7   rÃ   Ú
is_newline)Útks    r   ú<lambda>z group_comments.<locals>.<lambda>=  s   € ”s˜2¤§¡Ô+Ò<¨r¯}©}€ r$   )r   F)Úskip_wsr¥   )r”   r7   rÃ   Útoken_not_matchingÚ
token_prevr   r   ©r   r   r   ÚeidxÚends        r   Úgroup_commentsrÐ   8  s•   € à×%Ñ%¬¯	©	Ð%Ó2�K€Dˆ%Ù
Ø×,Ñ,Ù<À$ð -ó H‰	ˆˆcàˆ?Ø×(Ñ(¨°uÐ(Ó=‰IˆD�#Ø×ÑœsŸ{™{¨D°$Ô7à×)Ñ)¬A¯I©I¸4Ð)Ó@‰ˆˆeô r$   c                 óÎ  — | j                  t        j                  j                  ¬«      \  }}|r¶| j                  t        j                  j                  |¬«      \  }}|€| j
                  d   }n| j                  |dz
     }| j                  |«      }| j                  t        j                  ||«       | j                  t        j                  j                  |¬«      \  }}|rŒµy y )NrZ   r“   éÿÿÿÿé   )	r”   r   ÚWherer   r   Ú_groupable_tokensr   Útoken_indexr   rÍ   s        r   Úgroup_wherer×   E  sÀ   € à×%Ñ%¬¯	©	×(8Ñ(8Ð%Ó9�K€Dˆ%Ù
Ø×'Ñ'¬#¯)©)×*;Ñ*;ÀÐ'ÓF‰	ˆˆcàˆ;Ø×)Ñ)¨"Ñ-‰Cà—,‘,˜t a™xÑ(ˆCð × Ñ  Ó%ˆØ×Ñœ3Ÿ9™9 d¨DÔ1Ø×)Ñ)¬C¯I©I×,<Ñ,<À$Ð)ÓG‰ˆˆeô r$   c                 óü  — t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  f}| j                  |t        j                  ¬«      \  }}|rz| j                  |«      \  }}t        |t         j                  «      r#| j                  t         j                  ||d¬«       | j                  |t        j                  |¬«      \  }}|rŒyy y )Nrn   Trd   )ro   rp   r   )r   r&   rz   r)   rF   rž   r›   r”   r7   ÚNumberr©   r   r   )r   ÚI_ALIASr   r   rA   r}   s         r   Úgroup_aliasedrÛ   V  s²   € ä�‰¤§¡¬c¯h©h¼¿¹Ü�}‰}œcŸn™nð.€Gð ×%Ñ%¨´1·8±8Ð%Ó<�K€Dˆ%Ù
Ø×&Ñ& tÓ,‰ˆˆeÜ�eœSŸ^™^Ô,Ø×ÑœsŸ~™~¨t°TÀ$ÐÔGØ×)Ñ)¨G´q·x±xÀTÐ)ÓJ‰ˆˆeô	 r$   c                 ó‚  — d}d}d}| j                   D ]R  }|j                  j                  «       dk(  rd}|j                  j                  «       dk(  rd}|j                  dk(  sŒQd}ŒT |r|r|sy | j                  t        j
                  ¬«      \  }}|r¬| j                  |«      \  }}t        |t        j                  «      rV| j                  |«      \  }	}
|
rt        |
t        j                  «      r|	}n|}| j                  t        j                  ||«       | j                  t        j
                  |¬«      \  }}|rŒ«y y )NFÚCREATETÚTABLErS   r‡   r¥   )r   rk   Úupperr”   r7   rq   r©   r   r   r&   r¨   r   rz   )r   Ú
has_createÚ	has_tableÚhas_asÚ	tmp_tokenr   r   rA   r}   Úover_idxÚoverrÎ   s               r   Úgroup_functionsræ   c  s  € à€JØ€IØ€FØ—\‘\ò ˆ	Ø�?‰?× Ñ Ó" hÒ.ØˆJØ�?‰?× Ñ Ó" gÒ-ØˆIØ�?‰?˜dÓ"Ø‰Fðñ ‘i©Øà×%Ñ%¬¯©Ð%Ó/�K€Dˆ%Ù
Ø×&Ñ& tÓ,‰ˆˆeÜ�eœSŸ_™_Ô-Ø"×-Ñ-¨dÓ3‰NˆH�dÙœ
 4¬¯©Ô2Ø‘à�Ø×ÑœsŸ|™|¨T°4Ô8Ø×)Ñ)¬A¯F©F¸Ð)Ó=‰ˆˆeô r$   c                 óˆ  — | j                  t        j                  j                  ¬«      \  }}|r“| j	                  |«      \  }}t        |t        j                  t        j                  ¬«      r#| j                  t        j                  ||«       |}| j                  t        j                  j                  |¬«      \  }}|rŒ’yy)z,Group together Identifier and Asc/Desc tokenr‡   rn   r¥   N)
r”   r7   rN   ÚOrderrÌ   r   r   rF   rÙ   r   ©r   r   r   r@   Úprev_s        r   Úgroup_orderrë     s�   € ð ×%Ñ%¬¯	©	¯©Ð%Ó8�K€Dˆ%Ù
Ø×&Ñ& tÓ,‰ˆˆeÜˆuœŸ™¬!¯(©(Õ3Ø×ÑœsŸ~™~¨t°TÔ:ØˆDØ×)Ñ)¬A¯I©I¯O©OÀÐ)ÓF‰ˆˆeô r$   c                 óD  — | j                  t        j                  ¬«      \  }}|r{| j                  |«      \  }}t	        |t        j
                  «      r%| j                  t        j
                  ||d¬«       |}| j                  t        j                  |¬«      \  }}|rŒzy y )N)ro   Trd   )ro   r   )r”   r   rÃ   rÌ   r   Ú	TokenListr   ré   s        r   Úalign_commentsrî   ‹  s„   € à×%Ñ%¬¯©Ð%Ó4�K€Dˆ%Ù
Ø×&Ñ& tÓ,‰ˆˆeÜ�eœSŸ]™]Ô+Ø×ÑœsŸ}™}¨d°DÀÐÔFØˆDØ×)Ñ)¬C¯K©K¸TÐ)ÓB‰ˆˆeô r$   c                 ó  — | j                  t        j                  df¬«      \  }}|}d}|r3t        |t        j
                  «      r|}| j                  |«      \  }}|rŒ3|dk7  r$| j                  t        j                  ||d¬«       y y )NÚVALUESrZ   rÒ   Trd   )	r”   r7   rN   r   r   r&   r©   r   ÚValues)r   r   r   Ú	start_idxÚend_idxs        r   Úgroup_valuesrô   –  s„   € Ø×%Ñ%¬¯©°HÐ(=Ð%Ó>�K€Dˆ%Ø€IØ€GÙ
Ü�eœSŸ_™_Ô-ØˆGØ×&Ñ& tÓ,‰ˆˆeò ð �"‚}Ø×Ñœ3Ÿ:™: y°'À$ÐÕGð r$   c                 ó  — t         t        t        t        t        t
        t        t        t        t        t        t        t        t        t        t        t         t"        t$        t&        t(        t*        t,        t.        t0        fD ]
  } || «       Œ | S r    )rÐ   r#   r'   r*   r-   r0   r3   rª   ræ   r×   r~   r±   r¦   rë   rJ   rW   rf   r¹   r£   rŒ   rÛ   r˜   rî   rÄ   rô   )ÚstmtÚfuncs     r   Úgrouprø   ¢  sq   € äô 	ÜÜÜÜÜäÜÜÜÜÜÜÜÜÜÜÜÜÜÜäÜÜð;ò ˆñ> 	ˆT�
ð?ð@ €Kr$   c                  ó   — yrx   r;   r‡   s    r   rÉ   rÉ   Ç  ó   � r$   c                  ó   — yrx   r;   r‡   s    r   rÉ   rÉ   È  rú   r$   NTc           
      ó”  — d}d\  }	}
t        t        | «      «      D ]ª  \  }}||z
  }|dk  rŒ|j                  rŒ|r)|j                  rt	        ||«      st        |||||||«        ||«      rV| j                  |«      \  }}|
r@ ||
«      r8 ||«      r0 || |	||«      \  }}| j                  ||||¬«      }|||z
  z  }||}
}	Œ§||}
}	Œ¬ y)zDGroups together tokens that are joined by a middle token. i.e. x < yr   )NNrd   N)r   r	   r
   r   r   rE   r©   r   )r   r   r   rH   rI   rB   re   r   r   r@   rê   r   r   r   rA   r}   Úfrom_idxÚto_idxÚgrps                      r   rE   rE   Æ  sò   € ð €KØ�K€Dˆ%Ü¤ U£Ó,ò "‰
ˆˆUØ�[Ñ ˆØ�!Š8Øà×ÒØá�u—~’~¬j¸ÀÔ.DÜ�5˜#˜u j°*¸dÀFÔKá�Œ<Ø×*Ñ*¨4Ó0‰KˆD�%Ù™ EÔ*©z¸%Ô/@Ù#'¨¨t°T¸4Ó#@Ñ �˜&Ø×(Ñ(¨¨h¸ÀvÐ(ÓN�à˜v¨Ñ0Ñ0�Ø&¨�e�Øà˜Eˆe‰ñ+"r$   )3Úsqlparser   r   r7   Úsqlparse.utilsr   r   rÙ   ÚIntegerÚFloatrŸ   rr   r|   rs   r    rq   ÚPlaceholderr¡   r   r#   r'   r*   r-   r0   r3   rJ   rW   rf   r~   rŒ   r˜   r£   rF   r¦   r¨   rª   r±   r¹   rÄ   rÃ   rÐ   rÔ   r×   rÛ   rz   ræ   rë   rî   rô   rø   rE   r;   r$   r   ú<module>r     sÎ  ðõ Ý  ß 'à�x‰x˜Ÿ™×)Ñ)¨1¯8©8¯>©>Ð:€Ø�H‰H�a—h‘h—o‘o q§x¡x§¡Ð7€Ø
�&‰&�!—&‘&×$Ñ$Ð	%€ò 0òF/ò,ò%ò#ò$ò&òGòGò(ò<Gò<Gò"Gò"7ñ0 	ˆ�‰Óñ>ó ð>ñ 	ˆ�‰ÓñGó ðGòEò(7ò.6ñ* 	ˆ�‰Óñ	Aó ð	Añ 	ˆ�‰ÓñHó ðHñ  	ƒñ	Kó ð	Kñ 	ˆ�‰Óñ>ó ð>ñ6 	ˆ�‰ÓñGó ðGñ 	ƒñCó ðCò	Hò!ñJ %Ù$ØØØô "r$   