+
    R<Âjn?  ã                   óF  € ^ RI Ht ^ RI Ht ^ RIHt ^ RIHtHt ^dt	Rt
]P                  ]P                  P                  ]P                  P                  3t]P                  ]P                  P                   ]P                  P"                  3t]P&                  ]P&                  P(                  3tR&R ltR tR tR	 tR
 tR tR tR tR tR tR t R t!R t"R t#]! ]PH                  4      R 4       t%]! ]PL                  4      R 4       t'R t(R t)R t*]! ]PV                  4      R 4       t,]! ]PZ                  4      R 4       t.]! 4       R 4       t/]! ]P`                  4      R 4       t1]! ]PH                  4      R 4       t2]! 4       R 4       t3R t4R  t5R! R" R#R$R$^ 3R% lt6R## )'é    )Úsql)Útokens)ÚSQLParseError)ÚimtÚrecursei'  c                óè  € \         e   V\         8”  d   \        R\          R24      h\        e2   \        V P                  4      \        8”  d   \        R\         R24      h. p^ p\        V 4      p\        V4       Fâ  w  rgWd,
          pVP                  '       d   K!  VP                  '       d'   \        Wq4      '       g   \        WqV^,           4       KY  VP                  ! VP                  !  '       d   VP                  V4       KŒ  VP                  ! VP                  !  '       g   K®   VP                  4       p	Tp
T P#                  YT
4       YJT	,
          ,          pKä  	  R#   \          d     Kö  i ; i)z*Groups Tokens that have beginning and end.Nú!Maximum grouping depth exceeded (ú).ú#Maximum number of tokens exceeded ()Ú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   &&&        ÚX/var/www/html/data_capital/venv/lib/python3.14/site-packages/sqlparse/engine/grouping.pyr   r      sA  € äÒ%¨%Ô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"Å"E1Å0E1c                 ó:   € \        V \        P                  4       R # ©N)r   r   ÚSquareBrackets©r   s   &r'   Úgroup_bracketsr,   L   s   € Ü�Eœ3×-Ñ-Ö.ó    c                 ó:   € \        V \        P                  4       R # r)   )r   r   ÚParenthesisr+   s   &r'   Úgroup_parenthesisr0   P   s   € Ü�Eœ3Ÿ?™?Ö+r-   c                 ó:   € \        V \        P                  4       R # r)   )r   r   ÚCaser+   s   &r'   Ú
group_caser3   T   s   € Ü�Eœ3Ÿ8™8Ö$r-   c                 ó:   € \        V \        P                  4       R # r)   )r   r   ÚIfr+   s   &r'   Úgroup_ifr6   X   s   € Ü�Eœ3Ÿ6™6Ö"r-   c                 ó:   € \        V \        P                  4       R # r)   )r   r   ÚForr+   s   &r'   Ú	group_forr9   \   s   € Ü�Eœ3Ÿ7™7Ö#r-   c                 ó:   € \        V \        P                  4       R # r)   )r   r   ÚBeginr+   s   &r'   Úgroup_beginr<   `   s   € Ü�Eœ3Ÿ9™9Ö%r-   c                 óV   € R  pR pR pT;rE\        V \        P                  WWS4       R# )c                 óB   € V P                  \        P                  R 4      # )z::©r   ÚTÚPunctuation©r#   s   &r'   r   Úgroup_typecasts.<locals>.matche   s   € Ø�{‰{œ1Ÿ=™=¨$Ó/Ð/r-   c                 ó
   € V R J# r)   © rB   s   &r'   ÚvalidÚgroup_typecasts.<locals>.validh   ó   € Ø˜DÐ Ð r-   c                 ó   € W3# r)   rE   ©r   Úpidxr$   Únidxs   &&&&r'   ÚpostÚgroup_typecasts.<locals>.postk   ó
   € ØˆzÐr-   N©Ú_groupr   Ú
