ó
    ¨Rj™>  ã                   óD  • S SK Jr  S SK Jr  S SKJr  S SKJrJr  Sr	Sr
\R                  \R                  R                  \R                  R                  4r\R                  \R                  R                   \R                  R"                  4r\R&                  \R&                  R(                  4rS'S jrS rS	 rS
 rS rS rS rS rS rS rS r S r!S r"S r#\" \RH                  5      S 5       r%\" \RL                  5      S 5       r'S r(S r)S r*\" \RV                  5      S 5       r,\" \RZ                  5      S 5       r.\" 5       S 5       r/\" \R`                  5      S 5       r1\" \RH                  5      S 5       r2\" 5       S 5       r3S  r4S! r5S" S# S$S%S%S 4S& jr6g$)(é    )Úsql)Útokens)ÚSQLParseError)ÚrecurseÚimtéd   i'  c                 ó®  • [         b  U[         :”  a  [        S[          S35      e[        b0  [        U R                  5      [        :”  a  [        S[         S35      e/ nSn[        U 5      n[        U5       HË  u  pgXd-
  nUR                  (       a  M  UR                  (       a!  [        Xq5      (       d  [        XqUS-   5        MN  UR                  " UR                  6 (       a  UR                  U5        M  UR                  " UR                  6 (       d  MŸ   UR                  5       n	Un
U R#                  XU
5        XJU	-
  -  nMÍ     g! [          a     MÝ  f = f)z*Groups Tokens that have beginning and end.Nú!Maximum grouping depth exceeded (ú).ú#Maximum number of tokens exceeded (r   é   )ÚMAX_GROUPING_DEPTHr   ÚMAX_GROUPING_TOKENSÚlenr   ÚlistÚ	enumerateÚis_whitespaceÚis_groupÚ
isinstanceÚ_group_matchingÚmatchÚM_OPENÚappendÚM_CLOSEÚpopÚ
IndexErrorÚgroup_tokens)ÚtlistÚclsÚdepthÚopensÚtidx_offsetÚ
token_listÚidxÚtokenÚtidxÚopen_idxÚ	close_idxs              ÚDD:\diplom_project\venv\Lib\site-packages\sqlparse/engine/grouping.pyr   r      s9  € äÑ%¨%Ô2DÓ*DÜØ/Ô0BÐ/CÀ2ÐFó
ð 	
ô
 Ñ&Üˆu�|‰|ÓÔ2Ó2ÜØ1Ô2EÐ1FÀbÐIó
ð 	
ð €EØ€KÜ�e“€Jä 
Ö+‰
ˆØÑ ˆà××ñ à�>�>¤*¨U×"8Ñ"8ô ˜E¨°©	Ô2Ùà�;Š;˜Ÿ
™
Ö#Ø�L‰L˜Öà�[Š[˜#Ÿ+™+×&Ð&ðØ Ÿ9™9›;�ð
 ˆIØ×Ñ˜s¨iÔ8Ø xÑ/Ñ/ŠKò9 ,øô, ó ò ðús   ÄEÅ
EÅEc                 ó8   • [        U [        R                  5        g ©N)r   r   ÚSquareBrackets©r   s    r)   Úgroup_bracketsr.   L   s   € Ü�Eœ3×-Ñ-Õ.ó    c                 ó8   • [        U [        R                  5        g r+   )r   r   ÚParenthesisr-   s    r)   Úgroup_parenthesisr2   P   s   € Ü�Eœ3Ÿ?™?Õ+r/   c                 ó8   • [        U [        R                  5        g r+   )r   r   ÚCaser-   s    r)   Ú
group_caser5   T   s   € Ü�Eœ3Ÿ8™8Õ$r/   c                 ó8   • [        U [        R                  5        g r+   )r   r   ÚIfr-   s    r)   Úgroup_ifr8   X   s   € Ü�Eœ3Ÿ6™6Õ"r/   c                 ó8   • [        U [        R                  5        g r+   )r   r   ÚForr-   s    r)   Ú	group_forr;   \   s   € Ü�Eœ3Ÿ7™7Õ#r/   c                 ó8   • [        U [        R                  5        g r+   )r   r   ÚBeginr-   s    r)   Úgroup_beginr>   `   s   € Ü�Eœ3Ÿ9™9Õ%r/   c                 óT   • S nS nS nU=pE[        U [        R                  XXS5        g )Nc                 óB   • U R                  [        R                  S5      $ )Nz::©r   ÚTÚPunctuation©r%   s    r)   r   Úgroup_typecasts.<locals>.matche   s   € Ø�{‰{œ1Ÿ=™=¨$Ó/Ð/r/   c                 ó
   • U S L$ r+   © rD   s    r)   ÚvalidÚgroup_typecasts.<locals>.validh   ó   € Ø˜DÐ Ð r/   c                 ó   • X4$ r+   rG   ©r   Úpidxr&   Únidxs       r)   ÚpostÚgroup_typecasts.<locals>.postk   ó
   € ØˆzÐr/   ©Ú_groupr   Ú
Identifier©r   r   rH   rO   Ú
valid_prevÚ
valid_nexts         r)   Úgroup_typecastsrX   d   s-   € ò0ò!òð $Ð#€JÜ
ˆ5”#—.‘. %°ZÕFr/   c                 óT   • S nS nS nS n[        U [        R                  XX45        g )Nc                 óP   • U R                   [        R                  R                  :H  $ r+   )ÚttyperB   ÚKeywordÚTZCastrD   s    r)   r   Úgroup_tzcasts.<locals>.matchs   s   € Ø�{‰{œaŸi™i×.Ñ.Ñ.Ð.r/   c                 ó
   • U S L$ r+   rG   rD   s    r)   rV   Ú!group_tzcasts.<locals>.valid_prevv   rJ   r/   c                 óÚ   • U S L=(       aa    U R                   =(       dN    U R                  [        R                  S5      =(       d'    U R                  " [        R
                  R                  6 $ ©NÚAS)r   r   rB   r\   r   ÚTypedLiteralr   rD   s    r)   rW   Ú!group_tzcasts.<locals>.valid_nexty   sQ   € Ø˜DÐ ÷ 
Ø×Ñ÷ 6Ø�{‰{œ1Ÿ9™9 dÓ+÷6à�{Š{œC×,Ñ,×4Ñ4Ð5ð	
r/   c                 ó   • X4$ r+   rG   rL   s       r)   rO   Úgroup_tzcasts.<locals>.post€   rQ   r/   rR   ©r   r   rV   rW   rO   s        r)   Úgroup_tzcastsri   r   s*   € ò/ò!ò
òô ˆ5”#—.‘. %°ZÕFr/   c           
      ó˜   • S nS nS nS nS nS n[        U [        R                  XUUSS9  [        U [        R                  X#UUS	S9  g )
Nc                 óF   • [        U [        R                  R                  S9$ )N©Úm)r   r   rd   r   rD   s    r)   r   Ú"group_typed_literal.<locals>.matchŒ   s   € Ü�5œC×,Ñ,×3Ñ3Ñ4Ð4r/   c                 ó6   • [        U [        R                  5      $ r+   )r   r   rd   rD   s    r)   Úmatch_to_extendÚ,group_typed_literal.<locals>.match_to_extend�   s   € Ü˜%¤×!1Ñ!1Ó2Ð2r/   c                 ó
   • U S L$ r+   rG   rD   s    r)   rV   Ú'group_typed_literal.<locals>.valid_prev’   rJ   r/   c                 óf   • U S L=(       a'    U R                   " [        R                  R                  6 $ r+   )r   r   rd   r   rD   s    r)   rW   Ú'group_typed_literal.<locals>.valid_next•   s'   € Ø˜DÐ ×K U§[¢[´#×2BÑ2B×2JÑ2JÐ%KÐKr/   c                 óf   • U S L=(       a'    U R                   " [        R                  R                  6 $ r+   )r   r   rd   ÚM_EXTENDrD   s    r)   Úvalid_finalÚ(group_typed_literal.<locals>.valid_final˜   s'   € Ø˜DÐ ×L U§[¢[´#×2BÑ2B×2KÑ2KÐ%LÐLr/   c                 ó   • X#4$ r+   rG   rL   s       r)   rO   Ú!group_typed_literal.<locals>.post›   rQ   r/   F©ÚextendT)rS   r   rd   )r   r   rp   rV   rW   rx   rO   s          r)   Úgroup_typed_literalr~   †   sZ   € ò5ò3ò!òLòMòô ˆ5”#×"Ñ" E°zØ˜òä
ˆ5”#×"Ñ" OÀØ˜ór/   c                 óT   • S nS nS nS n[        U [        R                  XX45        g )Nc                 ó°   • [         R                  S4[         R                  S4[         R                  S44 H  u  pU R                  X5      (       d  M    g   g)NÚ.z->z->>TF)rB   rC   ÚOperatorr   )r%   r[   Úvalues      r)   r   Úgroup_period.<locals>.match¥   sM   € ÜŸm™m¨SÐ1ÜŸj™j¨$Ð/ÜŸj™j¨%Ð0ó2‰LˆEð �{‰{˜5×(Ó(Ùñ	2ð
 r/   c                 óª   • [         R                  [         R                  4n[        R                  [        R
                  R                  4n[        XUS9$ ©N©ÚiÚt)r   r,   rT   rB   ÚNameÚStringÚSymbolr   ©r%   ÚsqlclsÚttypess      r)   rV   Ú group_period.<locals>.valid_prev­   s9   € Ü×#Ñ#¤S§^¡^Ð3ˆÜ—‘œŸ™Ÿ™Ð(ˆÜ�5 fÑ-Ð-r/   c                 ó   • g©NTrG   rD   s    r)   rW   Ú group_period.<locals>.valid_next²   s   € àr/   c                 ó&  • [         R                  [         R                  4n[        R                  [        R
                  R                  [        R                  [        R
                  R                  4nUb  X   OS n[        XdUS9nU(       a  X4$ X4$ r†   )
r   r,   ÚFunctionrB   rŠ   r‹   rŒ   ÚWildcardÚSingler   )r   rM   r&   rN   rŽ   r�   Únext_rW   s           r)   rO   Úgroup_period.<locals>.post¶   sg   € ä×#Ñ#¤S§\¡\Ð1ˆÜ—‘œŸ™Ÿ™¬!¯*©*´a·h±h·o±oÐEˆØ#Ñ/�’°TˆÜ˜¨FÑ3ˆ
æ)�ˆ|Ð;°¨|Ð;r/   rR   rh   s        r)   Úgroup_periodrš   ¤   s*   € òò.ò
ò<ô ˆ5”#—.‘. %°ZÕFr/   c                 óT   • S nS nS nS n[        U [        R                  XX45        g )Nc                 óF   • U R                   =(       a    U R                  S:H  $ rb   )Ú
is_keywordÚ
normalizedrD   s    r)   r   Úgroup_as.<locals>.matchÃ   s   € Ø×Ñ×< E×$4Ñ$4¸Ñ$<Ð<r/   c                 óP   • U R                   S:H  =(       d    U R                  (       + $ )NÚNULL)rž   r�   rD   s    r)   rV   Úgroup_as.<locals>.valid_prevÆ   s!   € Ø×Ñ 6Ñ)×A°×1AÑ1AÔ-AÐAr/   c                 ó’   • [         R                  [         R                  [         R                  4n[	        XS9(       + =(       a    U S L$ ©N©r‰   )rB   ÚDMLÚDDLÚCTEr   )r%   r�   s     r)   rW   Úgroup_as.<locals>.valid_nextÉ   s2   € Ü—‘œŸ™œqŸu™uÐ$ˆÜ�uÑ'Ô'×=¨E¸Ð,=Ð=r/   c                 ó   • X4$ r+   rG   rL   s       r)   rO   Úgroup_as.<locals>.postÍ   rQ   r/   rR   rh   s        r)   Úgroup_asr¬   Â   s+   € ò=òBò>òô ˆ5”#—.‘. %°ZÕFr/   c                 óT   • S nS nS nU=pE[        U [        R                  XXS5        g )Nc                 óB   • U R                  [        R                  S5      $ )Nz:=)r   rB   Ú
AssignmentrD   s    r)   r   Úgroup_assignment.<locals>.matchÔ   s   € Ø�{‰{œ1Ÿ<™<¨Ó.Ð.r/   c                 óT   • U S L=(       a    U R                   [        R                  4;  $ r+   )r[   rB   r\   rD   s    r)   rH   Úgroup_assignment.<locals>.valid×   s!   € Ø˜DÐ ×D U§[¡[¼¿¹¸Ñ%DÐDr/   c                 ód   • [         R                  S4nU R                  XCS9u  pVU=(       d    UnX4$ )NÚ;©rm   r$   )rB   rC   Útoken_next_by)r   rM   r&   rN   Úm_semicolonÚsnidxÚ_s          r)   rO   Úgroup_assignment.<locals>.postÚ   s6   € Ü—m‘m SÐ(ˆØ×&Ñ&¨Ð&Ð?‰ˆØ�}˜ˆØˆzÐr/   )rS   r   r¯   rU   s         r)   Úgroup_assignmentr»   Ó   s.   € ò/òEòð $Ð#€JÜ
ˆ5”#—.‘. %°ZÕFr/   c           
      ó"  ^^• [         R                  [         R                  [         R                  [         R                  [         R
                  4m[        [        -   [        -   mS nUU4S jnS nU=pE[        U [         R                  UXEUSS9  g )Nc                 óP   • U R                   [        R                  R                  :H  $ r+   )r[   rB   r‚   Ú
ComparisonrD   s    r)   r   Úgroup_comparison.<locals>.matché   s   € Ø�{‰{œaŸj™j×3Ñ3Ñ3Ð3r/   c                 óz   >• [        U TTS9(       a  gU (       a"  U R                  (       a  U R                  S:X  a  gg)N)r‰   rˆ   Tr¡   F)r   r�   rž   r�   s    €€r)   rH   Úgroup_comparison.<locals>.validì   s0   ø€ Üˆu˜ &×)ØÞ�u×'×'¨E×,<Ñ,<ÀÓ,FØàr/   c                 ó   • X4$ r+   rG   rL   s       r)   rO   Úgroup_comparison.<locals>.postô   rQ   r/   Fr|   )r   r1   r•   rT   Ú	Operationrd   ÚT_NUMERICALÚT_STRINGÚT_NAMErS   r¾   ©r   r   rH   rO   rV   rW   rŽ   r�   s         @@r)   Úgroup_comparisonrÉ   ä   sm   ù€ Ü�o‰oœsŸ|™|¬S¯^©^Ü�m‰mœS×-Ñ-ð/€Fäœ8Ñ#¤fÑ,€Fò4öòð $Ð#€JÜ
ˆ5”#—.‘. %Ø 4°ó7r/   c                 óþ   • [         R                  R                  [         R                  4nU R	                  US9u  p#U(       a;  U R                  [        R                  X"5        U R	                  XS9u  p#U(       a  M:  g g )Nr¥   ©r‰   r$   )rB   r‹   rŒ   rŠ   r¶   r   r   rT   )r   r�   r&   r%   s       r)   Úgroup_identifierrÌ   ü   s`   € ä�h‰h�o‰oœqŸv™vÐ&€Fà×%Ñ%¨Ð%Ð/�K€DÞ
Ø×Ñœ3Ÿ>™>¨4Ô6Ø×)Ñ)¨FÐ)Ð=‰ˆ÷ Š%r/   c                 óŠ  • U R                  [        R                  R                  S9u  pU(       a“  U R	                  U5      u  p4[        U[        R                  [        R                  S9(       a   U R                  [        R                  X5        U R                  [        R                  R                  US9u  pU(       a  M’  g g )Nrl   r‡   rµ   )
r¶   r   ÚOverr   Ú
token_nextr   r1   rB   rŠ   r   )r   r&   r%   rN   r˜   s        r)   Ú
group_overrÐ     s‚   € à×%Ñ%¬¯©¯©Ð%Ð8�K€DÞ
Ø×&Ñ& tÓ,‰ˆÜˆuœŸ™¬1¯6©6×2Ø×ÑœsŸx™x¨Ô4Ø×)Ñ)¬C¯H©H¯O©OÀÐ)ÐF‰ˆ÷	 Š%r/   c                 ó  ^^• [         R                  [         R                  [         R                  4m[        R
                  [        R                  R                  4mS nUU4S jnS nS n[        U [         R                  UX#USSS9  g )Nc                 ó6   • [        U [        R                  5      $ r+   )r   r   r,   rD   s    r)   r   Úgroup_arrays.<locals>.match  s   € Ü˜%¤×!3Ñ!3Ó4Ð4r/   c                 ó   >• [        U TTS9$ r†   ©r   r�   s    €€r)   rV   Ú group_arrays.<locals>.valid_prev  s   ø€ Ü�5˜F fÑ-Ð-r/   c                 ó   • gr’   rG   rD   s    r)   rW   Ú group_arrays.<locals>.valid_next  s   € Ør/   c                 ó   • X4$ r+   rG   rL   s       r)   rO   Úgroup_arrays.<locals>.post  rQ   r/   TF)r}   r   )	r   r,   rT   r•   rB   rŠ   r‹   rŒ   rS   )r   r   rV   rW   rO   rŽ   r�   s        @@r)   Úgroup_arraysrÛ     se   ù€ Ü×Ñ¤§¡´·±Ð=€FÜ�V‰V”Q—X‘X—_‘_Ð$€Fò5ö.òòô ˆ5”#—.‘. %Ø 4°¸eóEr/   c           
      ó@  ^^• [         [        -   [        -   m[        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  4mS nUU4S jnS nU=pE[        U [        R                  UXEUSS9  g )Nc                 óR   • [        U [        R                  [        R                  4S9$ r¤   )r   rB   r‚   r–   rD   s    r)   r   Úgroup_operator.<locals>.match)  s   € Ü�5œQŸZ™Z¬¯©Ð4Ñ5Ð5r/   c                 óz   >• [        U TTS9=(       d)    U =(       a     U R                  [        R                  S5      $ )Nr‡   )ÚCURRENT_DATEÚCURRENT_TIMEÚCURRENT_TIMESTAMP)r   r   rB   r\   r�   s    €€r)   rH   Úgroup_operator.<locals>.valid,  s:   ø€ Ü�5˜F fÑ-÷ HØ÷ G˜%Ÿ+™+Ü—	‘	ØEóGð	Hr/   c                 ó6   • [         R                  X   l        X4$ r+   )rB   r‚   r[   rL   s       r)   rO   Úgroup_operator.<locals>.post2  s   € ÜŸJ™Jˆ‰ÔØˆzÐr/   Fr|   )rÅ   rÆ   rÇ   r   r,   r1   r•   rT   rÄ   rd   rS   rÈ   s         @@r)   Úgroup_operatorræ   $  sv   ù€ Üœ8Ñ#¤fÑ,€FÜ× Ñ ¤#§/¡/´3·<±<Ü�n‰nœcŸm™m¬S×-=Ñ-=ð?€Fò6öHòð $Ð#€JÜ
ˆ5”#—-‘- Ø 4°ó7r/   c           
      óÈ  ^^^• [         R                  S4m[        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  4m[        [        -   [        -   [         R                  [         R                  [         R                  4-   mS nUUU4S jnS nU=pE[        U [        R                  UXEUSS9  g )N)ÚnullÚrolec                 óB   • U R                  [        R                  S5      $ )NÚ,rA   rD   s    r)   r   Ú$group_identifier_list.<locals>.matchB  s   € Ø�{‰{œ1Ÿ=™=¨#Ó.Ð.r/   c                 ó   >• [        U TTTS9$ )N)rˆ   rm   r‰   rÕ   )r%   Úm_rolerŽ   r�   s    €€€r)   rH   Ú$group_identifier_list.<locals>.validE  s   ø€ Ü�5˜F f°Ñ7Ð7r/   c                 ó   • X4$ r+   rG   rL   s       r)   rO   Ú#group_identifier_list.<locals>.postH  rQ   r/   Tr|   )rB   r\   r   r•   r4   rT   r¾   ÚIdentifierListrÄ   rÅ   rÆ   rÇ   ÚCommentr–   rS   )	r   r   rH   rO   rV   rW   rî   rŽ   r�   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Ø 4°ó6r/   c                 ó4  • U R                  [        R                  S9u  pU(       ar  U R                  S US9u  p4Ub2  U R	                  USS9u  p4U R                  [        R                  X5        U R                  [        R                  US9u  pU(       a  Mq  g g )Nr¥   c                 óX   • [        U [        R                  S9=(       d    U R                  $ r¤   )r   rB   ró   Ú
is_newline)Útks    r)   Ú<lambda>Ú group_comments.<locals>.<lambda>U  s   € ”s˜2¤§¡Ñ+×<¨r¯}©}Ð<r/   )r$   F)Úskip_wsrË   )r¶   rB   ró   Útoken_not_matchingÚ
token_prevr   r   ©r   r&   r%   ÚeidxÚends        r)   Úgroup_commentsr  P  s�   € à×%Ñ%¬¯	©	Ð%Ð2�K€DÞ
Ø×,Ñ,Ù<À$ð -ð H‰	ˆà‰?Ø×(Ñ(¨°uÐ(Ð=‰IˆDØ×ÑœsŸ{™{¨DÔ7à×)Ñ)¬A¯I©I¸4Ð)Ð@‰ˆ÷ Š%r/   c                 óÌ  • U R                  [        R                  R                  S9u  pU(       a´  U R                  [        R                  R                  US9u  p4Uc  U R
                  S   nOU R                  US-
     nU R                  U5      nU R                  [        R                  X5        U R                  [        R                  R                  US9u  pU(       a  M³  g g )Nrl   rµ   éÿÿÿÿr   )	r¶   r   ÚWherer   r   Ú_groupable_tokensr   Útoken_indexr   rþ   s        r)   Úgroup_wherer  ]  sº   € à×%Ñ%¬¯	©	×(8Ñ(8Ð%Ð9�K€DÞ
Ø×'Ñ'¬#¯)©)×*;Ñ*;ÀÐ'ÐF‰	ˆà‰;Ø×)Ñ)¨"Ñ-‰Cà—,‘,˜t a™xÑ(ˆCð × Ñ  Ó%ˆØ×Ñœ3Ÿ9™9 dÔ1Ø×)Ñ)¬C¯I©I×,<Ñ,<À$Ð)ÐG‰ˆ÷ Š%r/   c                 ó  • [         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  4nU R                  U[        R                  S9u  p#U(       a|  U R                  U5      u  pE[        U[         R                  5      (       a  U R                  [         R                  X$SS9  U R                  U[        R                  US9u  p#U(       a  M{  g g )Nr‡   Tr|   )rˆ   r‰   r$   )r   r1   r•   r4   rT   rÄ   r¾   r¶   rB   ÚNumberrÏ   r   r   )r   ÚI_ALIASr&   r%   rN   r˜   s         r)   Úgroup_aliasedr  n  s¯   € ä�‰¤§¡¬c¯h©h¼¿¹Ü�}‰}œcŸn™nð.€Gð ×%Ñ%¨´1·8±8Ð%Ð<�K€DÞ
Ø×&Ñ& tÓ,‰ˆÜ�eœSŸ^™^×,Ñ,Ø×ÑœsŸ~™~¨tÀ$ÐÑGØ×)Ñ)¨G´q·x±xÀTÐ)ÐJ‰ˆ÷	 Š%r/   c                 óÊ  • SnSnSnU R                    HW  nUR                  R                  5       S:X  a  SnUR                  R                  5       S:X  a  SnUR                  S:X  d  MU  SnMY     U(       a  U(       a  U(       d  g U R                  [        R
                  S9u  pVU(       aº  U R                  U5      u  px[        U[        R                  5      (       a^  U R                  U5      u  pšU
(       a"  [        U
[        R                  5      (       a  U	nOUnU R                  [        R                  X[5        U R                  [        R
                  US9u  pVU(       a  M¹  g g )NFÚCREATETÚTABLErc   r¥   rË   )r   rƒ   Úupperr¶   rB   rŠ   rÏ   r   r   r1   rÎ   r   r•   )r   Ú
has_createÚ	has_tableÚhas_asÚ	tmp_tokenr&   r%   rN   r˜   Úover_idxÚoverrÿ   s               r)   Úgroup_functionsr  {  s  € à€JØ€IØ€FØ—\”\ˆ	Ø�?‰?× Ñ Ó" hÓ.ØˆJØ�?‰?× Ñ Ó" gÓ-ØˆIØ�?‰?˜dÕ"ØŠFñ "ö –i®Øà×%Ñ%¬¯©Ð%Ð/�K€DÞ
Ø×&Ñ& tÓ,‰ˆÜ�eœSŸ_™_×-Ñ-Ø"×-Ñ-¨dÓ3‰NˆHÞœ
 4¬¯©×2Ñ2Ø‘à�Ø×ÑœsŸ|™|¨TÔ8Ø×)Ñ)¬A¯F©F¸Ð)Ð=‰ˆ÷ Š%r/   c                 óŽ  • U R                  [        R                  R                  S9u  pU(       a•  U R	                  U5      u  p4[        U[        R                  [        R                  S9(       a"  U R                  [        R                  X15        UnU R                  [        R                  R                  US9u  pU(       a  M”  gg)z,Group together Identifier and Asc/Desc tokenr¥   r‡   rË   N)
r¶   rB   r\   ÚOrderrý   r   r   rT   r	  r   ©r   r&   r%   rM   Úprev_s        r)   Úgroup_orderr  —  s‰   € ð ×%Ñ%¬¯	©	¯©Ð%Ð8�K€DÞ
Ø×&Ñ& tÓ,‰ˆÜˆuœŸ™¬!¯(©(×3Ø×ÑœsŸ~™~¨tÔ:ØˆDØ×)Ñ)¬A¯I©I¯O©OÀÐ)ÐF‰ˆ÷ Š%r/   c                 óJ  • U R                  [        R                  S9u  pU(       a}  U R                  U5      u  p4[	        U[        R
                  5      (       a!  U R                  [        R
                  X1SS9  UnU R                  [        R                  US9u  pU(       a  M|  g g )N)rˆ   Tr|   )rˆ   r$   )r¶   r   ró   rý   r   Ú	TokenListr   r  s        r)   Úalign_commentsr  £  s�   € à×%Ñ%¬¯©Ð%Ð4�K€DÞ
Ø×&Ñ& tÓ,‰ˆÜ�eœSŸ]™]×+Ñ+Ø×ÑœsŸ}™}¨dÀÐÑFØˆDØ×)Ñ)¬C¯K©K¸TÐ)ÐB‰ˆ÷ Š%r/   c                 ó"  • U R                  [        R                  S4S9u  pUnSnU(       a=  [        U[        R
                  5      (       a  UnU R                  U5      u  pU(       a  M=  US:w  a   U R                  [        R                  X4SS9  g g )NÚVALUESrl   r  Tr|   )	r¶   rB   r\   r   r   r1   rÏ   r   ÚValues)r   r&   r%   Ú	start_idxÚend_idxs        r)   Úgroup_valuesr$  ®  sƒ   € Ø×%Ñ%¬¯©°HÐ(=Ð%Ð>�K€DØ€IØ€GÞ
Ü�eœSŸ_™_×-Ñ-ØˆGØ×&Ñ& tÓ,‰ˆ÷ ˆ%ð �"ƒ}Ø×Ñœ3Ÿ:™: yÀ$ÐÒGð r/   c                 ó"  • [         [        [        [        [        [
        [        [        [        [        [        [        [        [        [        [        [         ["        [$        [&        [(        [*        [,        [.        [0        4 H  nU" U 5        M     U $ r+   )r  r.   r2   r5   r8   r;   r>   rÐ   r  r  rš   rÛ   rÌ   r  rX   ri   r~   ræ   rÉ   r¬   r  r»   r  rô   r$  )ÚstmtÚfuncs     r)   Úgroupr(  º  sl   € äô 	ÜÜÜÜÜäÜÜÜÜÜÜÜÜÜÜÜÜÜÜäÜÜó;ˆñ> 	ˆTŽ
ñ?ð@ €Kr/   c                 ó   • gr’   rG   r¥   s    r)   rù   rù   ß  ó   €  r/   c                 ó   • gr’   rG   r¥   s    r)   rù   rù   à  r*  r/   NTc	                 ó˜  • [         b  U[         :”  a  [        S[          S35      e[        b0  [        U R                  5      [        :”  a  [        S[         S35      eSn	Su  p«[        U 5      n[        U5       HÏ  u  pÞXÙ-
  nUS:  a  M  UR                  (       a  M$  U(       a4  UR                  (       a#  [        Xá5      (       d  [        XáX#UXVSUS-   5	        U" U5      (       aa  U R                  U5      u  nnU(       aF  U" U5      (       a9  U" U5      (       a,  U" X
UU5      u  nnU R                  UUUUS	9nU	UU-
  -  n	UUpºMÍ  XþpºMÑ     g)
zDGroups together tokens that are joined by a middle token. i.e. x < yNr
   r   r   r   )NNTr   r|   )r   r   r   r   r   r   r   r   r   r   rS   rÏ   r   )r   r   r   rV   rW   rO   r}   r   r    r"   rM   r  r#   r$   r%   r&   rN   r˜   Úfrom_idxÚto_idxÚgrps                        r)   rS   rS   Þ  sT  € ô Ñ%¨%Ô2DÓ*DÜØ/Ô0BÐ/CÀ2ÐFó
ð 	
ô
 Ñ&Üˆu�|‰|ÓÔ2Ó2ÜØ1Ô2EÐ1FÀbÐIó
ð 	
ð €KØ�K€DÜ�e“€Jä 
Ö+‰
ˆØÑ ˆØ�!‹8Ùà××Ùæ�u—~—~¬j¸×.DÑ.DÜ�5˜u°*Ø  u¨q¡yô2ñ ��<‰<Ø×*Ñ*¨4Ó0‰KˆD�%Þ™ E×*Ñ*©z¸%×/@Ñ/@Ù#'¨°T¸4Ó#@Ñ �˜&Ø×(Ñ(¨¨h¸ÀvÐ(ÐN�à˜v¨Ñ0Ñ0�Ø&¨�eÙàŠeò- ,r/   )r   )7Úsqlparser   r   rB   Úsqlparse.exceptionsr   Úsqlparse.utilsr   r   r   r   r	  ÚIntegerÚFloatrÅ   r‹   r—   rŒ   rÆ   rŠ   ÚPlaceholderrÇ   r   r.   r2   r5   r8   r;   r>   rX   ri   r~   rš   r¬   r»   rÉ   rT   rÌ   rÎ   rÐ   rÛ   ræ   rô   ró   r  r  r  r  r•   r  r  r  r$  r(  rS   rG   r/   r)   Ú<module>r6     sä  ðõ Ý  Ý -ß 'ð Ð ð
 Ð à�x‰x˜Ÿ™×)Ñ)¨1¯8©8¯>©>Ð:€Ø�H‰H�a—h‘h—o‘o q§x¡x§¡Ð7€Ø
�&‰&�!—&‘&×$Ñ$Ð	%€ô.0òb/ò,ò%ò#ò$ò&ò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/   