Identifier©r   r   rF   rM   Ú
valid_prevÚ
valid_nexts   &     r'   Úgroup_typecastsrV   d   s-   € ò0ò!òð $Ð#€JÜ
ˆ5”#—.‘. %°ZÖFr-   c                 óV   € R  pR pR pR p\        V \        P                  WW44       R# )c                 óP   € V P                   \        P                  P                  8H  # r)   )Úttyper@   ÚKeywordÚTZCastrB   s   &r'   r   Úgroup_tzcasts.<locals>.matchs   s   € Ø�{‰{œaŸi™i×.Ñ.Ñ.Ð.r-   c                 ó
   € V R J# r)   rE   rB   s   &r'   rT   Ú!group_tzcasts.<locals>.valid_prevv   rH   r-   c                 óâ   € V R J;'       de    V P                   ;'       gQ    V P                  \        P                  R4      ;'       g)    V P                  ! \        P
                  P                  !  # )NÚAS)r   r   r@   rZ   r   ÚTypedLiteralr   rB   s   &r'   rU   Ú!group_tzcasts.<locals>.valid_nexty   s`   € Ø˜DÐ ÷ 
ð 
Ø×Ñ÷ 6ð 6Ø�{‰{œ1Ÿ9™9 dÓ+÷6ð 6à�{Š{œC×,Ñ,×4Ñ4Ñ5ð	
r-   c                 ó   € W3# r)   rE   rJ   s   &&&&r'   rM   Úgroup_tzcasts.<locals>.post€   rO   r-   NrP   ©r   r   rT   rU   rM   s   &    r'   Úgroup_tzcastsrf   r   s*   € ò/ò!ò
òô ˆ5”#—.‘. %°ZÖFr-   c           
      ó¦   € R  pR pR pR pR pR p\        V \        P                  WVVRR7       \        V \        P                  W#VVRR7       R	# )
c                 óL   € \        V \        P                  P                  R 7      # )©Úm)r   r   ra   r   rB   s   &r'   r   Ú"group_typed_literal.<locals>.matchŒ   s   € Ü�5œC×,Ñ,×3Ñ3Ô4Ð4r-   c                 ó6   € \        V \        P                  4      # r)   )r   r   ra   rB   s   &r'   Úmatch_to_extendÚ,group_typed_literal.<locals>.match_to_extend�   s   € Ü˜%¤×!1Ñ!1Ó2Ð2r-   c                 ó
   € V R J# r)   rE   rB   s   &r'   rT   Ú'group_typed_literal.<locals>.valid_prev’   rH   r-   c                 ój   € V R J;'       d)    V P                   ! \        P                  P                  !  # r)   )r   r   ra   r   rB   s   &r'   rU   Ú'group_typed_literal.<locals>.valid_next•   s*   € Ø˜DÐ ×KÐK U§[¢[´#×2BÑ2B×2JÑ2JÑ%KÐKr-   c                 ój   € V R J;'       d)    V P                   ! \        P                  P                  !  # r)   )r   r   ra   ÚM_EXTENDrB   s   &r'   Úvalid_finalÚ(group_typed_literal.<locals>.valid_final˜   s*   € Ø˜DÐ ×LÐL U§[¢[´#×2BÑ2B×2KÑ2KÑ%LÐLr-   c                 ó   € W#3# r)   rE   rJ   s   &&&&r'   rM   Ú!group_typed_literal.<locals>.post›   rO   r-   F©ÚextendTN)rQ   r   ra   )r   r   rm   rT   rU   ru   rM   s   &      r'   Úgroup_typed_literalr{   †   sZ   € ò5ò3ò!òLòMòô ˆ5”#×"Ñ" E°zØ˜õä
ˆ5”#×"Ñ" OÀØ˜÷r-   c                 óV   € R  pR pR pR p\        V \        P                  WW44       R# )c                 ó¶   € \         P                  R 3\         P                  R3\         P                  R33 F  w  rV P                  W4      '       g   K   R# 	  R# )Ú.z->z->>TF)r@   rA   ÚOperatorr   )r#   rY   Úvalues   &  r'   r   Úgroup_period.<locals>.match¥   sM   € ÜŸm™m¨SÐ1ÜŸj™j¨$Ð/ÜŸj™j¨%Ð0ó2‰LˆEð �{‰{˜5×(Ô(Úñ	2ñ
 r-   c                 ó°   € \         P                  \         P                  3p\        P                  \        P
                  P                  3p\        WVR 7      # ©©ÚiÚt)r   r*   rR   r@   ÚNameÚStringÚSymbolr   ©r#   ÚsqlclsÚttypess   &  r'   rT   Ú group_period.<locals>.valid_prev­   s9   € Ü×#Ñ#¤S§^¡^Ð3ˆÜ—‘œŸ™Ÿ™Ð(ˆÜ�5 fÔ-Ð-r-   c                 ó   € R # ©TrE   rB   s   &r'   rU   Ú group_period.<locals>.valid_next²   s   € ár-   c                 ó8  € \         P                  \         P                  3p\        P                  \        P
                  P                  \        P                  \        P
                  P                  3pVe	   W,          MR p\        WdVR7      pV'       d   W3# W3# )Nr„   )
r   r*   ÚFunctionr@   r‡   rˆ   r‰   ÚWildcardÚSingler   )r   rK   r$   rL   r‹   rŒ   Únext_rU   s   &&&&    r'   rM   Úgroup_period.<locals>.post¶   sg   € ä×#Ñ#¤S§\¡\Ð1ˆÜ—‘œŸ™Ÿ™¬!¯*©*´a·h±h·o±oÐEˆØ#Ò/�–°TˆÜ˜¨FÔ3ˆ
ç)�ˆ|Ð;°¨|Ð;r-   NrP   re   s   &    r'   Úgroup_periodr—   ¤   s*   € òò.ò
ò<ô ˆ5”#—.‘. %°ZÖFr-   c                 óV   € R  pR pR pR p\        V \        P                  WW44       R# )c                 óH   € V P                   ;'       d    V P                  R 8H  # )r`   )Ú
is_keywordÚ
normalizedrB   s   &r'   r   Úgroup_as.<locals>.matchÃ   s!   € Ø×Ñ×<Ð< E×$4Ñ$4¸Ñ$<Ð<r-   c                 óR   € V P                   R 8H  ;'       g    V P                  '       * # )ÚNULL)r›   rš   rB   s   &r'   rT   Úgroup_as.<locals>.valid_prevÆ   s$   € Ø×Ñ 6Ñ)×AÐA°×1AÑ1AÔ-AÐAr-   c                 óš   € \         P                  \         P                  \         P                  3p\	        WR 7      '       * ;'       d    V RJ# )©r†   N)r@   ÚDMLÚDDLÚCTEr   )r#   rŒ   s   & r'   rU   Úgroup_as.<locals>.valid_nextÉ   s5   € Ü—‘œŸ™œqŸu™uÐ$ˆÜ�uÔ'Ô'×=Ð=¨E¸Ð,=Ð=r-   c                 ó   € W3# r)   rE   rJ   s   &&&&r'   rM   Úgroup_as.<locals>.postÍ   rO   r-   NrP   re   s   &    r'   Úgroup_asr¨   Â   s+   € ò=òBò>òô ˆ5”#—.‘. %°ZÖFr-   c                 óV   € R  pR pR pT;rE\        V \        P                  WWS4       R# )c                 óB   € V P                  \        P                  R 4      # )z:=)r   r@   Ú
AssignmentrB   s   &r'   r   Úgroup_assignment.<locals>.matchÔ   s   € Ø�{‰{œ1Ÿ<™<¨Ó.Ð.r-   c                 óV   € V R J;'       d    V P                   \        P                  39  # r)   )rY   r@   rZ   rB   s   &r'   rF   Úgroup_assignment.<locals>.valid×   s$   € Ø˜DÐ ×DÐD U§[¡[¼¿¹¸Ñ%DÐDr-   c                 ól   € \         P                  R 3pV P                  WCR7      w  rVT;'       g    TpW3# )Ú;©rj   r"   )r@   rA   Útoken_next_by)r   rK   r$   rL   Úm_semicolonÚsnidxÚ_s   &&&&   r'   rM   Úgroup_assignment.<locals>.postÚ   s8   € Ü—m‘m SÐ(ˆØ×&Ñ&¨Ð&Ó?‰ˆØ�}ˆ}˜ˆØˆzÐr-   N)rQ   r   r«   rS   s   &     r'   Úgroup_assignmentr·   Ó   s.   € ò/òEòð $Ð#€JÜ
ˆ5”#—.‘. %°ZÖFr-   c           
      ó:  aa€ \         P                  \         P                  \         P                  \         P                  \         P
                  3o\        \        ,           \        ,           oR  pVV3R lpR pT;rE\        V \         P                  VWEVRR7       R# )c                 óP   € V P                   \        P                  P                  8H  # r)   )rY   r@   r   Ú
ComparisonrB   s   &r'   r   Úgroup_comparison.<locals>.matché   s   € Ø�{‰{œaŸj™j×3Ñ3Ñ3Ð3r-   c                 óœ   <€ \        \        V SSR 7      ;'       g.    T ;'       d$    V P                  ;'       d    V P                  R8H  4      # ))r†   r…   rž   )Úboolr   rš   r›   rŠ   s   &€€r'   rF   Úgroup_comparison.<locals>.validì   sB   ø€ Ü”C˜ ¨6Ô2×qÐq°u×7pÐ7pÀ×AQÑAQ×7pÐ7pÐV[×VfÑVfÐjpÑVpÓrÐrr-   c                 ó   € W3# r)   rE   rJ   s   &&&&r'   rM   Úgroup_comparison.<locals>.postï   rO   r-   Fry   N)r   r/   r’   rR   Ú	Operationra   ÚT_NUMERICALÚT_STRINGÚT_NAMErQ   rº   ©r   r   rF   rM   rT   rU   r‹   rŒ   s   &     @@r'   Úgroup_comparisonrÆ   ä   sn   ù€ Ü�o‰oœsŸ|™|¬S¯^©^Ü�m‰mœS×-Ñ-ð/€Fäœ8Õ#¤fÕ,€Fò4ösòð $Ð#€JÜ
ˆ5”#—.‘. %Ø 4°÷7r-   c                 óþ   € \         P                  P                  \         P                  3pV P	                  VR 7      w  r#V'       d7   V P                  \        P                  W"4       V P	                  WR7      w  r#K>  R# )r¡   ©r†   r"   N)r@   rˆ   r‰   r‡   r²   r   r   rR   )r   rŒ   r$   r#   s   &   r'   Úgroup_identifierrÉ   ÷   s`   € ä�h‰h�o‰oœqŸv™vÐ&€Fà×%Ñ%¨Ð%Ó/�K€Dß
Ø×Ñœ3Ÿ>™>¨4Ô6Ø×)Ñ)¨FÐ)Ó=‰ˆ‰eñ r-   c                 ó’  € V P                  \        P                  P                  R 7      w  rV'       d“   V P	                  V4      w  r4\        V\        P                  \        P                  R7      '       d!   V P                  \        P                  W4       V P                  \        P                  P                  VR7      w  rKš  R# )ri   r„   r±   N)
r²   r   ÚOverr   Ú
token_nextr   r/   r@   r‡   r   )r   r$   r#   rL   r•   s   &    r'   Ú
group_overrÍ     s…   € à×%Ñ%¬¯©¯©Ð%Ó8�K€Dß
Ø×&Ñ& tÓ,‰ˆÜˆuœŸ™¬1¯6©6×2Ó2Ø×ÑœsŸx™x¨Ô4Ø×)Ñ)¬C¯H©H¯O©OÀÐ)ÓF‰ˆ‰eñ	 r-   c                 ó  aa€ \         P                  \         P                  \         P                  3o\        P
                  \        P                  P                  3oR  pVV3R lpR pR p\        V \         P                  VW#VRRR7       R# )c                 ó6   € \        V \        P                  4      # r)   )r   r   r*   rB   s   &r'   r   Úgroup_arrays.<locals>.match  s   € Ü˜%¤×!3Ñ!3Ó4Ð4r-   c                 ó    <€ \        V SSR 7      # rƒ   ©r   rŠ   s   &€€r'   rT   Ú group_arrays.<locals>.valid_prev  s   ø€ Ü�5˜F fÔ-Ð-r-   c                 ó   € R # r�   rE   rB   s   &r'   rU   Ú group_arrays.<locals>.valid_next  s   € Ùr-   c                 ó   € W3# r)   rE   rJ   s   &&&&r'   rM   Úgroup_arrays.<locals>.post  rO   r-   TF)rz   r   N)	r   r*   rR   r’   r@   r‡   rˆ   r‰   rQ   )r   r   rT   rU   rM   r‹   rŒ   s   &    @@r'   Úgroup_arraysrØ     se   ù€ Ü×Ñ¤§¡´·±Ð=€FÜ�V‰V”Q—X‘X—_‘_Ð$€Fò5ö.òòô ˆ5”#—.‘. %Ø 4°¸e÷Er-   c           
      óX  aa€ \         \        ,           \        ,           o\        P                  \        P
                  \        P                  \        P                  \        P                  \        P                  3oR  pVV3R lpR pT;rE\        V \        P                  VWEVRR7       R# )c                 óX   € \        V \        P                  \        P                  3R 7      # ©r¡   )r   r@   r   r“   rB   s   &r'   r   Úgroup_operator.<locals>.match$  s   € Ü�5œQŸZ™Z¬¯©Ð4Ô5Ð5r-   c                 ó„   <€ \        V SSR 7      ;'       g+    T ;'       d!    V P                  \        P                  R4      # )r„   )ÚCURRENT_DATEÚCURRENT_TIMEÚCURRENT_TIMESTAMP)r   r   r@   rZ   rŠ   s   &€€r'   rF   Úgroup_operator.<locals>.valid'  sF   ø€ Ü�5˜F fÔ-÷ Hð HØ÷ Gð G˜%Ÿ+™+Ü—	‘	ØEóGð	Hr-   c                 ó>   € \         P                  W,          n        W3# r)   )r@   r   rY   rJ   s   &&&&r'   rM   Úgroup_operator.<locals>.post-  s   € ÜŸJ™Jˆ�ÔØˆzÐr-   Fry   N)rÂ   rÃ   rÄ   r   r*   r/   r’   rR   rÁ   ra   rQ   rÅ   s   &     @@r'   Úgroup_operatorrä     sv   ù€ Üœ8Õ#¤fÕ,€FÜ× Ñ ¤#§/¡/´3·<±<Ü�n‰nœcŸm™m¬S×-=Ñ-=ð?€Fò6öHòð $Ð#€JÜ
ˆ5”#—-‘- Ø 4°÷7r-   c           
      óè  aaa€ \         P                  R3o\        P                  \        P                  \        P
                  \        P                  \        P                  \        P                  3o\        \        ,           \        ,           \         P                  \         P                  \         P                  3,           oR pVVV3R lpR pT;rE\        V \        P                  VWEVRR7       R# )Únullc                 óB   € V P                  \        P                  R 4      # )Ú,r?   rB   s   &r'   r   Ú$group_identifier_list.<locals>.match=  s   € Ø�{‰{œ1Ÿ=™=¨#Ó.Ð.r-   c                 ó"   <€ \        V SSSR 7      # ))r…   rj   r†   rÒ   )r#   Úm_roler‹   rŒ   s   &€€€r'   rF   Ú$group_identifier_list.<locals>.valid@  s   ø€ Ü�5˜F f°Ô7Ð7r-   c                 ó   € W3# r)   rE   rJ   s   &&&&r'   rM   Ú#group_identifier_list.<locals>.postC  rO   r-   Try   N)ræ   Úrole)r@   rZ   r   r’   r2   rR   rº   ÚIdentifierListrÁ   rÂ   rÃ   rÄ   ÚCommentr“   rQ   )	r   r   rF   rM   rT   rU   rë   r‹   rŒ   s	   &     @@@r'   Úgroup_identifier_listrò   6  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                 óF  € V P                  \        P                  R 7      w  rV'       dw   V P                  R VR7      w  r4Vf   R# V P	                  VRR7      w  r4V P                  \        P                  W4       V P                  \        P                  VR7      w  rK~  R# )r¡   c                 ó`   € \        V \        P                  R 7      ;'       g    V P                  # rÛ   )r   r@   rñ   Ú
is_newline)Útks   &r'   Ú<lambda>Ú group_comments.<locals>.<lambda>P  s   € ”s˜2¤§¡Ô+×<Ð<¨r¯}©}Ð<r-   )r"   NF)Úskip_wsrÈ   )r²   r@   rñ   Útoken_not_matchingÚ
token_prevr   r   ©r   r$   r#   ÚeidxÚends   &    r'   Úgroup_commentsrÿ   K  s’   € à×%Ñ%¬¯	©	Ð%Ó2�K€Dß
Ø×,Ñ,Ù<À$ð -ó H‰	ˆàŠ;ñ
 Ø×$Ñ$ T°5Ð$Ó9‰	ˆØ×Ñœ3Ÿ;™;¨Ô3à×)Ñ)¬A¯I©I¸4Ð)Ó@‰ˆ‰eñ r-   c                 óì  € V P                  \        P                  P                  R 7      w  rV'       dÀ   V P                  \        P                  P                  VR7      w  r4Vf   V P
                  R,          pMV P                  V^,
          ,          pV P                  V4      pV P                  \        P                  W4       V P                  \        P                  P                  VR7      w  rKÇ  R# )ri   r±   Néÿÿÿÿ)	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‰ˆ‰eñ r-   c                 ó
  € \         P                  \         P                  \         P                  \         P                  \         P
                  \         P                  3pV P                  V\        P                  R 7      w  r#V'       d|   V P                  V4      w  rE\        V\         P                  4      '       d#   V P                  \         P                  W$RR7       V P                  V\        P                  VR7      w  r#Kƒ  R# )r„   Try   )r…   r†   r"   N)r   r/   r’   r2   rR   rÁ   rº   r²   r@   ÚNumberrÌ   r   r   )r   ÚI_ALIASr$   r#   rL   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‰ˆ‰eñ	 r-   c                 óú  € R pR pR pV P                    Fh  pVP                  P                  4       R8X  d   RpVP                  P                  4       R8X  d   RpVP                  P                  4       R8X  g   Kf  RpKj  	  V'       d   V'       d   V'       g   R# V P                  \        P
                  R7      w  rVV'       d¹   V P                  V4      w  rx\        V\        P                  4      '       da   V P                  V4      w  ršV
'       d$   \        V
\        P                  4      '       d   T	pMTpV P                  \        P                  W[4       V P                  \        P
                  VR7      w  rVKÀ  R# )FÚCREATETÚTABLEr`   Nr¡   rÈ   )r   r€   Úupperr²   r@   r‡   rÌ   r   r   r/   rË   r   r’   )r   Ú
has_createÚ	has_tableÚhas_asÚ	tmp_tokenr$   r#   rL   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¸Ð)Ó=‰ˆ‰eñ r-   c                ó–  € V P                  \        P                  P                  R7      w  rV'       d•   V P	                  V4      w  r4\        V\        P                  \        P                  R7      '       d#   V P                  \        P                  W14       TpV P                  \        P                  P                  VR7      w  rKœ  R# )z,Group together Identifier and Asc/Desc tokenr¡   r„   rÈ   N)
r²   r@   rZ   ÚOrderrû   r   r   rR   r  r   ©r   r$   r#   rK   Úprev_s   &    r'   Úgroup_orderr  —  sŒ   € ð ×%Ñ%¬¯	©	¯©Ð%Ó8�K€Dß
Ø×&Ñ& tÓ,‰ˆÜˆuœŸ™¬!¯(©(×3Ó3Ø×ÑœsŸ~™~¨tÔ:ØˆDØ×)Ñ)¬A¯I©I¯O©OÀÐ)ÓF‰ˆ‰eñ r-   c                 óR  € V P                  \        P                  R 7      w  rV'       d}   V P                  V4      w  r4\	        V\        P
                  4      '       d%   V P                  \        P
                  W1RR7       TpV P                  \        P                  VR7      w  rK„  R# ))r…   Try   )r…   r"   N)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‰ˆ‰eñ r-   c                 ó*  € V P                  \        P                  R 3R7      w  rTpRpV'       d8   \        V\        P
                  4      '       d   TpV P                  V4      w  rK?  VR8w  d%   V P                  \        P                  W4RR7       R# R# )ÚVALUESri   Try   Nr  )	r²   r@   rZ   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                 ó"  € \         \        \        \        \        \
        \        \        \        \        \        \        \        \        \        \        \         \"        \$        \&        \(        \*        \,        \.        \0        3 F  pV! V 4       K  	  V # r)   )rÿ   r,   r0   r3   r6   r9   r<   rÍ   r  r  r—   rØ   rÉ   r  rV   rf   r{   rä   rÆ   r¨   r	  r·   r  rò   r"  )ÚstmtÚfuncs   & r'   Úgroupr&  º  sl   € äô 	ÜÜÜÜÜäÜÜÜÜÜÜÜÜÜÜÜÜÜÜäÜÜó;ˆñ> 	ˆTŽ
ñ?ð@ €Kr-   c                 ó   € R # r�   rE   r¡   s   &r'   r÷   r÷   ß  ó   € ¡r-   c                 ó   € R # r�   rE   r¡   s   &r'   r÷   r÷   à  r(  r-   NTc	                óØ  € \         e   V\         8”  d   \        R\          R24      h\        e2   \        V P                  4      \        8”  d   \        R\         R24      h^ p	RRrº\        V 4      p\        V4       Fë  w  rÞWÙ,
          pV^ 8  d   K  VP                  '       d   K*  V'       d;   VP                  '       d)   \        Wá4      '       g   \        WáW#VWVRV^,           4	       V! V4      '       dp   V P                  V4      w  ppV'       dT   V! V4      '       dF   V! V4      '       d8   V! W
VV4      w  ppV P                  VVVVR7      pV	VV,
          ,          p	TTrºKé  YþrºKí  	  R# )zDGroups together tokens that are joined by a middle token. i.e. x < yNr	   r
   r   Try   )r   r   r   r   r   r   r   r   r   r   rQ   rÌ   r   )r   r   r   rT   rU   rM   rz   r   r   r    rK   r  r!   r"   r#   r$   rL   r•   Úfrom_idxÚto_idxÚgrps   &&&&&&&&&            r'   rQ   rQ   Þ  sY  € ô Ò%¨%Ô2DÔ*DÜØ/Ô0BÐ/CÀ2ÐFó
ð 	
ô
 Ò&Üˆu�|‰|ÓÔ2Ô2ÜØ1Ô2EÐ1FÀbÐIó
ð 	
ð €KØ˜ˆ%Ü�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   r@   Úsqlparse.exceptionsr   Úsqlparse.utilsr   r   r   r   r  ÚIntegerÚFloatrÂ   rˆ   r”   r‰   rÃ   r‡   ÚPlaceholderrÄ   r   r,   r0   r3   r6   r9   r<   rV   rf   r{   r—   r¨   r·   rÆ   rR   rÉ   rË   rÍ   rØ   rä   rò   rñ   rÿ   r  r  r	  r’   r  r  r  r"  r&  rQ   rE   r-   r'   Ú<module>r4     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ñ& 	ˆ�‰Óñ>ó ð>ñ 	ˆ�‰ÓñGó ðGòEò(7ò.6ñ* 	ˆ�‰ÓñAó ðAñ" 	ˆ�‰ÓñHó ðHñ  	ƒñ	Kó ð	Kñ 	ˆ�‰Óñ>ó ð>ñ6 	ˆ�‰ÓñGó ðGñ 	ƒñCó ðCò	Hò!ñJ %Ù$ØØØØö/"r-   