§
    WøÁiÿ0 ã                  ó´  — U d Z ddlmZ ddlZddlmZ ddlZddlm	Z	 ddl
Z
ddlZddlZddlZddlmZ ddlZddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z  ddlm!Z! ddlm"Z" ddlm#Z# ddlm$Z$ ddlm%Z% ddl&m'Z' ddl&m(Z( ddl&m)Z) ddl&m*Z* dd l&m+Z+ dd!l&m,Z, dd"l&m-Z- dd#l&m.Z. dd$l&m/Z/ dd%l&m0Z0 dd&l&m1Z2 dd'l3m4Z4 dd(l3m5Z5 dd)l'm6Z6 dd*l'm7Z7 dd+l'm8Z8 dd,l'm9Z9 dd-l'm:Z: dd.l'm;Z; dd/l*m<Z< dd0l*m=Z= dd1l.m>Z> dd2l0m?Z? dd3l@mAZA dd4lBmCZC dd5lBmDZD d6d7l&mEZE d6d&l&m1Z1 d6d8l1mFZF d6d9lGmHZH d6d:lGmIZI d6d;lGmJZJ ej$        rÌdd<lKmLZL dd=l'mMZM dd>l'mNZN dd?lOmPZP dd@lQmRZR ddAlSmTZT ddBlSmUZU ddClSmVZV ddDl*mWZW ddEl*mXZX ddFl*mYZY ddGl*mZZZ ddHl*m[Z[ ddIl+m\Z\ ddJl.m]Z] ddKl/m^Z^ ddLl/m_Z_ ddMl/m`Z` ddNl/maZa ddOl/mbZb ddPl/mcZc ddQl/mdZd ddRl/meZe ddSl@mfZf d6dTlgmhZh d6dUlimjZj d6dVlimkZk d6dWlimlZl d6dXlimmZm d6dYlimnZn d6dZlimoZo d6d[limpZp d6d\limqZq d6d]limrZr ed^esf         Zth d_£Zu ejv        d`ejw        ¦  «        Zx ejv        daejw        ¦  «        Zydb„  ezddc¦  «        D ¦   «          {                    ddg¦  «        Z| ejv        deejw        ¦  «        Z} ejv        deejw        ¦  «        Z~ ejv        dfejw        ¦  «        Z ejv        dgej€        ¦  «        Z� ejv        dhej€        ¦  «        Z‚diZƒeƒdjdkdldmdndoœZ„i e,j…        dp“e,j†        dq“e,j‡        dr“e,jˆ        ds“e,j‰        dt“e,jŠ        du“e,j‹        dv“e,jŒ        dw“e,j�        dx“e,jŽ        dy“e,j�        dz“e,j�        d{“e,j‘        d|“e,j’        d}“e,j“        d~“e,j”        d“e,j•        d€“i e,j–        d�“e,j—        d‚“e,j˜        dƒ“e,j™        d„“e,jš        d…“e,j›        d†“e,jœ        d‡“e,j�        dˆ“e,jž        d‰“e,jŸ        dŠ“e,j         d‹“e,j¡        dŒ“e,j¢        d�“e,j£        dŽ“e,j¤        d�“e,j¥        d�“e,j¦        d‘“¥e,j§        d’e,j¨        d“e,j©        d”e,jª        d•e,j«        d–e,j¬        d—e,j­        d˜i¥Z®e+j¯        d™e+j°        dše+j±        d›e+j²        dœe+j³        d�e+j´        dže+jµ        dŸe+j¶        d e+j·        d¡e+j¸        d¢e+j¹        d£e+jº        d¤e+j»        d¥e+j¼        d¦iZ½d§e¾d¨<   d©dªd«d¬d­d®d¯d°d±d²d³d´dµd¶d·d¸œZ¿e/jÀ        jÁ        d¹e/jÀ        jÂ        dºe/jÀ        jÃ        d»e/jÀ        jÄ        d¼e/jÀ        jÅ        d½e/jÀ        jÆ        d¾iZÇ G d¿„ dÀe¦  «        ZÈ G dÁ„ dÂeI¦  «        ZÉdZÊdÃe¾dÄ<   dZËdÅe¾dÆ<   d6ZÌdÇe¾dÈ<   dÉZÍdÊe¾dË<    G dÌ„ dÍeJ¦  «        ZÎ G dÎ„ dÏeÎdÐ¬Ñ¦  «        ZÏ G dÒ„ dÓe¦  «        ZÐ G dÔ„ dÕe¦  «        ZÑ G dÖ„ d×e¦  «        ZÒ G dØ„ dÙeF¦  «        ZÓ G dÚ„ dÛe	¦  «        ZÔ G dÜ„ dÝe	¦  «        ZÕ eÖeÕ¦  «        \  Z×ZØZÙZÚ G dÞ„ dß ejÛ        dßdàdág¦  «        ¦  «        ZÜ G dâ„ dã¦  «        ZÝ G dä„ dåe1jÞ        ¦  «        Zß G dæ„ dçe-jà        e         e*já        ¦  «        Zâ G dè„ dée-jà        e         e*já        ¦  «        Zã G dê„ dëeÝ¦  «        Zä G dì„ díeä¦  «        Zå G dî„ dïeÝ¦  «        Zæ G dð„ dñeß¦  «        Zç G dò„ dóeç¦  «        Zè G dô„ dõeI¦  «        Zé G dö„ d÷eI¦  «        Zê G dø„ dù¦  «        ZëdS )úa]  Base SQL and DDL compiler implementations.

Classes provided include:

:class:`.compiler.SQLCompiler` - renders SQL
strings

:class:`.compiler.DDLCompiler` - renders DDL
(data definition language) strings

:class:`.compiler.GenericTypeCompiler` - renders
type specification strings.

To generate user-defined SQL strings, see
:doc:`/ext/compiler`.

é    )ÚannotationsN)ÚIntEnum)Úperf_counter)ÚAny)ÚCallable)Úcast)ÚClassVar)ÚDict)Ú	FrozenSet)ÚIterable)ÚIterator)ÚList)ÚMapping)ÚMutableMapping)Ú
NamedTuple)ÚNoReturn)ÚOptional)ÚPattern)ÚSequence)ÚSet)ÚTuple)ÚType)ÚTYPE_CHECKING)ÚUnioné   )Úbase)Ú	coercions)Úcrud)Úelements)Ú	functions)Ú	operators)Úroles)Úschema)Ú
selectable)Úsqltypes)Úutil©Úis_column_element)Úis_dml)Ú	_de_clone)Ú_from_objects)Ú
_NONE_NAME)Ú _SentinelDefaultCharacterization)Ú
Executable)ÚNO_ARG)ÚClauseElement)Úquoted_name)ÚColumn)Ú	TupleType)Ú
TypeEngine)Úprefix_anon_map)Ú	Visitableé   )Úexc)ÚFastIntFlag)ÚLiteral)ÚProtocol)Ú	TypedDict)Ú_AnnotationDict)Ú_AmbiguousTableNameMap)ÚCompileState)ÚCacheKey)ÚExecutableDDLElement)ÚInsert)Ú
UpdateBase)Ú
ValuesBase)Ú_truncated_label)ÚBindParameter)ÚColumnClause)ÚColumnElement)ÚLabel)ÚFunction)ÚTable)ÚAliasedReturnsRows)ÚCompoundSelectState)ÚCTE)Ú
FromClause)ÚNamedFromClause)ÚReturnsRows)ÚSelect)ÚSelectState)Ú_BindProcessorType)ÚCursorResultMetaData)Ú_CoreSingleExecuteParams)Ú_DBAPIAnyExecuteParams)Ú_DBAPIMultiExecuteParams)Ú_DBAPISingleExecuteParams)Ú_ExecuteOptions)Ú_GenericSetInputSizesType)Ú_MutableCoreSingleExecuteParams)ÚDialect)ÚSchemaTranslateMapTyperO   >^   ÚasÚdoÚinÚisÚonÚorÚtoÚallÚandÚanyÚascÚendÚforÚnewÚnotÚoffÚoldÚsetÚbothÚcaser   ÚdescÚelseÚfromÚfullÚintoÚjoinÚleftÚlikeÚnullÚonlyÚsomeÚthenÚtrueÚuserÚwhenÚarrayÚcheckÚcrossÚfalseÚgrantÚgroupÚilikeÚinnerÚlimitÚorderÚouterÚrightÚtableÚunionÚusingÚwhereÚbinaryÚcolumnÚcreateÚexceptÚfreezeÚhavingÚisnullÚoffsetÚselectÚuniqueÚanalyseÚanalyzeÚbetweenÚcollateÚdefaultÚforeignÚleadingÚnaturalÚnotnullÚplacingÚprimaryÚsimilarÚverboseÚdistinctÚoverlapsÚtrailingÚ	initiallyÚ	intersectÚ	localtimeÚ	symmetricÚ
asymmetricÚ
constraintÚ
deferrableÚ
referencesÚcurrent_dateÚcurrent_roleÚcurrent_timeÚcurrent_userÚsession_userÚauthorizationÚlocaltimestampÚcurrent_timestampz^[A-Z0-9_$]+$z^[A-Z0-9_ $]+$c                ó,   — h | ]}t          |¦  «        ’ŒS © )Ústr)Ú.0Úxs     úa/var/www/html/jarvis.com/web/backend/venv/lib/python3.11/site-packages/sqlalchemy/sql/compiler.pyú	<setcomp>rÂ   æ   s   € Ð;Ð;Ð;¨�c !™fœfÐ;Ð;Ð;ó    é
   ú$z5^(?:RESTRICT|CASCADE|SET NULL|NO ACTION|SET DEFAULT)$z^(?:DEFERRED|IMMEDIATE)$z%(?<![:\w\$\x5c]):([\w\$]+)(?![:\w\$])z\x5c(:[\w\$]*)(?![:\w\$])z%%(%(name)s)sú?z%%sz:[_POSITION]z$[_POSITION]z	:%(name)s)ÚpyformatÚqmarkÚformatÚnumericÚnumeric_dollarÚnamedú AND z OR z + z * z - ú % ú-z < z <= z != z > z >= z = z IS DISTINCT FROM z IS NOT DISTINCT FROM z || z MATCH z NOT MATCH z IN z NOT IN ú, ú FROM ú AS ú IS z IS NOT z	 COLLATE zEXISTS ú	DISTINCT zNOT zANY zALL z DESCz ASCz NULLS FIRSTz NULLS LASTz ^ z | z & ú~z << z >> ÚcoalesceÚCURRENT_DATEÚCURRENT_TIMEÚCURRENT_TIMESTAMPÚCURRENT_USERÚ	LOCALTIMEÚLOCALTIMESTAMPÚrandomÚsysdateÚSESSION_USERÚUSERÚCUBEÚROLLUPzGROUPING SETSzDict[Type[Function[Any]], str]Ú	FUNCTIONSÚmonthÚdayÚyearÚsecondÚhourÚdoyÚminuteÚquarterÚdowÚweekÚepochÚmillisecondsÚmicrosecondsÚtimezone_hourÚtimezone_minute)rä   rå   ræ   rç   rè   ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ÚUNIONz	UNION ALLÚEXCEPTz
EXCEPT ALLÚ	INTERSECTzINTERSECT ALLc                  óB   — e Zd ZU dZded<   	 ded<   	 ded<   	 ded<   d	S )
ÚResultColumnsEntrya  Tracks a column expression that is expected to be represented
    in the result rows for this statement.

    This normally refers to the columns clause of a SELECT statement
    but may also refer to a RETURNING clause, as well as for dialect-specific
    emulations.

    r¾   ÚkeynameÚnameúTuple[Any, ...]ÚobjectsúTypeEngine[Any]ÚtypeN©Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r½   rÃ   rÁ   r÷   r÷   [  sY   € € € € € € ðð ð €L€L�LØ;à€I€I�IØ%àÐÐÑðð ÐÐÑðð rÃ   r÷   c                  ó   — e Zd Zdd
„ZdS )Ú_ResultMapAppenderrø   r¾   rù   rû   úSequence[Any]Útype_rü   ÚreturnÚNonec                ó   — d S ©Nr½   ©Úselfrø   rù   rû   r  s        rÁ   Ú__call__z_ResultMapAppender.__call__{  s	   € ð ˆsrÃ   N)
rø   r¾   rù   r¾   rû   r  r  rü   r  r	  ©rÿ   r   r  r  r½   rÃ   rÁ   r  r  z  s(   € € € € € ðð ð ð ð ð rÃ   r  z
Literal[0]ÚRM_RENDERED_NAMEz
Literal[1]ÚRM_NAMEz
Literal[2]Ú
RM_OBJECTSé   z
Literal[3]ÚRM_TYPEc                  ó.   — e Zd ZU ded<   ded<   ded<   dS )Ú_BaseCompilerStackEntryzSet[FromClause]Úasfrom_fromsÚcorrelate_fromsrQ   r$   N©rÿ   r   r  r  r½   rÃ   rÁ   r  r  Œ  s6   € € € € € € Ø!Ð!Ð!Ñ!Ø$Ð$Ð$Ñ$ØÐÐÑÐÐrÃ   r  c                  óB   — e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
S )Ú_CompilerStackEntryr?   Úcompile_stateÚboolÚneed_result_map_for_nestedÚneed_result_map_for_compoundrQ   Úselect_0úSelect[Any]Úinsert_from_selectNr  r½   rÃ   rÁ   r  r  ’  sN   € € € € € € ØÐÐÑØ$Ð$Ð$Ñ$Ø&Ð&Ð&Ñ&ØÐÐÑØ#Ð#Ð#Ñ#Ð#Ð#rÃ   r  F)Útotalc                  ó€   — e Zd ZU dZded<   	 ded<   	 ded<   	 ded	<   	 d
ed<   	 edd„¦   «         Zedd„¦   «         ZdS )ÚExpandedStatea¹  represents state to use when producing "expanded" and
    "post compile" bound parameters for a statement.

    "expanded" parameters are parameters that are generated at
    statement execution time to suit a number of parameters passed, the most
    prominent example being the individual elements inside of an IN expression.

    "post compile" parameters are parameters where the SQL literal value
    will be rendered into the SQL statement at execution time, rather than
    being passed as separate parameters to the driver.

    To create an :class:`.ExpandedState` instance, use the
    :meth:`.SQLCompiler.construct_expanded_state` method on any
    :class:`.SQLCompiler` instance.

    r¾   Ú	statementrV   Ú
parametersú%Mapping[str, _BindProcessorType[Any]]Ú
processorsúOptional[Sequence[str]]ÚpositiontupzMapping[str, List[str]]Úparameter_expansionr  rú   c                óz   ‡ — ‰ j         €t          j        d¦  «        ‚t          ˆ fd„‰ j         D ¦   «         ¦  «        S )zrTuple of positional parameters, for statements that were compiled
        using a positional paramstyle.

        Nz.statement does not use a positional paramstylec              3  ó2   •K  — | ]}‰j         |         V — Œd S r  ©r'  )r¿   Úkeyr  s     €rÁ   ú	<genexpr>z6ExpandedState.positional_parameters.<locals>.<genexpr>Ï  s*   øè è € ÐFÐF¨c�T”_ SÔ)ÐFÐFÐFÐFÐFÐFrÃ   )r+  r8   ÚInvalidRequestErrorÚtuple©r  s   `rÁ   Úpositional_parametersz#ExpandedState.positional_parametersÅ  sN   ø€ ð ÔÐ#ÝÔ)Ø@ñô ð õ ÐFÐFÐFÐF°TÔ5EÐFÑFÔFÑFÔFÐFrÃ   c                ó   — | j         S )z.synonym for :attr:`.ExpandedState.parameters`.r/  r4  s    rÁ   Úadditional_parametersz#ExpandedState.additional_parametersÑ  s   € ð ŒÐrÃ   N)r  rú   )r  rV   )rÿ   r   r  r  r  Úpropertyr5  r7  r½   rÃ   rÁ   r%  r%  š  s¸   € € € € € € ðð ð" €N€N�NØ=à(Ð(Ð(Ñ(ðð 6Ð5Ð5Ñ5Ø+à(Ð(Ð(Ñ(ðð 1Ð0Ð0Ñ0ðð ð	Gð 	Gð 	Gñ „Xð	Gð ðð ð ñ „Xðð ð rÃ   r%  c                  ó²   — e Zd ZU dZded<   	 ded<   	 ded<   	 ded	<   	 d
Zded<   	 d
Zded<   	 dZded<   	 dZded<   	 dZ	ded<   	 d
Z
ded<   	 d
Zded<   dS )Ú_InsertManyValuesa  represents state to use for executing an "insertmanyvalues" statement.

    The primary consumers of this object are the
    :meth:`.SQLCompiler._deliver_insertmanyvalues_batches` and
    :meth:`.DefaultDialect._deliver_insertmanyvalues_batches` methods.

    .. versionadded:: 2.0

    r  Úis_default_exprr¾   Úsingle_values_exprúList[crud._CrudParamElementStr]Úinsert_crud_paramsÚintÚnum_positional_params_countedFÚsort_by_parameter_orderÚincludes_upsert_behaviorsNúOptional[Sequence[Column[Any]]]Úsentinel_columnsr   Únum_sentinel_columnsr*  Úsentinel_param_keysÚimplicit_sentinelÚembed_values_counter)rÿ   r   r  r  r  rA  rB  rD  rE  rF  rG  rH  r½   rÃ   rÁ   r:  r:  ×  s  € € € € € € ðð ð ÐÐÑðð
 ÐÐÑðð 8Ð7Ð7Ñ7ØMà&Ð&Ð&Ñ&ð
ð %*ÐÐ)Ð)Ð)Ñ)ðð ',ÐÐ+Ð+Ð+Ñ+ðð 9=ÐÐ<Ð<Ð<Ñ<ðð !"ÐÐ!Ð!Ð!Ñ!ðð 48ÐÐ7Ð7Ð7Ñ7ðð  $ÐÐ#Ð#Ð#Ñ#ð	ð "'ÐÐ&Ð&Ð&Ñ&ð	ð 	rÃ   r:  c                  óx   — e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   ded<   ded<   ded<   dS )Ú_InsertManyValuesBatchas  represents an individual batch SQL statement for insertmanyvalues.

    This is passed through the
    :meth:`.SQLCompiler._deliver_insertmanyvalues_batches` and
    :meth:`.DefaultDialect._deliver_insertmanyvalues_batches` methods out
    to the :class:`.Connection` within the
    :meth:`.Connection._exec_insertmany_context` method.

    .. versionadded:: 2.0.10

    r¾   Úreplaced_statementrW   Úreplaced_parametersú#Optional[_GenericSetInputSizesType]Úprocessed_setinputsizesz#Sequence[_DBAPISingleExecuteParams]ÚbatchzSequence[Tuple[Any, ...]]Úsentinel_valuesr?  Úcurrent_batch_sizeÚbatchnumÚtotal_batchesr  Úrows_sortedÚis_downgradedNrþ   r½   rÃ   rÁ   rJ  rJ  N  s“   € € € € € € ð
ð 
ð ÐÐÑØ/Ð/Ð/Ñ/Ø@Ð@Ð@Ñ@Ø.Ð.Ð.Ñ.Ø.Ð.Ð.Ñ.ØÐÐÑØ€M€M�MØÐÐÑØÐÐÑØÐÐÑÐÐrÃ   rJ  c                  óD   — e Zd ZdZdZdZdZdZeez  ez  Zeez  Z	dZ
dZdS )	ÚInsertmanyvaluesSentinelOptszcbitflag enum indicating styles of PK defaults
    which can work as implicit sentinel columns

    r   r7   é   é   é   é@   N)rÿ   r   r  r  ÚNOT_SUPPORTEDÚAUTOINCREMENTÚIDENTITYÚSEQUENCEÚANY_AUTOINCREMENTÚ_SUPPORTED_OR_NOTÚUSE_INSERT_FROM_SELECTÚRENDER_SELECT_COL_CASTSr½   rÃ   rÁ   rW  rW  g  sX   € € € € € ðð ð
 €MØ€MØ€HØ€Hà%¨Ñ0°8Ñ;ÐØ%Ð(9Ñ9ÐàÐØ ÐÐÐrÃ   rW  c                  ó   — e Zd ZdZ	 dZ	 dZdS )ÚCompilerStater   r   r7   N)rÿ   r   r  Ú	COMPILINGÚSTRING_APPLIEDÚNO_STATEMENTr½   rÃ   rÁ   re  re  y  s-   € € € € € Ø€IØ=à€Nðð €Lðð rÃ   re  c                  ó.   — e Zd ZdZdZ	 dZ	 dZ	 eez  ZdS )ÚLintingzžrepresent preferences for the 'SQL linting' feature.

    this feature currently includes support for flagging cartesian products
    in SQL statements.

    r   r   r7   N)rÿ   r   r  r  Ú
NO_LINTINGÚCOLLECT_CARTESIAN_PRODUCTSÚWARN_LINTINGÚFROM_LINTINGr½   rÃ   rÁ   rj  rj  ‰  sG   € € € € € ðð ð €JØà!"Ððð €LØ2à-°Ñ<€Lðð rÃ   rj  c                  ó"   — e Zd ZdZdd„Zdd„ZdS )Ú
FromLinterzKrepresents current state for the "cartesian product" detection
    feature.Nc                óà  ‡— | j         }|sdS t          | j        ¦  «        }t          |¦  «        }|�|}|                     |¦  «         n|                     ¦   «         }t          j        |g¦  «        }|rs|rq|                     ¦   «         Š|                     ‰¦  «         ˆfd„|D ¦   «         }| 	                    ˆfd„|D ¦   «         ¦  «         | 
                    |¦  «         |r|°q|r||fS dS )N©NNc                ó   •— h | ]}‰|v ¯|’Œ	S r½   r½   ©r¿   ÚedgeÚnodes     €rÁ   rÂ   z"FromLinter.lint.<locals>.<setcomp>Á  s   ø€ Ð@Ð@Ð@ $°4¸4°<°<˜°<°<°<rÃ   c              3  óP   •K  — | ] }||                      ‰¦  «                  V — Œ!d S r  )Úindexrt  s     €rÁ   r1  z"FromLinter.lint.<locals>.<genexpr>Å  s7   øè è € ÐNÐN¸D˜T d§j¢j°Ñ&6Ô&6Ð"6Ô7ÐNÐNÐNÐNÐNÐNrÃ   )Úfromsrp   ÚedgesÚremoveÚpopÚcollectionsÚdequeÚpopleftÚdiscardÚ
extendleftÚdifference_update)	r  Ústartry  rz  Úthe_restÚ
start_withÚstackÚ	to_removerv  s	           @rÁ   ÚlintzFromLinter.lint©  s$  ø€ Ø”
ˆØð 	Ø�:å�D”J‘”ˆÝ�u‘:”:ˆàÐØˆJØ�OŠO˜JÑ'Ô'Ð'Ð'à!Ÿš™œˆJåÔ! : ,Ñ/Ô/ˆàð 	/˜ð 	/Ø—=’=‘?”?ˆDØ×Ò˜TÑ"Ô"Ð"ð AÐ@Ð@Ð@¨%Ð@Ñ@Ô@ˆIð ×ÒÐNÐNÐNÐNÀIÐNÑNÔNÑNÔNÐNØ×#Ò# IÑ.Ô.Ð.ð ð 	/˜ð 	/ð  ð 	Ø˜ZÐ'Ð'à�:rÃ   ÚSELECTc                óþ   ‡ — ‰                       ¦   «         \  }}|r`|}|r^d}d                     ˆ fd„|D ¦   «         ¦  «        }|                     ||‰ j        |         ¬¦  «        }t	          j        |¦  «         d S d S d S )Nz£{stmt_type} statement has a cartesian product between FROM element(s) {froms} and FROM element "{start}".  Apply join condition(s) between each element to resolve.rÐ   c              3  ó:   •K  — | ]}d ‰j         |         › d �V — ŒdS )ú"N)ry  )r¿   Úfrom_r  s     €rÁ   r1  z"FromLinter.warn.<locals>.<genexpr>Û  sG   øè è € ð &ð &Ø16Ð,˜œ
 5Ô)Ð,Ð,Ð,ð&ð &ð &ð &ð &ð &rÃ   )Ú	stmt_typery  rƒ  )rˆ  rx   rÉ   ry  r&   Úwarn)r  rŽ  r„  r…  ry  ÚtemplateÚ	froms_strÚmessages   `       rÁ   r�  zFromLinter.warnÎ  sÇ   ø€ Ø#Ÿyšy™{œ{Ñˆ�*ð ð 	#ØˆEØð #ð7ð ð !ŸIšIð &ð &ð &ð &Ø:?ð&ñ &ô &ñ ô �	ð #Ÿ/š/Ø'Ø#Øœ* ZÔ0ð *ñ ô �õ ”	˜'Ñ"Ô"Ð"Ð"Ð"ð%	#ð 	#ð#ð #rÃ   r  )r‰  )rÿ   r   r  r  rˆ  r�  r½   rÃ   rÁ   rp  rp  ¥  sG   € € € € € ðð ð#ð #ð #ð #ðJ#ð #ð #ð #ð #ð #rÃ   rp  ry  rz  c                  ó”  ‡ — e Zd ZU dZdZded<   	 dZded<   	 ded	<   	 d
Zd
ZdZ	ded<   dZ
ded<   dZded<   ej        Zded<   	 ded<   ej        Zded<   dZded<   	 dZded<   	 dZded<   	 ded<   	 dd
 ej        ¦   «         fd;d$„Zd<ˆ fd'„Zed(„ ¦   «         Zd)„ Zd*„ Zed+„ ¦   «         Zd=d0„Zd>d1„Z	 	 	 d?d@d9„Zed:„ ¦   «         Zˆ xZ S )AÚCompileda  Represent a compiled SQL or DDL expression.

    The ``__str__`` method of the ``Compiled`` object should produce
    the actual text of the statement.  ``Compiled`` objects are
    specific to their underlying database dialect, and also may
    or may not be specific to the columns referenced within a
    particular set of bind parameters.  In no case should the
    ``Compiled`` object be dependent on the actual values of those
    bind parameters, even though it may reference those values as
    defaults.
    NúOptional[ClauseElement]r&  Ú r¾   Ústringre  ÚstateFzOptional[CursorResultMetaData]Ú_cached_metadataz"Optional[List[ResultColumnsEntry]]Ú_result_columnsú Optional[SchemaTranslateMapType]Úschema_translate_maprZ   Úexecution_optionsÚIdentifierPreparerÚpreparerr=   Ú_annotationszOptional[CompileState]r  Údml_compile_stateúOptional[CacheKey]Ú	cache_keyÚfloatÚ	_gen_timeÚdialectr]   Úrender_schema_translater  Úcompile_kwargsúMapping[str, Any]c                ó6  — || _         | j         j        | _        |r&|| _        | j                             |¦  «        | _        |�²t
          j        | _        || _        |j	        | _
        |j        | _        | j
        r*t          rt          |t          ¦  «        sJ ‚|j        | _         | j        | j        fi |¤Ž| _        |r%| j                             | j        |¦  «        | _        t
          j        | _        nt
          j        | _        t-          ¦   «         | _        dS )aû  Construct a new :class:`.Compiled` object.

        :param dialect: :class:`.Dialect` to compile against.

        :param statement: :class:`_expression.ClauseElement` to be compiled.

        :param schema_translate_map: dictionary of schema names to be
         translated when forming the resultant SQL

         .. seealso::

            :ref:`schema_translating`

        :param compile_kwargs: additional kwargs that will be
         passed to the initial call to :meth:`.Compiled.process`.


        N)r¦  Úidentifier_preparerrŸ  rœ  Ú_with_schema_translatere  rf  r˜  r&  Úsupports_executionÚcan_executer   r   Ú
isinstancer.   Ú_execution_optionsr�  Úprocessr—  Ú_render_schema_translatesrg  rh  r   r¥  ©r  r¦  r&  rœ  r§  r¨  s         rÁ   Ú__init__zCompiled.__init__;  s  € ð4 ˆŒØœÔ8ˆŒØð 	Ø(<ˆDÔ%Ø œM×@Ò@Ø$ñô ˆDŒMð Ð Ý&Ô0ˆDŒJØ&ˆDŒNØ(Ô;ˆDÔØ )Ô 6ˆDÔØÔð FÝ ð =Ý% iµÑ<Ô<Ð<Ð<Ð<Ø)2Ô)E�Ô&Ø&˜$œ, t¤~ÐHÐH¸ÐHÐHˆDŒKà&ð Ø"œm×EÒEØ”KÐ!5ñô �”õ 'Ô5ˆDŒJˆJå&Ô3ˆDŒJå%™œˆŒˆˆrÃ   r  r	  c                ól   •— |                       ¦   «          t          ¦   «                              ¦   «         S r  )Ú_init_compiler_clsÚsuperÚ__init_subclass__)ÚclsÚ	__class__s    €rÁ   r¸  zCompiled.__init_subclass__s  s+   ø€ Ø×ÒÑ Ô Ð Ý‰wŒw×(Ò(Ñ*Ô*Ð*rÃ   c                ó   — d S r  r½   ©r¹  s    rÁ   r¶  zCompiled._init_compiler_clsw  s   € àˆrÃ   c                óp   — | j         r|                     | ||¦  «        S t          j        | j        ¦  «        ‚r  )r®  Ú_execute_compiledr8   ÚObjectNotExecutableErrorr&  )r  Ú
connectionÚdistilled_paramsr�  s       rÁ   Ú_execute_on_connectionzCompiled._execute_on_connection{  sE   € ð Ôð 	?Ø×/Ò/ØÐ&Ð(9ñô ð õ Ô.¨t¬~Ñ>Ô>Ð>rÃ   c                óH   — t          j        | t          |¦  «        ¦  «        |‚r  ©r8   ÚUnsupportedCompilationErrorrý   ©r  ÚelementÚerrÚkws       rÁ   Úvisit_unsupported_compilationz&Compiled.visit_unsupported_compilation…  s   € ÝÔ-¨dµD¸±M´MÑBÔBÈÐKrÃ   c                ó   — t          ¦   «         ‚)z�Return a Compiled that is capable of processing SQL expressions.

        If this compiler is one, it would likely just return 'self'.

        ©ÚNotImplementedErrorr4  s    rÁ   Úsql_compilerzCompiled.sql_compilerˆ  s   € õ "Ñ#Ô#Ð#rÃ   Úobjr6   Úkwargsr   c                ó   —  |j         | fi |¤ŽS r  ©Ú_compiler_dispatch)r  rÏ  rÐ  s      rÁ   r±  zCompiled.process’  s   € Ø%ˆsÔ% dÐ5Ð5¨fÐ5Ð5Ð5rÃ   c                ó:   — | j         t          j        u r| j        S dS )z3Return the string text of the generated SQL or DDL.r–  )r˜  re  rg  r—  r4  s    rÁ   Ú__str__zCompiled.__str__•  s!   € ð Œ:�Ô5Ð5Ð5Ø”;Ðà�2rÃ   TÚparamsú"Optional[_CoreSingleExecuteParams]Úextracted_parametersú&Optional[Sequence[BindParameter[Any]]]Úescape_namesú)Optional[_MutableCoreSingleExecuteParams]c                ó   — t          ¦   «         ‚)zâReturn the bind params for this compiled object.

        :param params: a dict of string/object pairs whose values will
                       override bind values compiled in to the
                       statement.
        rÌ  ©r  rÖ  rØ  rÚ  s       rÁ   Úconstruct_paramszCompiled.construct_params�  s   € õ "Ñ#Ô#Ð#rÃ   c                ó*   — |                       ¦   «         S )z0Return the bind params for this compiled object.©rÞ  r4  s    rÁ   rÖ  zCompiled.params¬  s   € ð ×$Ò$Ñ&Ô&Ð&rÃ   )
r¦  r]   r&  r•  rœ  r›  r§  r  r¨  r©  )r  r	  )rÏ  r6   rÐ  r   r  r¾   )r  r¾   ©NNT©rÖ  r×  rØ  rÙ  rÚ  r  r  rÛ  )!rÿ   r   r  r  r&  r  r—  Úis_sqlÚis_ddlr™  rš  rœ  r&   Ú
EMPTY_DICTr�  r   r  r¡  r£  Úimmutabledictr´  r¸  Úclassmethodr¶  rÂ  rÊ  r8  rÎ  r±  rÕ  rÞ  rÖ  Ú__classcell__©rº  s   @rÁ   r”  r”  ç  sE  ø€ € € € € € ð
ð 
ð *.€IÐ-Ð-Ð-Ñ-ØØ€FÐÐÐÑØ4àÐÐÑØ-à€FØ€Fà7;ÐÐ;Ð;Ð;Ñ;à:>€OÐ>Ð>Ð>Ñ>à=AÐÐAÐAÐAÑAà)-¬ÐÐ8Ð8Ð8Ñ8ðð
 !Ð Ð Ñ à$(¤O€LÐ3Ð3Ð3Ñ3à,0€MÐ0Ð0Ð0Ñ0ðð 15ÐÐ4Ð4Ð4Ñ4ð	ð %)€IÐ(Ð(Ð(Ñ(ð	ð ÐÐÑðð BFØ(-Ø,>¨DÔ,>Ñ,@Ô,@ð6(ð 6(ð 6(ð 6(ð 6(ðp+ð +ð +ð +ð +ð +ð ðð ñ „[ðð?ð ?ð ?ðLð Lð Lð ð$ð $ñ „Xð$ð6ð 6ð 6ð 6ðð ð ð ð 6:ØGKØ!ð	$ð $ð $ð $ð $ð ð'ð 'ñ „Xð'ð 'ð 'ð 'ð 'rÃ   r”  c                  ó.   — e Zd ZdZdZdd„Zdd„Zdd„ZdS )ÚTypeCompilerz2Produces DDL specification for TypeEngine objects.z	visit_\w+r¦  r]   c                ó   — || _         d S r  )r¦  )r  r¦  s     rÁ   r´  zTypeCompiler.__init__·  s   € ØˆŒˆˆrÃ   r  rü   rÉ  r   r  r¾   c                ó€   — |j         r*| j        j        |j         v r|j         | j        j                 } |j        | fi |¤ŽS r  )Ú_variant_mappingr¦  rù   rÓ  ©r  r  rÉ  s      rÁ   r±  zTypeCompiler.processº  sM   € àÔ"ð	>à”Ô! UÔ%;Ð;Ð;àÔ*¨4¬<Ô+<Ô=ˆEØ'ˆuÔ'¨Ð3Ð3°Ð3Ð3Ð3rÃ   rÇ  rÈ  Ú	Exceptionr   c                ó.   — t          j        | |¦  «        |‚r  )r8   rÅ  rÆ  s       rÁ   rÊ  z*TypeCompiler.visit_unsupported_compilationÂ  s   € õ Ô-¨d°GÑ<Ô<À#ÐErÃ   N)r¦  r]   )r  rü   rÉ  r   r  r¾   )rÇ  r   rÈ  rð  rÉ  r   r  r   )rÿ   r   r  r  Úensure_kwargr´  r±  rÊ  r½   rÃ   rÁ   rë  rë  ²  sa   € € € € € Ø<Ð<à€Lðð ð ð ð4ð 4ð 4ð 4ðFð Fð Fð Fð Fð FrÃ   rë  c                  óT   — e Zd ZdZdZdZd
d„Zed„ ¦   «         Zed„ ¦   «         Z	d„ Z
d	S )Ú_CompileLabelz;lightweight label object which acts as an expression.Label.Úlabel©rÇ  rù   Ú
_alt_namesr½   c                ó8   — || _         || _        |f|z   | _        d S r  rö  )r  Úcolrù   Ú	alt_namess       rÁ   r´  z_CompileLabel.__init__Ò  s"   € ØˆŒØˆŒ	Ø˜& 9Ñ,ˆŒˆˆrÃ   c                ó   — | j         j        S r  ©rÇ  Ú	proxy_setr4  s    rÁ   rý  z_CompileLabel.proxy_set×  ó   € àŒ|Ô%Ð%rÃ   c                ó   — | j         j        S r  ©rÇ  rý   r4  s    rÁ   rý   z_CompileLabel.typeÛ  ó   € àŒ|Ô Ð rÃ   c                ó   — | S r  r½   ©r  rÉ  s     rÁ   Ú
self_groupz_CompileLabel.self_groupß  ó   € ØˆrÃ   N)r½   )rÿ   r   r  r  Ú__visit_name__Ú	__slots__r´  r8  rý  rý   r  r½   rÃ   rÁ   rô  rô  Ê  s€   € € € € € ð FÐEà€NØ/€Ið-ð -ð -ð -ð
 ð&ð &ñ „Xð&ð ð!ð !ñ „Xð!ðð ð ð ð rÃ   rô  c                  óX   — e Zd ZdZdZdZd„ Zed„ ¦   «         Zed„ ¦   «         Z	d„ Z
d„ Zd	S )
Úilike_case_insensitivea  produce a wrapping element for a case-insensitive portion of
    an ILIKE construct.

    The construct usually renders the ``lower()`` function, but on
    PostgreSQL will pass silently with the assumption that "ILIKE"
    is being used.

    .. versionadded:: 2.0

    Úilike_case_insensitive_operand©rÇ  Ú
comparatorc                ó,   — || _         |j        | _        d S r  r  )r  rÇ  s     rÁ   r´  zilike_case_insensitive.__init__ô  s   € ØˆŒØ!Ô,ˆŒˆˆrÃ   c                ó   — | j         j        S r  rü  r4  s    rÁ   rý  z ilike_case_insensitive.proxy_setø  rþ  rÃ   c                ó   — | j         j        S r  r   r4  s    rÁ   rý   zilike_case_insensitive.typeü  r  rÃ   c                ó   — | S r  r½   r  s     rÁ   r  z!ilike_case_insensitive.self_group   r  rÃ   c                óP   — t          | j                             |¦  «        ¦  «        S r  )r	  rÇ  Ú_with_binary_element_type)r  r  s     rÁ   r  z0ilike_case_insensitive._with_binary_element_type  s'   € Ý%ØŒL×2Ò2°5Ñ9Ô9ñ
ô 
ð 	
rÃ   N)rÿ   r   r  r  r  r  r´  r8  rý  rý   r  r  r½   rÃ   rÁ   r	  r	  ã  s�   € € € € € ð	ð 	ð 6€NØ'€Ið-ð -ð -ð ð&ð &ñ „Xð&ð ð!ð !ñ „Xð!ðð ð ð
ð 
ð 
ð 
ð 
rÃ   r	  c                  óà  — e Zd ZU dZeZ ej        dddddddddœ¦  «        Zde	d	<   	 d
e	d<   de	d<   dZ
eZdZde	d<   dZde	d<   dZde	d<   	 de	d<   	 dZde	d<   	 dZde	d<   	 dZde	d<   	 dZde	d<   de	d<   	 de	d <   	 d!e	d"<   	 dZde	d#<   	 dZde	d$<   	 dZde	d%<   	 d&e	d'<   	 d&e	d(<   	 d&e	d)<   	 d*e	d+<   	 dZde	d,<   	 dZde	d-<   	 dZde	d.<   	 dZde	d/<   	 dZde	d0<   	 dZde	d1<   	 dZd2e	d3<   	 dZd4e	d5<   	 dZd6e	d7<   dZ d8e	d9<   dZ!d:e	d;<    e"¦   «         Z#d<e	d=<   	  e"¦   «         Z$d<e	d><   	 ej%        Z&d?e	d@<   	 dZ'	 dZ(	 dZ)dAe	dB<   	 dZ*d6e	dC<   	 dZ+d6e	dD<   dZ,d6e	dE<   dZ-de	dF<   dGe	dH<   dIe	dJ<   dKe	dL<   de	dM<    e.j/        dN¦  «        Z0 e.j/        dO¦  «        Z1 e.j/        e1j2        › dPe0j2        › �¦  «        Z3e4dQ„ ¦   «         Z5e4dR„ ¦   «         Z6ddde7df�dbdb„Z8e9�dcdd„¦   «         Z:ej;        �ddde„¦   «         Z<e9df„ ¦   «         Z=e9dg„ ¦   «         Z>e9dh„ ¦   «         Z?ej@        �dedj„¦   «         ZAejB        �dfdl„¦   «         ZCeDjE        dm„ ¦   «         ZFdn„ ZGdo„ ZHej@        �dgdq„¦   «         ZIdr„ ZJe9ds„ ¦   «         ZK	 	 �dh�didx„ZL	 	 	 	 	 	 �dj�dkd€„ZMejB        d�„ ¦   «         ZNe9d‚„ ¦   «         ZO	 �dl�dmd…„ZP ejQ        d†¦  «        d‡„ ¦   «         ZRdˆe	d‰<   ej@        �dnd‹„¦   «         ZSej@         ejQ        dŒ¦  «        d�„ ¦   «         ¦   «         ZTej@         ejQ        dŒ¦  «        dŽ„ ¦   «         ¦   «         ZUd�„ ZVd�„ ZW�dld‘„ZXd’„ ZY	 �dld“„ZZ	 �dld”„Z[	 	 	 	 	 �dod•„Z\d–„ Z]d—„ Z^	 	 	 	 �dp�dqd¡„Z_d¢„ Z`d£„ Zad¤„ Zbd¥„ Zcd¦„ Zdd§„ Ze�drd¨„Zf	 �dsd©„Zgdª„ Zhd«„ Zid¬„ Zjd­„ Zkd®„ Zld¯„ Zmd°„ Znd±„ Zod²„ Zpd³„ Zqd´„ Zrdµ„ Zsd¶„ Ztd·„ Zud¸„ Zvd¹„ Zwdº„ Zx	 �dr�dtd½„Zyd¾„ Zzd¿„ Z{dÀ„ Z|	 �dudÁ„Z}dÂ„ Z~dÃ„ Z	 �dvdÄ„Z€dÅ„ Z�dÆ„ Z‚dÇ„ ZƒdÈ„ Z„dÉ„ Z…dÊ„ Z†dË„ Z‡dÌ„ Zˆ	 �drdÍ„Z‰dÎ„ ZŠ	 	 	 	 �dwdÏ„Z‹dÐ„ ZŒdÑ„ Z�dÒ„ ZŽdÓ„ Z�dÔ„ Z�	 �dldÕ„Z‘dÖ„ Z’d×„ Z“ej@        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¡dæ„ Z¢dç„ Z£dè„ Z¤dé„ Z¥dê„ Z¦dë„ Z§dì„ Z¨dí„ Z©dî„ Zª	 	 	 	 	 �dxdï„Z«dð„ Z¬e­dfdñ„Z®dò„ Z¯dó„ Z°�dyd÷„Z±�dzdø„Z²	 	 	 	 	 	 �d{�d|�d„Z³�d„ Z´ddddd eµj¶        d¦  «        f�d}�d„Z·�d„ Z¸�d„ Z¹	 	 	 	 	 	 	 	 �d~�d„Zº�d„ Z»�d„ Z¼�dl�d„Z½�d„ Z¾�du�d„Z¿�d„ ZÀ�d„ ZÁ�d�d „ZÂ	 �dr�d!„ZÃ	 	 	 	 	 	 	 �d€�d"„ZÄ�d#„ ZÅ�d$„ ZÆ�d%„ ZÇ�d&„ ZÈ�d'„ ZÉ�d(e	�d)<   eÊjË        s( ej        �d* e"¦   «         f�d+ e"¦   «         fg¦  «        ZÌ	 �dl�d,„ZÍdZÎdae	�d-<   	 	 	 	 	 	 	 	 �d��d.„ZÏ�d‚�d2„ZÐ�d3„ ZÑ�d4„ ZÒ�d5„ ZÓ	 	 �ds�d6„ZÔ�d7„ ZÕ�d8„ ZÖ�d9„ Z×�d:„ ZØ�d;„ ZÙ�dƒ�dA„ZÚ�dB„ ZÛ	 	 	 �d„�dC„ZÜ	 	 	 	 	 	 	 �d…�dD„ZÝ�du�dE„ZÞ�dF„ Zß ej        eàjá        eâjã        eàjä        eâjã        eàjå        eâjã        eàjæ        eâjæ        eàjç        eâjç        i¦  «        Zèeè é                    eàjå        eâjê        i¦  «        Zë�d†�dJ„Zì�d‡�dV„Zí	 �dˆ�dW„Zî�dX„ Zï�dY„ Zð�dZ„ Zñ�dr�d[„Zò�d\„ Zó�d]„ Zô�dr�d^„Zõ�d_„ Zö�d`„ Z÷�da„ ZødS (‰  ÚSQLCompilerz~Default implementation of :class:`.Compiled`.

    Compiles :class:`_expression.ClauseElement` objects into SQL strings.

    ÚPÚAÚZÚCÚ_)ú%ú(ú)ú:ú.ú[ú]ú zClassVar[Mapping[str, str]]Úbindname_escape_characterszClassVar[Pattern[str]]Ú_bind_translate_reÚ_bind_translate_charsTFr  ÚisdeleteÚisinsertÚisupdatezOptional[List[Column[Any]]]Ú	postfetchr½   zSequence[Column[Any]]Úinsert_prefetchÚupdate_prefetchNú&Optional[Sequence[ColumnElement[Any]]]Úimplicit_returningÚisplaintextzDict[str, BindParameter[Any]]ÚbindszDict[BindParameter[Any], str]Ú
bind_nameszList[_CompilerStackEntry]r†  Úreturning_precedes_valuesÚ'render_table_with_column_in_update_fromÚansi_bind_rulesr¾   ÚbindtemplateÚcompilation_bindtemplateÚ_numeric_binds_identifier_charzList[ResultColumnsEntry]rš  Ú_textual_ordered_columnsÚ_ad_hoc_textualÚ_ordered_columnsÚ_loose_column_name_matchingÚ_numeric_bindsÚ_render_postcompilezOptional[ExpandedState]Ú_post_compile_expanded_stateúOptional[str]Ú_pre_expanded_stringúOptional[List[str]]Ú_pre_expanded_positiontupzOptional[_InsertManyValues]Ú_insertmanyvaluesz!Optional[crud._CrudParamSequence]Ú_insert_crud_paramszFrozenSet[BindParameter[Any]]Úliteral_execute_paramsÚpost_compile_paramszutil.immutabledict[str, str]Úescaped_bind_nameszbOptional[Tuple[Dict[BindParameter[Any], List[BindParameter[Any]]], Dict[str, BindParameter[Any]]]]Ú_cache_key_bind_matchr+  Ú_values_bindparamÚ_visited_bindparamÚinlinez"Optional[MutableMapping[CTE, str]]ÚcteszDict[Tuple[int, str], CTE]Úctes_by_level_namez/Dict[CTE, Tuple[int, str, selectable._CTEOpts]]Úlevel_name_by_cteÚctes_recursivez"__\[POSTCOMPILE_(\S+?)(~~.+?~~)?\]z%\(([^)]+?)\)sú|c                ó.   — |                       ¦   «          d S r  )Ú_init_bind_translater¼  s    rÁ   r¶  zSQLCompiler._init_compiler_cls2  s   € à× Ò Ñ"Ô"Ð"Ð"Ð"rÃ   c                ó°   — t          j        d                     | j        ¦  «        ¦  «        }t          j        d|› d�¦  «        | _        | j        | _        d S )Nr–  r  r   )ÚreÚescaperx   r"  Úcompiler#  r$  )r¹  Úregs     rÁ   rP  z SQLCompiler._init_bind_translate6  sK   € åŒi˜Ÿš Ô >Ñ?Ô?Ñ@Ô@ˆÝ!#¤¨J°¨J¨J¨JÑ!7Ô!7ˆÔØ$'Ô$BˆÔ!Ð!Ð!rÃ   r¦  r]   r&  r•  r£  r¢  Úcolumn_keysr*  Úfor_executemanyÚlintingrj  Ú_supporting_againstúOptional[SQLCompiler]rÐ  r   c                óJ  — || _         || _        |r-d„ |d         D ¦   «         }	d„ |d         D ¦   «         }
|
|	f| _        || _        || _        i | _        t          j        ¦   «         | _        g | _	        g | _
        |j        | _        | j        rD|j                             d¦  «        x| _        }|r|j        dk    rdnd| _        t           | _        nt$          |j                 | _        d| _        |j        p|j        | _        t-          ¦   «         | _        i | _        i | _        t5          j        | ||fi |¤Ž | j        s| j        s| j        r�t>          rtA          |tB          ¦  «        sJ ‚| j        s| j        rUt>          rtA          |tD          ¦  «        sJ ‚|j#        rd	| _$        n(| j        r!| j        r| j%        j&        r|j'        rd	| _$        t$          |j                 | _(        |r;| j)         *                    d
„ |j)         +                    ¦   «         D ¦   «         ¦  «         | j,        tZ          j.        u rn| j        r0| j        r|  /                    ¦   «          n|  0                    ¦   «          | j1        r2|  2                    dd	¬¦  «        }|  3                    |d	¬¦  «         dS dS dS )a‚  Construct a new :class:`.SQLCompiler` object.

        :param dialect: :class:`.Dialect` to be used

        :param statement: :class:`_expression.ClauseElement` to be compiled

        :param column_keys:  a list of column names to be compiled into an
         INSERT or UPDATE statement.

        :param for_executemany: whether INSERT / UPDATE statements should
         expect that they are to be invoked in an "executemany" style,
         which may impact how the statement will be expected to return the
         values of defaults and autoincrement / sequences and similar.
         Depending on the backend and driver in use, support for retrieving
         these values may be disabled which means SQL expressions may
         be rendered inline, RETURNING may not be rendered, etc.

        :param kwargs: additional keyword arguments to be consumed by the
         superclass.

        c                ó   — i | ]
}|j         |“ŒS r½   ©r0  ©r¿   Úbs     rÁ   ú
<dictcomp>z(SQLCompiler.__init__.<locals>.<dictcomp>a  s   € Ð3Ð3Ð3 �A”E˜1Ð3Ð3Ð3rÃ   r   c                ó   — i | ]}||g“ŒS r½   r½   r^  s     rÁ   r`  z(SQLCompiler.__init__.<locals>.<dictcomp>b  s   € Ð1Ð1Ð1˜q�A˜�sÐ1Ð1Ð1rÃ   rÊ   rË   rÅ   r  NTc                ó"   — i | ]\  }}|d v¯	||“ŒS )>   r˜  r¦  rŸ  Ú
positionalr3  r:  r4  r½   ©r¿   ÚkÚvs      rÁ   r`  z(SQLCompiler.__init__.<locals>.<dictcomp>­  s@   € ð ð ð á˜˜1Øðð	ð 	ð �qð	ð 	ð 	rÃ   F©rÚ  Ú_no_postcompile)Ú_populate_self)4rV  r£  rF  rW  rX  r.  r&   Úcolumn_dictr/  r†  rš  rc  Ú
paramstyleÚ
startswithr:  r5  Ú_pyformat_templater4  ÚBIND_TEMPLATESrJ  Úlabel_lengthÚmax_identifier_lengthr5   Úanon_mapÚtruncated_namesÚ_truncated_countersr”  r´  r&  r'  r%  r   r¯  rC   rD   Ú_inlinerI  r¦  Úinsert_executemany_returningÚ_return_defaultsr3  Ú__dict__ÚupdateÚitemsr˜  re  rg  Ú_process_numericÚ_process_positionalr;  rÞ  Ú#_process_parameters_for_postcompile)r  r¦  r&  r£  rV  rW  rX  rY  rÐ  ÚcksmÚckbmÚnbr'  s                rÁ   r´  zSQLCompiler.__init__<  s6  € ð@ 'ˆÔà"ˆŒàð 	6Ø3Ð3 i°¤lÐ3Ñ3Ô3ˆDØ1Ð1 I¨a¤LÐ1Ñ1Ô1ˆDØ*.°¨ˆDÔ&ð
  /ˆÔàˆŒð ˆŒ
õ Ô*Ñ,Ô,ˆŒð ˆŒ
à!ˆÔð "Ô,ˆŒØŒ?ð 		OØ'.Ô'9×'DÒ'DÀYÑ'OÔ'OÐOˆDÔ "Øð à"Ô-Ð1AÒAÐA�C�CÀsð Ô3õ -?ˆDÔ)Ð)å,:¸7Ô;MÔ,NˆDÔ)àˆŒ	ð Ô ÐA GÔ$Að 	Ôõ (Ñ)Ô)ˆŒð <>ˆÔØ35ˆÔ åÔ˜$ ¨Ð=Ð=°fÐ=Ð=Ð=àŒ=ð 	'˜DœMð 	'¨T¬]ð 	'Ýð 9Ý! )­ZÑ8Ô8Ð8Ð8Ð8àŒ}ð ' ¤ð 'Ý ð =Ý% iµÑ<Ô<Ð<Ð<Ð<ØÔ$ð 	'Ø"&�D”K�KØÔ)ð 'Øœð'ð œÔAð'ð &Ô6ð	'ð #'�D”Kå*¨7Ô+=Ô>ˆÔàð 	ØŒM× Ò ðð à 3Ô <× BÒ BÑ DÔ Dðñ ô ñô ð ð" Œ:�Ô5Ð5Ð5ØŒð /ØÔ&ð /Ø×)Ò)Ñ+Ô+Ð+Ð+à×,Ò,Ñ.Ô.Ð.àÔ'ð Ø!×2Ò2Ø!&Ø$(ð 3ñ ô �
ð
 ×8Ò8Ø¨tð 9ñ ô ð ð ð ð 6Ð5ðð rÃ   r  c                ó,   — | j         €dS | j         j        S )aø  When an INSERT is compiled with a single set of parameters inside
        a VALUES expression, the string is assigned here, where it can be
        used for insert batching schemes to rewrite the VALUES expression.

        .. versionadded:: 1.3.8

        .. versionchanged:: 2.0 This collection is no longer used by
           SQLAlchemy's built-in dialects, in favor of the currently
           internal ``_insertmanyvalues`` collection that is used only by
           :class:`.SQLCompiler`.

        N)rA  r<  r4  s    rÁ   Úinsert_single_values_exprz%SQLCompiler.insert_single_values_exprÎ  s   € ð Ô!Ð)Ø�4àÔ)Ô<Ð<rÃ   c                ó„   — | j         r| j         S | j        �*t          | j        ¦  «        rd„ | j        j        D ¦   «         S dS )aâ  The effective "returning" columns for INSERT, UPDATE or DELETE.

        This is either the so-called "implicit returning" columns which are
        calculated by the compiler on the fly, or those present based on what's
        present in ``self.statement._returning`` (expanded into individual
        columns using the ``._all_selected_columns`` attribute) i.e. those set
        explicitly using the :meth:`.UpdateBase.returning` method.

        .. versionadded:: 2.0

        Nc                ó0   — g | ]}t          |¦  «        ¯|‘ŒS r½   r'   ©r¿   Úcs     rÁ   ú
<listcomp>z3SQLCompiler.effective_returning.<locals>.<listcomp>ñ  s6   € ð ð ð àÝ$ QÑ'Ô'ðØðð ð rÃ   )r,  r&  r)   Ú_all_selected_columnsr4  s    rÁ   Úeffective_returningzSQLCompiler.effective_returningá  s\   € ð Ô"ð 
	ØÔ*Ð*ØŒ^Ð'­F°4´>Ñ,BÔ,BÐ'ðð àœÔ=ðñ ô ð ð �4rÃ   c                ó   — | j         S )zVbackwards compatibility; returns the
        effective_returning collection.

        )rˆ  r4  s    rÁ   Ú	returningzSQLCompiler.returningú  s   € ð Ô'Ð'rÃ   c                ón   — 	 | j         d         d         S # t          $ r}t          d¦  «        |‚d}~ww xY w)a±  Return the current 'executable' that is being compiled.

        This is currently the :class:`_sql.Select`, :class:`_sql.Insert`,
        :class:`_sql.Update`, :class:`_sql.Delete`,
        :class:`_sql.CompoundSelect` object that is being compiled.
        Specifically it's assigned to the ``self.stack`` list of elements.

        When a statement like the above is being compiled, it normally
        is also assigned to the ``.statement`` attribute of the
        :class:`_sql.Compiler` object.   However, all SQL constructs are
        ultimately nestable, and this attribute should never be consulted
        by a ``visit_`` method, as it is not guaranteed to be assigned
        nor guaranteed to correspond to the current statement being compiled.

        .. versionadded:: 1.3.21

            For compatibility with previous versions, use the following
            recipe::

                statement = getattr(self, "current_executable", False)
                if statement is False:
                    statement = self.stack[-1]["selectable"]

            For versions 1.4 and above, ensure only .current_executable
            is used; the format of "self.stack" may change.


        éÿÿÿÿr$   z$Compiler does not have a stack entryN)r†  Ú
IndexError)r  Úies     rÁ   Úcurrent_executablezSQLCompiler.current_executable  sM   € ð<	MØ”:˜b”> ,Ô/Ð/øÝð 	Mð 	Mð 	MÝÐCÑDÔDÈ"ÐLøøøøð	Møøøs   ‚ •
4Ÿ/¯4c                óT   — t          | j        ¦  «        t          | j        ¦  «        z   S r  )Úlistr)  r*  r4  s    rÁ   ÚprefetchzSQLCompiler.prefetch%  s#   € å�DÔ(Ñ)Ô)­D°Ô1EÑ,FÔ,FÑFÐFrÃ   úDict[Any, Any]c                ó   — i S r  r½   r4  s    rÁ   Ú_global_attributeszSQLCompiler._global_attributes)  s   € àˆ	rÃ   úMutableMapping[CTE, str]c                ód   — t          j        ¦   «         }|| _        i | _        i | _        d| _        |S )z’Initialize collections related to CTEs only if
        a CTE is located, to save on the overhead of
        these collections otherwise.

        F)r&   ÚOrderedDictrJ  rK  rL  rM  )r  rJ  s     rÁ   Ú_init_cte_statezSQLCompiler._init_cte_state-  s:   € õ *.Ô)9Ñ);Ô);ˆØˆŒ	ð #%ˆÔð "$ˆÔà#ˆÔàˆrÃ   c              #  ó@  K  — | j         | j        }}g dc| _         | _        	 | j        r| j        d         }d|d<   nd}| j         | j        fV — |r|                     d¦  «         ||c| _         | _        dS # |r|                     d¦  «         ||c| _         | _        w xY w)z;special API to support the use case of 'nested result sets'FrŒ  Tr  N)rš  r8  r†  r|  )r  Úresult_columnsÚordered_columnsÚentrys       rÁ   Ú_nested_resultzSQLCompiler._nested_resultE  sð   è è € ð Ô ØÔ!ð (ˆð 79¸%Ð3ˆÔ˜dÔ3ð	ØŒzð Øœ
 2œ�Ø6:�Ð2Ñ3Ð3à�ØÔ&¨Ô(=Ð=Ð=Ð=Ð=àð 8Ø—	’	Ð6Ñ7Ô7Ð7àØð 8ˆDÔ  $Ô"7Ð"7Ð"7øð ð 8Ø—	’	Ð6Ñ7Ô7Ð7àØð 8ˆDÔ  $Ô"7ð ð ð ð s   ¡,A5 Á5(Bc                ó´  ‡ ‡‡‡‡— ‰ j         rJ ‚‰ j        t          j        u sJ ‚‰ j        rJ ‚‰ j        j        dk    rdŠn‰ j        j        dk    sJ ‚dŠg Šdˆˆfd	„Št          j        ‰ j	        ‰‰ j
        ¦  «        ‰ _
        ‰ j        r^d
„ ‰ j                             ¦   «         D ¦   «         Št          ‰ j        ¦  «        t          ‰¦  «        k    sJ ‚ˆfd„‰D ¦   «         ‰ _         n‰‰ _         ‰ j        rcg Št          j        ‰ j	        ‰‰ j        j        ¦  «        }ˆˆ fd„‰ j        j        D ¦   «         }‰ j                             ||¬¦  «        ‰ _        d S d S )NrÉ   ú%srÈ   rÆ   Úmúre.Match[str]r  r¾   c                óÚ   •— |                       d¦  «        }|r‰                     |¦  «         ‰S ‰                     |                       d¦  «        ¦  «         |                       d¦  «        S )Nr   r7   r   )r‡   Úappend)r¡  Únormal_bindÚplaceholderÚ	positionss     €€rÁ   Úfind_positionz6SQLCompiler._process_positional.<locals>.find_positionj  sd   ø€ ØŸ'š' !™*œ*ˆKØð "Ø× Ò  Ñ-Ô-Ð-Ø"Ð"ð × Ò  §¢¨¡¤Ñ,Ô,Ð,Ø—w’w˜q‘z”zÐ!rÃ   c                ó   — i | ]\  }}||“Œ	S r½   r½   rd  s      rÁ   r`  z3SQLCompiler._process_positional.<locals>.<dictcomp>y  s   € ÐOÐOÐO¡t q¨!˜a ÐOÐOÐOrÃ   c                ó<   •— g | ]}‰                      ||¦  «        ‘ŒS r½   ©Úget)r¿   rù   Úreverse_escapes     €rÁ   r†  z3SQLCompiler._process_positional.<locals>.<listcomp>{  s6   ø€ ð  ð  ð  Ø37�×"Ò" 4¨Ñ.Ô.ð ð  ð  rÃ   c           
     ó~   •— g | ]9}|d          |d         t          j        ‰j        ‰|d         ¦  «        |d         f‘Œ:S )r   r   r7   r  )rR  ÚsubÚ_positional_pattern)r¿   rf  r¨  r  s     €€rÁ   r†  z3SQLCompiler._process_positional.<locals>.<listcomp>‰  sZ   ø€ ð "ð "ð "ð ð �a”DØ�a”DÝ”F˜4Ô3°]ÀAÀaÄDÑIÔIØ�a”Dð	ð"ð "ð "rÃ   ©r<  r>  )r¡  r¢  r  r¾   )r+  r˜  re  rg  r:  r¦  rk  rR  r¯  r°  r—  rE  ry  ÚlenrA  r<  r>  Ú_replace)r  r<  r>  r¨  r¦  r§  r­  s   `  @@@@rÁ   r{  zSQLCompiler._process_positional]  sä  øøøøø€ ØÔ#Ð#Ð#Ð#ØŒz�]Ô9Ð9Ð9Ð9Ð9ØÔ&Ð&Ð&Ð&àŒ<Ô" hÒ.Ð.ØˆKˆKà”<Ô*¨gÒ5Ð5Ð5Ð5ØˆKàˆ	ð	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"õ ”fØÔ$ m°T´[ñ
ô 
ˆŒð Ô"ð 	)ØOÐO¨tÔ/F×/LÒ/LÑ/NÔ/NÐOÑOÔOˆNÝ�tÔ.Ñ/Ô/µ3°~Ñ3FÔ3FÒFÐFÐFÐFð ð  ð  ð  Ø;Dð ñ  ô  ˆDÔÐð  )ˆDÔàÔ!ð 	ØˆIå!#¤ØÔ(ØØÔ&Ô9ñ"ô "Ðð
"ð "ð "ð "ð "ð Ô/ÔBð"ñ "ô "Ðð &*Ô%;×%DÒ%DØ#5Ø#5ð &Eñ &ô &ˆDÔ"Ð"Ð"ð%	ð 	rÃ   c                ó~  ‡ ‡	— ‰ j         sJ ‚‰ j        t          j        u sJ ‚d}i Š	‰ j        rW‰ j        �Pt          j        ˆ fd„‰ j         	                    ¦   «         D ¦   «         ‰ j         	                    ¦   «         ¦  «        }n‰ j         	                    ¦   «         }|D ]A}|‰	v rŒ‰ j
        |         }|‰ j        v s	|‰ j        v rd ‰	|<   Œ,‰ j        › |› �}|dz  }|‰	|<   ŒB|‰ _        t          ‰	¦  «        ‰ _        ‰ j        rDt%          ‰	¦  «        }ˆ fd„‰	                     ¦   «         D ¦   «         Š	t%          ‰	¦  «        |k    sJ ‚‰ j                             ˆ	fd„‰ j        ¦  «        ‰ _        ‰ j        rH‰ j        j        ‰	z  }d„ ‰ j        j        D ¦   «         }‰ j                             ||¬¦  «        ‰ _        d S d S )Nr   c              3  ó.   •K  — | ]}|‰j         v¯|V — Œd S r  )rG  )r¿   rù   r  s     €rÁ   r1  z/SQLCompiler._process_numeric.<locals>.<genexpr>¤  s=   øè è € ð ð àØ 4Ô#9Ð9Ð9ð à9Ð9Ð9Ð9ðð rÃ   c                óN   •— i | ]!\  }}‰j                              ||¦  «        |“Œ"S r½   )rE  r¬  )r¿   rù   Úposr  s      €rÁ   r`  z0SQLCompiler._process_numeric.<locals>.<dictcomp>Ã  sB   ø€ ð ð ð á�D˜#ð Ô'×+Ò+¨D°$Ñ7Ô7¸ðð ð rÃ   c                ó:   •— ‰|                       d¦  «                 S ©Nr   ©r‡   ©r¡  Ú	param_poss    €rÁ   ú<lambda>z.SQLCompiler._process_numeric.<locals>.<lambda>Ë  s   ø€ �i §¢¨¡
¤
Ô+€ rÃ   c                ó>   — g | ]}|d          |d         d|d         f‘ŒS )r   r   r   r  r½   )r¿   rf  s     rÁ   r†  z0SQLCompiler._process_numeric.<locals>.<listcomp>Õ  s=   € ð "ð "ð "àð �1”�q˜”t˜T 1 Q¤4Ð(ð"ð "ð "rÃ   r±  )r:  r˜  re  rg  rA  rG  Ú	itertoolsÚchainr/  Úvaluesr.  rD  rC  r5  Únext_numeric_posr‘  r+  rE  r²  ry  Ú_pyformat_patternr¯  r—  r<  r>  r³  )
r  Únumr‹   Ú	bind_nameÚbindÚphÚ
len_beforer<  r>  r¼  s
   `        @rÁ   rz  zSQLCompiler._process_numeric˜  sZ  øø€ ØÔ"Ð"Ð"Ð"ØŒz�]Ô9Ð9Ð9Ð9Ð9àˆØ$&ˆ	àÔ!ð 	- dÔ&<Ð&Hõ ”Oðð ð ð à $¤× 6Ò 6Ñ 8Ô 8ðñ ô ð
 ”×&Ò&Ñ(Ô(ñô ˆEˆEð ”O×*Ò*Ñ,Ô,ˆEàð 	*ð 	*ˆIØ˜IÐ%Ð%ØØ”:˜iÔ(ˆDà˜Ô0Ð0Ð0Ø˜4Ô6Ð6Ð6ð (,�	˜)Ñ$Ð$àÔ;ÐB¸SÐBÐB�Ø�q‘�Ø')�	˜)Ñ$Ð$à #ˆÔå 	™?œ?ˆÔØÔ"ð 	0Ý˜Y™œˆJðð ð ð à!*§¢Ñ!2Ô!2ðñ ô ˆIõ �y‘>”> ZÒ/Ð/Ð/Ð/ð Ô,×0Ò0Ø+Ð+Ð+Ð+¨T¬[ñ
ô 
ˆŒð Ô!ð 	ð Ô&Ô9Øñð ð"ð "àÔ/ÔBð"ñ "ô "Ðð
 &*Ô%;×%DÒ%Dà#5à#5ð	 &Eñ &ô &ˆDÔ"Ð"Ð"ð	ð 	rÃ   úVMutableMapping[str, Union[_BindProcessorType[Any], Sequence[_BindProcessorType[Any]]]]c                ó>   ‡ — d„ ˆ fd„‰ j         D ¦   «         D ¦   «         S )Nc                ó   — i | ]
\  }}|®||“ŒS r  r½   )r¿   r0  Úvalues      rÁ   r`  z0SQLCompiler._bind_processors.<locals>.<dictcomp>é  s2   € ð 
ð 
ð 
á��Uð  Ð ð# �ð" !Ð Ð rÃ   c           	   3  óø   •K  — | ]t}‰j         |         |j        j        s|j                             ‰j        ¦  «        n7t          ˆfd „t          t          |j        ¦  «        j        D ¦   «         ¦  «        fV — ŒudS )c              3  óL   •K  — | ]}|                      ‰j        ¦  «        V — Œd S r  )Ú_cached_bind_processorr¦  )r¿   Ú	elem_typer  s     €rÁ   r1  z9SQLCompiler._bind_processors.<locals>.<genexpr>.<genexpr>ñ  sG   øè è € ð #ð #à )ð &×<Ò<¸T¼\ÑJÔJð#ð #ð #ð #ð #ð #rÃ   N)	r/  rý   Ú_is_tuple_typerÏ  r¦  r3  r   r3   Útypes)r¿   Ú	bindparamr  s     €rÁ   r1  z/SQLCompiler._bind_processors.<locals>.<genexpr>ë  s²   øè è € ð ð ð ð ”O IÔ.ð  )œ~Ô<ð˜	œ×=Ò=¸d¼lÑKÔKÐKå"ð #ð #ð #ð #å-1Ý )¨9¬>ñ.ô .ä#ð	#ñ #ô #ñ ô ððð ð ð ð ð rÃ   )r/  r4  s   `rÁ   Ú_bind_processorszSQLCompiler._bind_processorsá  sK   ø€ ð
ð 
ðð ð ð ð "&¤ðñ ô ð
ñ 
ô 
ð 	
rÃ   c                ó2   — t          | j        ¦  «        dk    S r¹  )r²  r†  r4  s    rÁ   Úis_subqueryzSQLCompiler.is_subqueryþ  s   € Ý�4”:‰Œ Ò"Ð"rÃ   c                ó   — | S r  r½   r4  s    rÁ   rÎ  zSQLCompiler.sql_compiler  s   € àˆrÃ   rÖ  r×  rÚ  r%  c                ó\   — |                       ||d¬¦  «        }|                      |¦  «        S )aR  Return a new :class:`.ExpandedState` for a given parameter set.

        For queries that use "expanding" or other late-rendered parameters,
        this method will provide for both the finalized SQL string as well
        as the parameters that would be used for a particular parameter set.

        .. versionadded:: 2.0.0rc1

        Trg  )rÞ  r|  )r  rÖ  rÚ  r'  s       rÁ   Úconstruct_expanded_statez$SQLCompiler.construct_expanded_state  sD   € ð ×*Ò*ØØ%Ø ð +ñ 
ô 
ˆ
ð
 ×7Ò7Øñ
ô 
ð 	
rÃ   rØ  rÙ  Ú_group_numberúOptional[int]Ú_checkrh  r\   c                óÄ  ‡— | j         r:|s8| j        €J ‚|st          | j        j        ¦  «        S t	          j        d¦  «        ‚|ot          | j        ¦  «        }|rU| j        €t	          j	        d¦  «        ‚| j        d         }| j
        }	|	€J ‚|	\  Š}
ˆfd„t          ||¦  «        D ¦   «         }nd}|rìi }| j                             ¦   «         D ]Î\  }}|r| j                             ||¦  «        n|}|j        |v r||j                 ||<   Œ>||v r||         ||<   ŒN|rG|j        r@|r t	          j        d|j        |fz  d¬¦  «        ‚t	          j        d	|j        z  d¬¦  «        ‚|r|                     ||¦  «        }n|}|j        r|j        ||<   ŒÄ|j        ||<   ŒÏ|S i }| j                             ¦   «         D ]¤\  }}|r| j                             ||¦  «        n|}|rG|j        r@|r t	          j        d|j        |fz  d¬¦  «        ‚t	          j        d	|j        z  d¬¦  «        ‚|r|                     ||¦  «        }n|}|j        r|j        ||<   Œš|j        ||<   Œ¥|S )
z5return a dictionary of bind parameter keys and valuesNzÂcan't construct new parameters when render_postcompile is used; the statement is hard-linked to the original parameters.  Use construct_expanded_state to generate a new statement and parameters.zcThis compiled object has no original cache key; can't pass extracted_parameters to construct_paramsr   c                ó2   •— i | ]\  }}‰|         D ]}||“ŒŒS r½   r½   )r¿   r_  Ú	extractedrÆ  r~  s       €rÁ   r`  z0SQLCompiler.construct_params.<locals>.<dictcomp>G  sJ   ø€ ð "ð "ð "á �A�yØ  œGð"ð "ð ð �ið"ð "ð "ð "rÃ   z@A value is required for bind parameter %r, in parameter group %dÚcd3x)Úcodez)A value is required for bind parameter %r)r;  r<  Údictr'  r8   r2  r  rE  r£  ÚCompileErrorrF  Úzipr/  ry  r¬  r0  ÚrequiredÚcallableÚeffective_valuerÌ  )r  rÖ  rØ  rÚ  rÚ  rÜ  rh  Úhas_escaped_namesÚorig_extractedÚ
ckbm_tupler  Úresolved_extractedÚpdrÓ  rù   Úescaped_nameÚvalue_paramr~  s                    @rÁ   rÞ  zSQLCompiler.construct_params  s˜  ø€ ð Ô#ð 
	¨Oð 
	ØÔ4Ð@Ð@Ð@Øð Ý˜DÔ=ÔHÑIÔIÐIåÔ-ð4ñô ð ð )ÐJ­T°$Ô2IÑ-JÔ-JÐàð 	&ð Œ~Ð%ÝÔ&ðJñô ð ð
 "&¤°Ô!2�àÔ3ˆJØÐ)Ð)Ð)Ø ‰GˆD�!ð"ð "ð "ð "å$'¨Ð8LÑ$MÔ$Mð"ñ "ô "ÐÐð "&Ðàð K	ØˆBØ#'¤?×#8Ò#8Ñ#:Ô#:ð %=ð %=‘�	˜4ð )ð�DÔ+×/Ò/°°dÑ;Ô;Ð;àð ð ”= FÐ*Ð*Ø'-¨i¬mÔ'<�B�|Ñ$Ð$Ø˜V�^�^Ø'-¨d¤|�B�|Ñ$Ð$àð = 	Ô 2ð =Ø$ð Ý!Ô5ð4à(œ}¨mÐ<ñ=ð "(ð	ñ ô ð õ "Ô5ØGØ'œmñ,à!'ðñ ô ð ð *ð 0Ø&8×&<Ò&<Ø% yñ'ô '˜˜ð '0˜à Ô)ð =Ø+6Ô+F˜˜<Ñ(Ð(à+6Ô+<˜˜<Ñ(Ð(ØˆIàˆBØ#'¤?×#8Ò#8Ñ#:Ô#:ð 9ð 9‘�	˜4ð )ð�DÔ+×/Ò/°°dÑ;Ô;Ð;àð ð ð ˜iÔ0ð Ø$ð Ý!Ô5ð4à(œ}¨mÐ<ñ=ð "(ð	ñ ô ð õ "Ô5ØGØ'œmñ,à!'ðñ ô ð ð &ð ,Ø"4×"8Ò"8¸ÀIÑ"NÔ"N�K�Kà"+�KàÔ%ð 9Ø'2Ô'B�B�|Ñ$Ð$à'2Ô'8�B�|Ñ$Ð$àˆIrÃ   c                ó$  ‡‡‡‡‡— | j         Š‰j        Š‰j        Š‰j        Šˆˆˆˆfd„Ši }| j        }| j        D ]U}||v rŒ|j        j        r/ˆfd„t          t          |j        ¦  «        j
        D ¦   «         ||<   ŒB ‰|j        ¦  «        ||<   ŒV|S )Nc                óx   •— |                       ‰¦  «                             ‰¦  «        }|�‰�|‰vr‰�|‰v r|S d S r  )Ú_unwrapped_dialect_implÚget_dbapi_type)ÚtypÚdbtypeÚdbapir¦  Úexclude_typesÚinclude_typess     €€€€rÁ   Úlookup_typez<SQLCompiler._get_set_input_sizes_lookup.<locals>.lookup_type¥  sV   ø€ Ø×0Ò0°Ñ9Ô9×HÒHÈÑOÔOˆFð Ð"Ø"Ð*¨f¸MÐ.IÐ.IØ"Ð*¨f¸Ð.EÐ.Eà�à�trÃ   c                ó&   •— g | ]} ‰|¦  «        ‘ŒS r½   r½   )r¿   ró  rø  s     €rÁ   r†  z;SQLCompiler._get_set_input_sizes_lookup.<locals>.<listcomp>º  s3   ø€ ð )ð )ð )àð  �K Ñ$Ô$ð)ð )ð )rÃ   )r¦  Úinclude_set_input_sizesÚexclude_set_input_sizesrõ  rC  r/  rý   rÑ  r   r3   rÒ  )	r  Ú
inputsizesrC  rÓ  rõ  r¦  rö  r÷  rø  s	       @@@@@rÁ   Ú_get_set_input_sizes_lookupz'SQLCompiler._get_set_input_sizes_lookupœ  sí   øøøøø€ à”,ˆàÔ7ˆØÔ7ˆà”ˆð
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð ˆ
à!%Ô!<Ðàœð 
	Dð 
	DˆIØÐ2Ð2Ð2ØàŒ~Ô,ð Dð)ð )ð )ð )å#¥I¨y¬~Ñ>Ô>ÔDð)ñ )ô )�
˜9Ñ%Ð%ð
 )4¨°I´NÑ(CÔ(C�
˜9Ñ%Ð%àÐrÃ   c                ó.   — |                       d¬¦  «        S )zýReturn the bind param dictionary embedded into this
        compiled object, for those values that are present.

        .. seealso::

            :ref:`faq_sql_expression_string` - includes a usage example for
            debugging use cases.

        F)rÜ  rà  r4  s    rÁ   rÖ  zSQLCompiler.paramsÃ  s   € ð ×$Ò$¨EÐ$Ñ2Ô2Ð2rÃ   r'  ri  c                ó0  ‡ ‡‡‡‡‡— i }‰ j         }|€‰ j        }‰ j        rg }‰ j        }|€‰ j        }ndx}}‰ j        }t          d|¦  «        Št          d|¦  «        Ši }i Ši }	d}
‰ j        r|�|}‰ j        rg }
n‰ j         	                    ¦   «         }‰ j
        }|D �]£Š|r|                     ‰‰¦  «        n‰}‰ j        ‰         }|‰ j        v r2|‰vr-‰                      ||                     |¦  «        ¬¦  «        ‰|<   Œe|‰ j        v �r|‰v r|	|         }d}n;|                     ‰¦  «        }‰                      |||¦  «        }|\  }}||	|<   |‰|<   |j        sÊ|                     |¦  «         |j        j        r5|€J ‚|                     ˆˆfd„t-          |d¦  «        D ¦   «         ¦  «         n"|                     ˆˆfd„|D ¦   «         ¦  «         |
� |
                     d„ |D ¦   «         ¦  «         n!|�|                     d	„ |D ¦   «         ¦  «         d
„ |D ¦   «         |‰<   �ŒŒ|�|                     ‰¦  «         �Œ¥ˆfd„}t3          j        ‰ j        ||¦  «        }|
�X|€J ‚ˆ fd„t-          |
‰ j        ¦  «        D ¦   «         Š‰ j                             ˆfd„|¦  «        }|                     |
¦  «         t=          |||||¦  «        }|rE|‰ _         |‰ _        |j        ‰ _        ‰ j        rtA          |j        pd¦  «        nd‰ _        |‰ _!        |S )až  handle special post compile parameters.

        These include:

        * "expanding" parameters -typically IN tuples that are rendered
          on a per-parameter basis for an otherwise fixed SQL statement string.

        * literal_binds compiled with the literal_execute flag.  Used for
          things like SQL Server "TOP N" where the driver does not accommodate
          N as a bound parameter.

        Nr(  z/Mapping[str, Sequence[_BindProcessorType[Any]]]©Úrender_literal_valuec              3  óª   •K  — | ]M\  }}t          |d ¦  «        D ]7\  }}‰‰v r.‰‰         |d z
           ®‰›d|›d|›�‰‰         |d z
           fV — Œ8ŒNdS )r   Nr  ©Ú	enumerate)r¿   ÚiÚtuple_elementÚjr  rù   Útuple_processorss        €€rÁ   r1  zBSQLCompiler._process_parameters_for_postcompile.<locals>.<genexpr>=  s¢   øè è € ð 	.ð 	.ñ
 !1  =Ý(1°-ÀÑ(CÔ(Cð	.ð 	.ñ !%  1Ø#Ð'7Ð7Ð7Ø 0°Ô 6°q¸1±uÔ =Ð Ið /3¨d¨d°A°A°A°q°qÐ 9Ø 0°Ô 6°q¸1±uÔ =ðð !JÐ IÐ IÐ IÐ Ið	.ð 	.rÃ   r   c              3  ó:   •K  — | ]\  }}‰‰v ¯	|‰‰         fV — Œd S r  r½   )r¿   r0  r  rù   Úsingle_processorss      €€rÁ   r1  zBSQLCompiler._process_parameters_for_postcompile.<locals>.<genexpr>H  sJ   øè è € ð .ð .á &  QØ#Ð'8Ð8Ð8ð !Ð"3°DÔ"9Ð:à8Ð8Ð8Ð8ð.ð .rÃ   c              3  ó    K  — | ]	\  }}|V — Œ
d S r  r½   ©r¿   rù   r  s      rÁ   r1  zBSQLCompiler._process_parameters_for_postcompile.<locals>.<genexpr>N  s7   è è € ð 3ð 3Ù%, T¨1˜Dð3ð 3ð 3ð 3ð 3ð 3rÃ   c              3  ó    K  — | ]	\  }}|V — Œ
d S r  r½   r  s      rÁ   r1  zBSQLCompiler._process_parameters_for_postcompile.<locals>.<genexpr>U  s&   è è € Ð.MÐ.M¹¸¸a¨tÐ.MÐ.MÐ.MÐ.MÐ.MÐ.MrÃ   c                ó   — g | ]\  }}|‘ŒS r½   r½   )r¿   Ú
expand_keyr  s      rÁ   r†  zCSQLCompiler._process_parameters_for_postcompile.<locals>.<listcomp>V  s)   € ð 1ð 1ð 1Ù'4 z°1˜
ð1ð 1ð 1rÃ   c                óL  •‡‡— |                       d¦  «        }‰|         }|                       d¦  «        rn|                       d¦  «                             d¦  «        }|d         |d         cŠŠd                     ˆˆfd„|                     d¦  «        D ¦   «         ¦  «        }|S )Nr   r7   ú~~r  rÐ   c              3  ó(   •K  — | ]}‰›|›‰›�V — Œd S r  r½   )r¿   ÚexpÚbe_leftÚbe_rights     €€rÁ   r1  z]SQLCompiler._process_parameters_for_postcompile.<locals>.process_expanding.<locals>.<genexpr>e  sD   øè è € ð !ð !àð !( ¨¨¨h¨hÐ7ð!ð !ð !ð !ð !ð !rÃ   )r‡   Úsplitrx   )r¡  r0  ÚexprÚtokr  r  Úreplacement_expressionss       @@€rÁ   Úprocess_expandingzJSQLCompiler._process_parameters_for_postcompile.<locals>.process_expanding\  s´   øøø€ Ø—'’'˜!‘*”*ˆCØ*¨3Ô/ˆDð �wŠw�q‰zŒzð Ø—g’g˜a‘j”j×&Ò& tÑ,Ô,�Ø$'¨¤F¨C°¬FÐ!�˜Ø—y’yð !ð !ð !ð !ð !à#Ÿzšz¨$Ñ/Ô/ð!ñ !ô !ñ ô �ð ˆKrÃ   c                ó.   •— i | ]\  }}|‰j         › |› �“ŒS r½   ©r5  )r¿   rÄ  r0  r  s      €rÁ   r`  zCSQLCompiler._process_parameters_for_postcompile.<locals>.<dictcomp>q  s=   ø€ ð ð ð á�C˜ð ˜Ô;ÐB¸SÐBÐBðð ð rÃ   c                ó:   •— ‰|                       d¦  «                 S r¹  rº  r»  s    €rÁ   r½  zASQLCompiler._process_parameters_for_postcompile.<locals>.<lambda>y  s   ø€ ˜) A§G¢G¨A¡J¤JÔ/€ rÃ   r½   )"r>  r—  rc  r@  r+  rÔ  r   r:  r/  rÁ  rE  r¬  r.  rC  Úrender_literal_bindparamr|  rD  Ú$_literal_execute_expanding_parameterÚliteral_executerx  rý   rÑ  r  Úextendr¤  rR  r¯  Ú_post_compile_patternrÂ  rÃ  r%  r&  r‘  r<  )r  r'  ri  Úexpanded_parametersÚpre_expanded_stringÚnew_positiontupÚpre_expanded_positiontupr)  Únew_processorsÚto_update_setsÚnumeric_positiontupÚnamesÚebnrí  Ú	parameterÚ	to_updaterÁ  Úleep_resÚreplacement_exprr  r&  Úexpanded_staterù   r¼  r  r
  r  s   `                     @@@@@rÁ   r|  z/SQLCompiler._process_parameters_for_postcompileÐ  s¾  øøøøøø€ ð$ !Ðð #Ô7ÐØÐ&Ø"&¤+ÐàŒ?ð 	>Ø ˆOà'+Ô'EÐ$Ø'Ð/Ø+/Ô+;Ð(øð :>Ð=ˆOÐ6àÔ*ˆ
Ý Ø3°Zñ
ô 
Ðõ  Ø=¸zñ
ô 
Ðð >@ˆà24ÐØ)+ˆð 48ÐàŒ?ð 	-Ð7ÐCØ#;ˆEØÔ"ð )Ø&(Ð#øà”O×*Ò*Ñ,Ô,ˆEàÔ%ˆØð I	-ñ I	-ˆDØ25Ð?˜3Ÿ7š7 4¨Ñ.Ô.Ð.¸4ˆLØœ
 4Ô(ˆIà˜DÔ7Ð7Ð7ØÐ'>Ð>Ð>à×5Ò5Ø%Ø1;·²ÀÑ1MÔ1Mð 6ñ ô ð ,¨LÑ9ð à˜DÔ4Ð4Ñ4ØÐ#:Ð:Ð:Ø .¨|Ô <�IØ!�F�Fð (Ÿ^š^¨DÑ1Ô1�Fà#×HÒHØ$ i°ñ ô  �Hð 5=Ñ1�YÐ 0à3<�N <Ñ0Ø<LÐ+¨LÑ9à Ô0ð Ø×%Ò% iÑ0Ô0Ð0Ø ”~Ô4ð Ø%Ð1Ð1Ð1Ø&×-Ò-ð 	.ð 	.ð 	.ð 	.ð 	.õ
 5>¸fÀaÑ4HÔ4Hð	.ñ 	.ô 	.ñ 	ô 	ð 	ð 	ð '×-Ò-ð .ð .ð .ð .ð .à*3ð.ñ .ô .ñ ô ð ð
 +Ð6Ø+×2Ò2ð 3ð 3Ø09ð3ñ 3ô 3ñ ô ð ð ð )Ð4ð (×.Ò.Ð.MÐ.MÀ9Ð.MÑ.MÔ.MÑMÔMÐMð1ð 1Ø8Að1ñ 1ô 1Ð'¨Ñ-ùð !Ð,Ø×&Ò& tÑ,Ô,Ð,ùð	ð 	ð 	ð 	ð 	õ ”FØÔ&Ð(9Ð;Nñ
ô 
ˆ	ð Ð*Ø"Ð.Ð.Ð.ðð ð ð å )Ø'¨Ô)>ñ!ô !ðñ ô ˆIð Ô.×2Ò2Ø/Ð/Ð/Ð/°ñô ˆIð ×"Ò"Ð#6Ñ7Ô7Ð7å&ØØØØØñ
ô 
ˆð ð 	?ð )<ˆDÔ%Ø-EˆDÔ*Ø(Ô2ˆDŒKð ”?ð•�^Ô/Ð5°2Ñ6Ô6Ð6àð Ôð
 1?ˆDÔ-àÐrÃ   zsqlalchemy.engine.cursorc                ób   — t           j        j        }|j                             | j        ¦  «        S )z(utility method used for unit tests only.)r&   Ú	preloadedÚengine_cursorrU   Ú_create_description_match_maprš  )r  Úcursors     rÁ   Ú_create_result_mapzSQLCompiler._create_result_map•  s/   € õ ”Ô-ˆØÔ*×HÒHØÔ ñ
ô 
ð 	
rÃ   Ú_BindNameForColProtocolÚ_get_bind_name_for_colúCallable[[Any], str]c                ó   — | j         }|S r  )r8  )r  Úgetters     rÁ   Ú_within_exec_param_key_getterz)SQLCompiler._within_exec_param_key_getter   s   € àÔ,ˆØˆrÃ   zsqlalchemy.engine.resultc                óÊ  ‡‡‡‡	‡
‡‡— t           j        j        }| j        Š| j        €J ‚| j        j        }t          rt          |t          ¦  «        sJ ‚|j	        }ˆfd„|j
        D ¦   «         Š	d Š|j        Š‰�<‰j                             | j        d ¦  «        Š
 ‰‰¦  «        Š‰| j        v rˆfd„}|Šnd Š
|                     d„ |j
        D ¦   «         ¦  «        Šˆˆˆ	ˆ
ˆfd„}|S )Nc                óR   •— g | ]#}t          j        d  ‰|¦  «        d¦  «        |f‘Œ$S )r¬  N)ÚoperatorÚmethodcaller)r¿   rù  Úparam_key_getters     €rÁ   r†  zKSQLCompiler._inserted_primary_key_from_lastrowid_getter.<locals>.<listcomp>´  sI   ø€ ð 
ð 
ð 
àõ Ô" 5Ð*:Ð*:¸3Ñ*?Ô*?ÀÑFÔFÈÐLð
ð 
ð 
rÃ   c                ó<   •— |                      ‰| ¦  «        }|�|S | S r  r«  )Ú	lastrowidr'  Úparam_valueÚautoinc_keys      €rÁ   Ú_autoinc_getterzPSQLCompiler._inserted_primary_key_from_lastrowid_getter.<locals>._autoinc_getterÉ  s,   ø€ Ø",§.¢.°¸iÑ"HÔ"H�KØ"Ð.ð
  +Ð*ð  )Ð(rÃ   c                ó   — g | ]	}|j         ‘Œ
S r½   r]  ©r¿   rù  s     rÁ   r†  zKSQLCompiler._inserted_primary_key_from_lastrowid_getter.<locals>.<listcomp>Û  ó   € Ð%KÐ%KÐ%K°# c¤gÐ%KÐ%KÐ%KrÃ   c                óˆ   •‡ ‡— ‰� ‰‰ ¦  «        Š ‰ € ‰ˆfd„‰D ¦   «         ¦  «        S  ‰ˆˆˆ ˆfd„‰D ¦   «         ¦  «        S )a  given cursor.lastrowid value and the parameters used for INSERT,
            return a "row" that represents the primary key, either by
            using the "lastrowid" or by extracting values from the parameters
            that were sent along with the INSERT.

            Nc              3  ó4   •K  — | ]\  }} |‰¦  «        V — Œd S r  r½   )r¿   r;  rù  r'  s      €rÁ   r1  zWSQLCompiler._inserted_primary_key_from_lastrowid_getter.<locals>.get.<locals>.<genexpr>è  s1   øè è € ÐLÐL±[°V¸S˜f˜f ZÑ0Ô0ÐLÐLÐLÐLÐLÐLrÃ   c              3  ó\   •K  — | ]&\  }}|‰u r‰� ‰‰‰¦  «        n‰n
 |‰¦  «        V — Œ'd S r  r½   )r¿   r;  rù  Úautoinc_colÚautoinc_getterrC  r'  s      €€€€rÁ   r1  zWSQLCompiler._inserted_primary_key_from_lastrowid_getter.<locals>.get.<locals>.<genexpr>ê  su   øè è € ð ð ñ $˜ ð  +Ð-Ð-ð  .Ð9ð +˜N¨9°jÑAÔAÐAà!* ð $˜V JÑ/Ô/ðð ð ð ð ð rÃ   r½   )rC  r'  rM  rN  ÚgettersÚlastrowid_processorÚrow_fns   ``€€€€€rÁ   r¬  zDSQLCompiler._inserted_primary_key_from_lastrowid_getter.<locals>.getÝ  s“   øøø€ ð #Ð.Ø/Ð/°	Ñ:Ô:�	àÐ Ø�vÐLÐLÐLÐLÀGÐLÑLÔLÑLÔLÐLà�vð ð ð ð ð ð ð ð (/ðñ ô ñ ô ð rÃ   )r&   r2  Úengine_resultr<  r  r&  r   r¯  rB   rŽ   Úprimary_keyÚ_autoincrement_columnrý   Ú_cached_result_processorr¦  r.  Úresult_tuple)r  Úresultr&  rŽ   rF  r¬  rM  rN  rE  rO  rP  rA  rQ  s         @@@@@@@rÁ   Ú+_inserted_primary_key_from_lastrowid_getterz7SQLCompiler._inserted_primary_key_from_lastrowid_getter¥  s`  øøøøøøø€ õ ”Ô-ˆàÔ=ÐàÔ!Ð-Ð-Ð-ØÔ&Ô0ˆ	åð 	1Ý˜i­Ñ0Ô0Ð0Ð0Ð0à”ˆð
ð 
ð 
ð 
àÔ(ð
ñ 
ô 
ˆð
 ˆØÔ1ˆØÐ"à"-Ô"2×"KÒ"KØ”˜dñ#ô #Ðð +Ð*¨;Ñ7Ô7ˆKð ˜dœjÐ(Ð(ð
)ð 
)ð 
)ð 
)ð 
)ð "1�øð #'Ðà×$Ò$Ð%KÐ%K¸Ô9JÐ%KÑ%KÔ%KÑLÔLˆð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð4 ˆ
rÃ   c                ó¸  ‡‡‡‡	— t           j        rddlm} nt          j        j        }| j        €J ‚| j        j        }t          rt          |t          ¦  «        sJ ‚| j        Š|j        }| j        }|€J ‚d„ t          |¦  «        D ¦   «         Št          dˆˆfd„|j        D ¦   «         ¦  «        Š|                     d„ |j        D ¦   «         ¦  «        Š	ˆˆ	fd„}|S )Nr7   )rW  c                ó   — i | ]\  }}||“Œ	S r½   r½   )r¿   Úidxrù  s      rÁ   r`  zKSQLCompiler._inserted_primary_key_from_returning_getter.<locals>.<dictcomp>	  s   € Ð=Ð=Ð=™H˜C ˆs�CÐ=Ð=Ð=rÃ   z'List[Tuple[Callable[[Any], Any], bool]]c                ó’   •— g | ]C}|‰v rt          j        ‰|         ¦  «        d fn t          j        d ‰|¦  «        d¦  «        df‘ŒDS )Tr¬  NF)r?  Ú
itemgetterr@  )r¿   rù  rA  Úrets     €€rÁ   r†  zKSQLCompiler._inserted_primary_key_from_returning_getter.<locals>.<listcomp>	  s|   ø€ ð ð ð ð ð ˜c�z�zõ Ô(¨¨S¬Ñ2Ô2°DÐ9Ð9õ !Ô-Ø!Ð#3Ð#3°CÑ#8Ô#8¸$ñô ð ð	ð	ð ð rÃ   c                ó   — g | ]	}|j         ‘Œ
S r½   r]  rH  s     rÁ   r†  zKSQLCompiler._inserted_primary_key_from_returning_getter.<locals>.<listcomp>	  rI  rÃ   c                ó8   •‡ ‡—  ‰ˆˆ fd„‰D ¦   «         ¦  «        S )Nc              3  óN   •K  — | ]\  }}|r |‰¦  «        n
 |‰¦  «        V — Œ d S r  r½   )r¿   r;  Úuse_rowr'  Úrows      €€rÁ   r1  zWSQLCompiler._inserted_primary_key_from_returning_getter.<locals>.get.<locals>.<genexpr>"	  sV   øè è € ð ð á#�F˜Gð  'Ð>���s‘”�¨F¨F°:Ñ,>Ô,>ðð ð ð ð ð rÃ   r½   )rc  r'  rO  rQ  s   ``€€rÁ   r¬  zDSQLCompiler._inserted_primary_key_from_returning_getter.<locals>.get!	  sD   øøø€ Ø�6ð ð ð ð ð à'.ðñ ô ñ ô ð rÃ   )Útypingr   ÚenginerW  r&   r2  rR  r  r&  r¯  rB   r<  rŽ   r,  r  r   rS  rV  )
r  rW  r&  rŽ   rŠ  r¬  rO  rA  r^  rQ  s
         @@@@rÁ   Ú+_inserted_primary_key_from_returning_getterz7SQLCompiler._inserted_primary_key_from_returning_getterù  s7  øøøø€ õ Ôð 	2Ø'Ð'Ð'Ð'Ð'Ð'Ð'å”^Ô1ˆFàÔ!Ð-Ð-Ð-ØÔ&Ô0ˆ	åð 	1Ý˜i­Ñ0Ô0Ð0Ð0Ð0àÔ=ÐØ”ˆàÔ+ˆ	ØÐ$Ð$Ð$Ø=Ð=­	°)Ñ(<Ô(<Ð=Ñ=Ô=ˆåØ5ðð ð ð ð ð !Ô,ðñ ô ñ
ô 
ˆð" ×$Ò$Ð%KÐ%K¸Ô9JÐ%KÑ%KÔ%KÑLÔLˆð	ð 	ð 	ð 	ð 	ð 	ð ˆ
rÃ   c                ó   — dS )z´Called when a SELECT statement has no froms, and no FROM clause is
        to be appended.

        Gives Oracle a chance to tack on a ``FROM DUAL`` to the string output.

        r–  r½   r4  s    rÁ   Údefault_fromzSQLCompiler.default_from)	  s	   € ð ˆrrÃ   c                óH  —  |j         j        | fi |¤Ž}|j        D �]}|| j        vrŒ| j        |         }|                     |j        |j                 dd¬¦  «        }| j        |         }|x| j        |<   | j        |<   || j        |<   | j                             |d¦  «         || j        v r| xj        |hz  c_        || j	        v r| xj	        |hz  c_	        | j
        }|r@|\  }	}
|j        D ]3}|j        |
v r(|
|j                 }|	|                              |¦  «         Œ4�Œ|S )a’  SQL compile the nested element of an _OverrideBinds with
        bindparams swapped out.

        The _OverrideBinds is not normally expected to be compiled; it
        is meant to be used when an already cached statement is to be used,
        the compilation was already performed, and only the bound params should
        be swapped in at execution time.

        However, there are test cases that exericise this object, and
        additionally the ORM subquery loader is known to feed in expressions
        which include this construct into new queries (discovered in #11173),
        so it has to do the right thing at compile time as well.

        TF)Úmaintain_keyrå  N)rÇ  rÓ  Ú	translater.  Ú_with_valuer0  r/  r|  rD  rC  rF  Ú_cloned_setr¤  )r  Úoverride_bindsrÉ  Úsqltextre  ÚbpÚnew_bprù   rê  r~  r}  Úcbs               rÁ   Úvisit_override_bindsz SQLCompiler.visit_override_binds2	  sk  € ð" <�.Ô(Ô;¸DÐGÐGÀBÐGÐGˆð  Ô)ð "	0ñ "	0ˆAØ˜œ
Ð"Ð"ØØ”˜A”ˆBð —^’^ØÔ(¨¬Ô0Ø!Øð $ñ ô ˆFð ”? 2Ô&ˆDØ/5Ð5ˆDŒJ�q‰M˜DœJ tÑ,Ø&*ˆDŒO˜FÑ#ØŒO×Ò  DÑ)Ô)Ð)à�TÔ-Ð-Ð-ØÐ(Ô(¨V¨HÑ4Ð(Ô(Ø�TÔ0Ð0Ð0ØÐ+Ô+°¨xÑ7Ð+Ô+àÔ3ˆJØð 0Ø'‘
��dØœ.ð 0ð 0�BØ”v �~�~Ø! "¤&œ\˜Ø˜RœŸš¨Ñ/Ô/Ð/øùàˆrÃ   c                ó4   — d |j         j        | fi |¤Žz   dz   S ©Nr  r  ©rÇ  rÓ  )r  ÚgroupingÚasfromrÐ  s       rÁ   Úvisit_groupingzSQLCompiler.visit_groupingr	  ó+   € ØÐ8�XÔ%Ô8¸ÐHÐHÀÐHÐHÑHÈ3ÑNÐNrÃ   c                ó4   — d |j         j        | fi |¤Žz   dz   S ru  rv  )r  rw  rÐ  s      rÁ   Úvisit_select_statement_groupingz+SQLCompiler.visit_select_statement_groupingu	  rz  rÃ   c                ó–  — | j         r®| j        j        r¢	 t          d| j         d         d         ¦  «        }n'# t          $ r}t          j        d¦  «        |‚d }~ww xY w|j        \  }}}|r|}	n|}	|j        j	        }
|
�8|
j
        |	v r/|
                     |	|
j
                 ¦  «        r|j        j	        |d<    | j        |j        fd|i|¤ŽS )Nú'Union[SelectState, CompoundSelectState]rŒ  r  úECan't resolve label reference for ORDER BY / GROUP BY / DISTINCT etc.Úrender_label_as_labelÚwithin_columns_clause)r†  r¦  Úsupports_simple_order_by_labelr   ÚKeyErrorr8   rã  Ú_label_resolve_dictrÇ  Ú_order_by_label_elementrù   Úshares_lineager±  )r  rÇ  r�  rÐ  r  ÚkeÚ	with_colsÚ
only_fromsÚ	only_colsÚresolve_dictÚorder_by_elems              rÁ   Úvisit_label_referencez!SQLCompiler.visit_label_referencex	  s9  € ð Œ:ð %	˜$œ,ÔEð %	ð	Ý $Ø=Ø”J˜r”N ?Ô3ñ!ô !��øõ ð ð ð ÝÔ&ð/ñô ð ðøøøøðøøøð Ô1ñ	ØØØà$ð )Ø)��à(�ð $œOÔCˆMð Ð)Ø!Ô&¨,Ð6Ð6Ø!×0Ò0Ø  Ô!3Ô4ñô ð 7ð ”OÔ;ð Ð.Ñ/ð ˆtŒ|ØŒOð
ð 
à"7ð
ð ð
ð 
ð 	
s   •!7 ·
AÁAÁAc                ó   — | j         s|                      |j        ¦  «        S 	 t          d| j         d         d         ¦  «        }n># t          $ r1}t          j        |j        dt          j	        |¬¦  «         Y d }~nd }~ww xY w|j
        \  }}}	 |r||j                 }	n||j                 }	|	|d<    | j        |	fd|i|¤ŽS # t          $ r2}
t          j        |j        dt          j	        |
¬¦  «         Y d }
~
d S d }
~
ww xY w)Nr~  rŒ  r  r  )ÚextraÚexc_clsrÈ  r€  r�  )r†  r±  Ú_text_clauser   rƒ  r   Ú_no_text_coercionrÇ  r8   rã  r„  )r  rÇ  r�  rÐ  r  r‡  rˆ  r‰  rŠ  rù  rÈ  s              rÁ   Úvisit_textual_label_referencez)SQLCompiler.visit_textual_label_reference§	  s”  € ð Œzð 	6à—<’< Ô 4Ñ5Ô5Ð5ð	Ý Ø9Ø”
˜2”˜Ô/ñô ˆMˆMøõ ð 		ð 		ð 		ÝÔ'Ø”ð/õ Ô(Øðñ ô ð ð ð ð ð ð øøøøð		øøøð ,9Ô+LÑ(ˆ	�:˜yð	Ø$ð 1Ø  ¤Ô1��à ¤Ô0�ð /2ˆFÐ*Ñ+Ø�4”<Øðð Ø+@ðØDJðð ð øõ ð 		ð 		ð 		ÝÔ'Ø”ð/õ Ô(Øðñ ô ð ð ð ð ð ð ð øøøøð		øøøs/   £!A Á
B Á'A;Á;B ÂC Ã
C=Ã'C8Ã8C=c                óê  — |o| }||u }	|	s|rBt          |j        t          j        ¦  «        r|                      d|j        ¦  «        }
n|j        }
|rq|�% ||
|j        ||
f|j        z   |z   |j        ¦  «          |j        j        | fdddœ|¤Žt          t          j                 z   | j                             ||
¦  «        z   S |	r| j                             ||
¦  «        S  |j        j        | fddi|¤ŽS )NÚcolidentT)r�  Úwithin_label_clauser�  F)r¯  rù   r   rE   Ú_truncated_identifierr÷  rý   rÇ  rÓ  Ú	OPERATORSr!   Úas_rŸ  Úformat_label)r  rõ  Úadd_to_result_mapr–  r�  r€  Úresult_map_targetsrÉ  Úrender_label_with_asÚrender_label_onlyÚ	labelnames              rÁ   Úvisit_labelzSQLCompiler.visit_labelÔ	  sg  € ð "Ð=Ð*=Ð&=ð 	ð 2°UÐ:Ðàð 	'Ð 4ð 	'Ý˜%œ*¥hÔ&?Ñ@Ô@ð 'Ø ×6Ò6°zÀ5Ä:ÑNÔN�	�	à!œJ�	àð 	Ø Ð,Ø!Ð!ØØ”JØ˜IÐ&¨Ô)9Ñ9Ð<NÑNØ”Jñ	ô ð ð 1�”Ô0Øðà*.Ø(,ðð ð ð	ð õ �IœMÔ*ñ+ð ”-×,Ò,¨U°IÑ>Ô>ñ?ð	ð ð 	Ø”=×-Ò-¨e°YÑ?Ô?Ð?à3�5”=Ô3Øðð Ø,1ðØ57ðð ð rÃ   c                ó*   — t          j        d¦  «        ‚)Nz:Cannot compile Column object until its 'name' is assigned.©r8   rã  ©r  r“   s     rÁ   Ú_fallback_column_namez!SQLCompiler._fallback_column_name
  s   € ÝÔØHñ
ô 
ð 	
rÃ   c                ó,   — |j         } | j        |fi |¤ŽS r  )Ú	_resolvedr±  )r  rÇ  rÉ  Úsql_elements       rÁ   Úvisit_lambda_elementz SQLCompiler.visit_lambda_element

  s$   € ØÔ'ˆØˆtŒ|˜KÐ.Ð.¨2Ð.Ð.Ð.rÃ   r“   úColumnClause[Any]r›  úOptional[_ResultMapAppender]Úinclude_tablerœ  rú   Úambiguous_table_name_mapú Optional[_AmbiguousTableNameMap]c                ó0  — |j         x}}|€|                      |¦  «        }|j        }	|	s0t          |t          j        ¦  «        r|                      d|¦  «        }|�2|||j        f|z   }
|j        r|
|j        fz  }
 ||||
|j	        ¦  «         |	r|  
                    |¦  «        }n| j                             |¦  «        }|j        }|�	|r|j        s|S | j                             |¦  «        }|r| j                             |¦  «        dz   }nd}t"          rt          |t$          ¦  «        sJ ‚|j         }|s|r||v r||         }t          |t          j        ¦  «        r|                      d|¦  «        }|| j                             |¦  «        z   dz   |z   S )Nr•  r  r–  Úalias)rù   r¤  Ú
is_literalr¯  r   rE   r—  r0  Ú	_tq_labelrý   Úescape_literal_columnrŸ  ÚquoterŽ   Únamed_with_columnÚschema_for_objectÚquote_schemar   rP   )r  r“   r›  r«  rœ  r¬  rÐ  rù   Ú	orig_namer°  ÚtargetsrŽ   Úeffective_schemaÚschema_prefixÚ	tablenames                  rÁ   Úvisit_columnzSQLCompiler.visit_column
  sç  € ð "œ;Ð&ˆˆyØˆ<Ø×-Ò-¨fÑ5Ô5ˆDàÔ&ˆ
Øð 	@�j¨­xÔ/HÑIÔIð 	@Ø×-Ò-¨j¸$Ñ?Ô?ˆDàÐ(Ø˜t V¤ZÐ0Ð3EÑEˆGØÔð /Ø˜FÔ,Ð.Ñ.�àÐ˜d I¨w¸¼ÑDÔDÐDàð 	-ð ×-Ò-¨dÑ3Ô3ˆDˆDà”=×&Ò& tÑ,Ô,ˆDØ”ˆØˆ= ˆ=°UÔ5Lˆ=ØˆKà#œ}×>Ò>¸uÑEÔEÐàð #à”M×.Ò.Ð/?Ñ@Ô@À3ÑFð �ð !#�åð :Ý! %­Ñ9Ô9Ð9Ð9Ð9Øœ
ˆIð %ð@à,ð@ð Ð!9Ð9Ð9à4°YÔ?�	å˜)¥XÔ%>Ñ?Ô?ð KØ ×6Ò6°wÀ	ÑJÔJ�	à  4¤=×#6Ò#6°yÑ#AÔ#AÑAÀCÑGÈ$ÑNÐNrÃ   c                ó@   — | j                              |j        ¦  «        S r  )rŸ  Úformat_collationÚ	collation©r  rÇ  rÉ  s      rÁ   Úvisit_collationzSQLCompiler.visit_collationI
  s   € ØŒ}×-Ò-¨gÔ.?Ñ@Ô@Ð@rÃ   c                ó   — |j         S r  ©rù   )r  Ú
fromclauserÐ  s      rÁ   Úvisit_fromclausezSQLCompiler.visit_fromclauseL
  s
   € ØŒÐrÃ   c                ó   — |j         S r  rÃ  )r  rx  rÐ  s      rÁ   Úvisit_indexzSQLCompiler.visit_indexO
  s
   € ØŒzÐrÃ   c                óZ   — ||d<   | j         |d<    | j        j        j        |j        fi |¤ŽS )NÚtype_expressionr«  )rŸ  r¦  Útype_compiler_instancer±  rý   )r  Ú
typeclauserÉ  s      rÁ   Úvisit_typeclausezSQLCompiler.visit_typeclauseR
  sH   € Ø *ˆÐÑØ$(¤MˆÐ Ñ!Ø:ˆtŒ|Ô2Ô:ØŒOð
ð 
Ø!ð
ð 
ð 	
rÃ   c                óJ   — | j         j        r|                     dd¦  «        }|S ©Nr  ú%%©rŸ  Ú_double_percentsÚreplace©r  Útexts     rÁ   Úpost_process_textzSQLCompiler.post_process_textY
  ó'   € ØŒ=Ô)ð 	+Ø—<’<  TÑ*Ô*ˆDØˆrÃ   c                óJ   — | j         j        r|                     dd¦  «        }|S rÎ  rÐ  rÓ  s     rÁ   r²  z!SQLCompiler.escape_literal_column^
  rÖ  rÃ   c           	     ó  ‡ ‡‡— ˆˆ ˆfd„}‰ j         sd‰ _        |r |d d ‰ft          j        ¦  «         t                               d„ t                               |‰                      ‰j        ¦  «        ¦  «        ¦  «        S )Nc                óŽ   •— |                       d¦  «        }|‰j        v r ‰j        ‰j        |         fi ‰¤ŽS  ‰j        |fi ‰¤ŽS r¹  )r‡   Ú_bindparamsr±  Úbindparam_string)r¡  rù   rÉ  r  Ú
textclauses     €€€rÁ   Údo_bindparamz2SQLCompiler.visit_textclause.<locals>.do_bindparamd
  s]   ø€ Ø—7’7˜1‘:”:ˆDØ�zÔ-Ð-Ð-Ø#�t”| JÔ$:¸4Ô$@ÐGÐGÀBÐGÐGÐGà,�tÔ,¨TÐ8Ð8°RÐ8Ð8Ð8rÃ   Tc                ó,   — |                       d¦  «        S r¹  rº  )r¡  s    rÁ   r½  z.SQLCompiler.visit_textclause.<locals>.<lambda>v
  s   € �a—g’g˜a‘j”j€ rÃ   )	r†  r-  r%   ÚNULLTYPEÚBIND_PARAMS_ESCr¯  ÚBIND_PARAMSrÕ  rÔ  )r  rÜ  r›  rÉ  rÝ  s   `` ` rÁ   Úvisit_textclausezSQLCompiler.visit_textclausec
  s©   øøø€ ð	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð Œzð 	$Ø#ˆDÔàð 	Lð Ð˜d D¨:¨-½Ô9JÑKÔKÐKõ ×"Ò"Ø Ð Ý�OŠOØ˜d×4Ò4°Z´_ÑEÔEñô ñ
ô 
ð 	
rÃ   c                óØ  — | j          }|r| j        n| j         d         }t          ¦   «         t          ¦   «         |dœ}| j                              |¦  «         |j        r|                      ||¦  «         |p1|dk    o|                     dd¦  «        p|                     dd¦  «        }|r[|j        x| _        | _	        |j         ot          |j        ¦  «        | _        |j        D ]}	|                      |	d| j        ¬¦  «         Œ  | j        |j        fi |¤Ž}
| j        r1|st#          | j         ¦  «        nd }|                      |¬	¦  «        |
z   }
| j                              d¦  «         |
S )
NrŒ  ©r  r  r$   r   r  Fr  T)r�  r›  ©Únesting_level)r†  Ú_default_stack_entryrp   r¤  Ú_independent_ctesÚ_dispatch_independent_ctesr¬  rc  r8  r6  r  Úcolumn_argsr9  r±  Ú_add_to_result_maprÇ  rJ  r²  Ú_render_cte_clauser|  )r  ÚtafÚcompound_indexrx  rÉ  Útoplevelr�  Ú	new_entryÚpopulate_result_mapr…  rÔ  ræ  s               rÁ   Úvisit_textual_selectz SQLCompiler.visit_textual_select|
  s»  € ð ”z�>ˆØ-5ÐI�Ô)Ð)¸4¼:Àb¼>ˆõ  #™uœuÝ™EœEØð*
ð *
ˆ	ð
 	Œ
×Ò˜)Ñ$Ô$Ð$àÔ ð 	5Ø×+Ò+¨C°Ñ4Ô4Ð4ð ð >à !Ò#ð EØ—I’IÐ<¸eÑDÔDð>ð
 �yŠyÐ5°uÑ=Ô=ð 	ð ð 	à”ðˆDÔ! DÔ$Að 47´>Ð/Að 0ÅdØ”ñGô GˆDÔ,ð ”_ð ð �Ø—’ØØ*.Ø&*Ô&=ð ñ ô ð ð ð ˆtŒ|˜CœKÐ.Ð.¨2Ð.Ð.ˆØŒ9ð 	OØ3;ÐE�C ¤
™OœO˜OÀˆMØ×*Ò*¸Ð*ÑGÔGÈ$ÑNˆDàŒ
�Š�rÑÔÐàˆrÃ   c                ó   — dS ©NÚNULLr½   ©r  r  rÉ  s      rÁ   Ú
visit_nullzSQLCompiler.visit_null°
  ó   € ØˆvrÃ   c                ó"   — | j         j        rdS dS )Nr   Ú1©r¦  Úsupports_native_booleanrö  s      rÁ   Ú
visit_truezSQLCompiler.visit_true³
  s   € ØŒ<Ô/ð 	Ø�6à�3rÃ   c                ó"   — | j         j        rdS dS )Nr…   Ú0rû  rö  s      rÁ   Úvisit_falsezSQLCompiler.visit_false¹
  s   € ØŒ<Ô/ð 	Ø�7à�3rÃ   c                ó^   ‡ ‡— |                      d„ ˆˆ fd„|D ¦   «         D ¦   «         ¦  «        S )Nc              3  ó   K  — | ]}|¯|V — Œ	d S r  r½   ©r¿   Úss     rÁ   r1  z7SQLCompiler._generate_delimited_list.<locals>.<genexpr>À
  s<   è è € ð 
ð 
àØð
Øð
ð 
ð 
ð 
ð 
ð 
rÃ   c              3  ó4   •K  — | ]} |j         ‰fi ‰¤ŽV — Œd S r  rÒ  ©r¿   r…  rÉ  r  s     €€rÁ   r1  z7SQLCompiler._generate_delimited_list.<locals>.<genexpr>Â
  s9   øè è € ÐIÐI¸1Ð*�aÔ*¨4Ð6Ð6°2Ð6Ð6ÐIÐIÐIÐIÐIÐIrÃ   ©rx   )r  r   Ú	separatorrÉ  s   `  `rÁ   Ú_generate_delimited_listz$SQLCompiler._generate_delimited_list¿
  sM   øø€ Ø�~Š~ð 
ð 
àIÐIÐIÐIÐIÀÐIÑIÔIð
ñ 
ô 
ñ 
ô 
ð 	
rÃ   c                óZ  ‡ ‡— t           j                             t          j        t           j        j        t           j        j        |¦  «        \  }}|dk    r |d         j        ‰ fi ‰¤ŽS t          t          j                 }| 
                    d„ ˆˆ fd„|D ¦   «         D ¦   «         ¦  «        S )Nr   r   c              3  ó   K  — | ]}|¯|V — Œ	d S r  r½   r  s     rÁ   r1  z;SQLCompiler._generate_delimited_and_list.<locals>.<genexpr>Ñ
  s<   è è € ð "ð "àØð"Øð"ð "ð "ð "ð "ð "rÃ   c              3  ó4   •K  — | ]} |j         ‰fi ‰¤ŽV — Œd S r  rÒ  r  s     €€rÁ   r1  z;SQLCompiler._generate_delimited_and_list.<locals>.<genexpr>Ó
  s9   øè è € ÐLÐL¸qÐ.˜!Ô.¨tÐ:Ð:°rÐ:Ð:ÐLÐLÐLÐLÐLÐLrÃ   )r   ÚBooleanClauseListÚ_process_clauses_for_booleanr!   Úand_ÚTrue_Ú
_singletonÚFalse_rÓ  r˜  rx   )r  ÚclausesrÉ  Úlccr  s   ` `  rÁ   Ú_generate_delimited_and_listz(SQLCompiler._generate_delimited_and_listÆ
  s·   øø€ ÝÔ1×NÒNÝŒNÝŒNÔ%ÝŒOÔ&Øñ	
ô 
‰ˆˆWð �!Š8ˆ8Ø0�7˜1”:Ô0°Ð<Ð<¸Ð<Ð<Ð<å!¥)¤.Ô1ˆIØ—>’>ð "ð "àLÐLÐLÐLÐLÀGÐLÑLÔLð"ñ "ô "ñ ô ð rÃ   c                ó$   — d | j         |fi |¤Žz  S ©Nú(%s))Úvisit_clauselist)r  Ú
clauselistrÉ  s      rÁ   Úvisit_tuplezSQLCompiler.visit_tuple×
  s#   € ØÐ-˜Ô-¨jÐ?Ð?¸BÐ?Ð?Ñ?Ð?rÃ   c                óf   — |j         }|€d}nt          |j                  } | j        |j        |fi |¤ŽS ©Nr!  )r?  r˜  r	  r  )r  r  rÉ  Úseps       rÁ   r  zSQLCompiler.visit_clauselistÚ
  sC   € ØÔ!ˆØˆ;ØˆCˆCå˜JÔ/Ô0ˆCà,ˆtÔ,¨ZÔ-?ÀÐKÐKÈÐKÐKÐKrÃ   c                óô   — |j         }|                      |dd ¦  «        }|r
 |||fi |¤ŽS 	 t          |         }d|d<    | j        |j        |fi |¤ŽS # t
          $ r}t          j        | |¦  «        |‚d }~ww xY w)NÚexpression_clauselistTÚ_in_operator_expression)r?  Ú_get_operator_dispatchr˜  r	  r  rƒ  r8   rÅ  )r  r  rÉ  Ú	operator_ÚdispÚopstringrÈ  s          rÁ   Úvisit_expression_clauselistz'SQLCompiler.visit_expression_clauselistã
  sÍ   € ØÔ'ˆ	à×*Ò*ØÐ.°ñ
ô 
ˆð ð 	5Ø�4˜
 IÐ4Ð4°Ð4Ð4Ð4ð	Ý  Ô+ˆHð -1ˆBÐ(Ñ)Ø0�4Ô0ØÔ" Hðð Ø02ðð ð øõ	 ð 	Lð 	Lð 	LÝÔ1°$¸	ÑBÔBÈÐKøøøøð	Løøøs   ¬A Á
A7ÁA2Á2A7c                ó  — d}|j         �| |j         j        | fi |¤Ždz   z  }|j        D ].\  }}|d |j        | fi |¤Žz   dz    |j        | fi |¤Žz   dz   z  }Œ/|j        �|d |j        j        | fi |¤Žz   dz   z  }|dz  }|S )NzCASE r!  zWHEN z THEN zELSE ÚEND)rÌ  rÓ  ÚwhensÚelse_)r  ÚclauserÐ  rÀ   ÚcondrW  s         rÁ   Ú
visit_casezSQLCompiler.visit_caseö
  sñ   € ØˆØŒ<Ð#ØÐ0�”Ô0°Ð@Ð@¸Ð@Ð@À3ÑFÑFˆAØ"œLð 	ð 	‰LˆD�&ØØØ)�$Ô)¨$Ð9Ð9°&Ð9Ð9ñ:àñð ,�&Ô+¨DÐ;Ð;°FÐ;Ð;ñ<ð ñ	ñˆAˆAð Œ<Ð#ØØÐ9˜&œ,Ô9¸$ÐIÐIÀ&ÐIÐIÑIÈCÑOñˆAð 	
ˆU‰
ˆØˆrÃ   c                ó(   —  |j         j        | fi |¤ŽS r  )Útyped_expressionrÓ  )r  Útype_coercerÉ  s      rÁ   Úvisit_type_coercezSQLCompiler.visit_type_coerce	  s    € Ø>ˆ{Ô+Ô>¸tÐJÐJÀrÐJÐJÐJrÃ   c                óæ   —  |j         j        | fi |¤Ž}t          j        d|¦  «        }d |j        j        | fi |¤Ž›d|r|                     d¦  «        n|›d|r|                     d¦  «        nd›�S )Nz(.*)( COLLATE .*)zCAST(rÒ   r   r  r7   r–  )rË  rÓ  rR  Úmatchr+  r‡   )r  r   rÐ  Útype_clauser3  s        rÁ   Ú
visit_castzSQLCompiler.visit_cast  s‘   € Ø8�d”oÔ8¸ÐHÐHÀÐHÐHˆÝ”Ð,¨kÑ:Ô:ˆˆà*ˆDŒKÔ*¨4Ð:Ð:°6Ð:Ð:Ð:Ð:Ø#Ð4ˆE�KŠK˜‰NŒNˆN¨Ð4Ð4Ø#Ð+ˆE�KŠK˜‰NŒNˆN¨Ð+ð
ð 	
rÃ   c           
     ód  — |d         t           j        u rdn€|d         t           j        u rdnj|d         dk     r6 | j        t          j        t          |d         ¦  «        ¦  «        fi |¤Ž›d�n( | j        t          j        |d         ¦  «        fi |¤Ž›d�›d|d         t           j        u rdn€|d         t           j        u rdnj|d         dk     r6 | j        t          j        t          |d         ¦  «        ¦  «        fi |¤Ž›d�n( | j        t          j        |d         ¦  «        fi |¤Ž›d�›�S )	Nr   zUNBOUNDED PRECEDINGzCURRENT ROWz
 PRECEDINGz
 FOLLOWINGrÍ   r   zUNBOUNDED FOLLOWING)r   ÚRANGE_UNBOUNDEDÚRANGE_CURRENTr±  ÚliteralÚabs)r  Úrange_rÉ  s      rÁ   Ú_format_frame_clausez SQLCompiler._format_frame_clause  s§  € ð ˜!”9¥Ô 8Ð8Ð8ð &Ð%ð ˜a”y¥HÔ$:Ð:Ð:ð "�Mð " !œ9 qš=˜=ð	 )˜DœLÝ (Ô 0µ°V¸A´Y±´Ñ @Ô @ðð ØDFðð ð ð ðð ð (˜4œ<­Ô(8¸À¼Ñ(CÔ(CÐJÐJÀrÐJÐJÐJÐJðMðð ð( ˜!”9¥Ô 8Ð8Ð8ð &Ð%ð ˜a”y¥HÔ$:Ð:Ð:ð "�Mð " !œ9 qš=˜=ð	 )˜DœLÝ (Ô 0µ°V¸A´Y±´Ñ @Ô @ðð ØDFðð ð ð ðð ð (˜4œ<­Ô(8¸À¼Ñ(CÔ(CÐJÐJÀrÐJÐJÐJÐJðMðð+'
ð '	
rÃ   c                ó(  ‡ ‡—  |j         j        ‰ fi ‰¤Ž}|j        rd ‰ j        |j        fi ‰¤Žz  }n |j        rd ‰ j        |j        fi ‰¤Žz  }nd }|›dd                     ˆˆ fd„d|j        fd|j        ffD ¦   «         |r|gng z   ¦  «        ›d�S )	NzRANGE BETWEEN %szROWS BETWEEN %sz OVER (r!  c           	     ó^   •— g | ])\  }}|®t          |¦  «        ¯|›d |j        ‰fi ‰¤Ž›�‘Œ*S )Nz BY )r²  rÓ  )r¿   Úwordr+  rÐ  r  s      €€rÁ   r†  z*SQLCompiler.visit_over.<locals>.<listcomp>O  sc   ø€ ð ð ð ñ %˜˜fð Ð)­c°&©k¬kÐ)ð �t�tÐ6˜VÔ6°tÐFÐF¸vÐFÐFÐFðHð *Ð)Ð)rÃ   Ú	PARTITIONÚORDERr  )rÇ  rÓ  r;  r<  Úrowsrx   Úpartition_byÚorder_by)r  ÚoverrÐ  rÔ  r;  s   ` `  rÁ   Ú
visit_overzSQLCompiler.visit_over?  s$  øø€ Ø.ˆtŒ|Ô.¨tÐ>Ð>°vÐ>Ð>ˆØŒ;ð 		Ø'Ð*C¨$Ô*CØ”ð+ð +Ø%ð+ð +ñ ˆFˆFð ŒYð 	Ø&Ð)B¨Ô)BØ”	ð*ð *Ø#ð*ð *ñ ˆFˆFð ˆFð ˆDˆDØ�HŠHðð ð ð ð ð % dÔ&7Ð8Ø  $¤-Ð0ð)ðñ ô ð  &Ð-�F�8�8¨2ñ	/ñô ð ð ð
ð 	
rÃ   c                óV   —  |j         j        | fi |¤Ž›d |j        j        | fi |¤Ž›d�S )Nz WITHIN GROUP (ORDER BY r  )rÇ  rÓ  rD  )r  ÚwithingrouprÐ  s      rÁ   Úvisit_withingroupzSQLCompiler.visit_withingroup\  sN   € à2ˆKÔÔ2°4ÐBÐB¸6ÐBÐBÐBÐBØ3ˆKÔ Ô3°DÐCÐC¸FÐCÐCÐCÐCð
ð 	
rÃ   c                óV   —  |j         j        | fi |¤Ž›d |j        j        | fi |¤Ž›d�S )Nz FILTER (WHERE r  )ÚfuncrÓ  Ú	criterion)r  Ú
funcfilterrÐ  s      rÁ   Úvisit_funcfilterzSQLCompiler.visit_funcfilterb  sM   € à.ˆJŒOÔ.¨tÐ>Ð>°vÐ>Ð>Ð>Ð>Ø3ˆJÔ Ô3°DÐCÐC¸FÐCÐCÐCÐCð
ð 	
rÃ   c                ó€   — | j                              |j        |j        ¦  «        }d|›d |j        j        | fi |¤Ž›d�S )NzEXTRACT(rÑ   r  )Úextract_mapr¬  Úfieldr  rÓ  )r  ÚextractrÐ  rQ  s       rÁ   Úvisit_extractzSQLCompiler.visit_extracth  sQ   € ØÔ ×$Ò$ W¤]°G´MÑBÔBˆˆàˆEˆEØ+ˆGŒLÔ+¨DÐ;Ð;°FÐ;Ð;Ð;Ð;ð
ð 	
rÃ   c                óT   —  | j         |j        fi |¤Ž} | j        |fi |¤Ž}d|›d|›�S )Nr  z).)Úvisit_functionÚfnr¼  )r  rÇ  rÉ  Úcompiled_fnÚcompiled_cols        rÁ   Úvisit_scalar_function_columnz(SQLCompiler.visit_scalar_function_columno  sK   € Ø)�dÔ)¨'¬*Ð;Ð;¸Ð;Ð;ˆØ(�tÔ(¨Ð7Ð7°BÐ7Ð7ˆˆØ'˜K˜K¨¨Ð6Ð6rÃ   rK  úFunction[Any]c                óŒ  ‡ ‡— |�# ||j         |j         |j         f|j        ¦  «         t          ‰ d|j                              ¦   «         z  d ¦  «        }|r
 ||fi |¤Ž}nÙt                               |                     ¦   «         j        d ¦  «        Š‰r|j        r‰dz  Šn\|j         Š‰ j	         
                    ‰¦  «        st          ‰t          j        ¦  «        r‰ j	                             ‰¦  «        n‰Š‰dz   Šd                     ˆˆ fd„|j        D ¦   «         ‰gz   ¦  «        d ‰ j        |fi |¤Žiz  }|j        r|dz  }|S )Nzvisit_%s_funcz%(expr)sr  c                ó°   •— g | ]R}‰j                              |¦  «        st          ‰t          j        ¦  «        r‰j                              |¦  «        n|‘ŒSS r½   )rŸ  Ú_requires_quotes_illegal_charsr¯  r   r1   r³  )r¿   r  rù   r  s     €€rÁ   r†  z.SQLCompiler.visit_function.<locals>.<listcomp>’  so   ø€ ð ð ð ð ð	  œ=×GÒGÈÑLÔLð!å% d­HÔ,@ÑAÔAð!˜œ×+Ò+¨CÑ0Ô0Ð0ð !ðð ð rÃ   r  z WITH ORDINALITY)rù   rý   ÚgetattrÚlowerrã   r¬  Ú_deannotaterº  Ú	_has_argsrŸ  r]  r¯  r   r1   r³  rx   ÚpackagenamesÚfunction_argspecÚ_with_ordinality)r  rK  r›  rÐ  r$  rÔ  rù   s   `     @rÁ   rU  zSQLCompiler.visit_functiont  s¥  øø€ ð Ð(ØÐ˜dœi¨¬°T´Y°LÀ$Ä)ÑLÔLÐLå�t˜_¨t¬y¯ªÑ/@Ô/@Ñ@À$ÑGÔGˆð ð 	@Ø�4˜Ð'Ð' Ð'Ð'ˆDˆDå—=’= ×!1Ò!1Ñ!3Ô!3Ô!=¸tÑDÔDˆDØð )Ø”>ð 'Ø˜JÑ&�Døà”y�ð ”}×CÒCÀDÑIÔIðå! $­Ô(<Ñ=Ô=ð�D”M×'Ò'¨Ñ-Ô-Ð-ð ð	 ð ˜jÑ(�Ø—8’8ðð ð ð ð ð  $Ô0ðñ ô ð �&ñ	ñô ð Ð.˜Ô.¨tÐ>Ð>°vÐ>Ð>Ð?ñ@ˆDð Ô ð 	'ØÐ&Ñ&ˆDØˆrÃ   c                ó6   — |                       |j        ¦  «        S r  )Úvisit_sequenceÚsequence)r  Ú
next_valuerÉ  s      rÁ   Úvisit_next_value_funcz!SQLCompiler.visit_next_value_func¢  s   € Ø×"Ò" :Ô#6Ñ7Ô7Ð7rÃ   c                ó:   — t          d| j        j        z  ¦  «        ‚)Nz2Dialect '%s' does not support sequence increments.©rÍ  r¦  rù   ©r  rg  rÉ  s      rÁ   rf  zSQLCompiler.visit_sequence¥  s$   € Ý!Ø@ØŒlÔñ ñ
ô 
ð 	
rÃ   c                ó(   —  |j         j        | fi |¤ŽS r  )Úclause_exprrÓ  )r  rK  rÐ  s      rÁ   rc  zSQLCompiler.function_argspec«  s    € Ø2ˆtÔÔ2°4ÐBÐB¸6ÐBÐBÐBrÃ   c           
     óH  ‡ ‡‡— ‰ j          } |j        |‰ fi ‰¤Ž}|r‰ j        s|‰ _        |j        }|r‰ j        n‰ j         d         }|p| o|                     dd¦  «        }	|dk    r||d<   ‰ j                              |d         |d         |||	dœ¦  «         |j        r‰                      |‰¦  «         ‰ j	        |j
                 }
d	|
z   d	z                        ˆˆˆ fd
„t          |j        ¦  «        D ¦   «         ¦  «        }d‰d<   | ‰ j        |fi t          dd‰i‰¤Ž¤Žz  }| ‰ j        |fi ‰¤Žz  }|j        r| ‰ j        |fi ‰¤Žz  }‰ j        r2|st)          ‰ j         ¦  «        nd }‰                      |d¬¦  «        |z   }‰ j                              d¦  «         |S )NrŒ  r  Fr   r   r  r  )r  r  r$   r  r  r!  c              3  ó@   •K  — | ]\  }} |j         ‰f‰|d œ‰¤ŽV — ŒdS ))rx  rî  NrÒ  )r¿   r  r…  rx  rÐ  r  s      €€€rÁ   r1  z4SQLCompiler.visit_compound_select.<locals>.<genexpr>Ô  sf   øè è € ð ð ñ �A�qð %�Ô$ØðØ!'¸ðð Ø=Cðð ðð ð ð ð ð rÃ   r«  rx  T©ræ  Úinclude_following_stackr½   )r†  Ú_compile_state_factoryr  r&  rç  r¬  r¤  rè  ré  Úcompound_keywordsÚkeywordrx   r  ÚselectsÚgroup_by_clauserâ  Úorder_by_clauseÚ_has_row_limiting_clauseÚ_row_limit_clauserJ  r²  rì  r|  )r  Úcsrx  rî  rÐ  rï  r  Úcompound_stmtr�  Úneed_result_mapru  rÔ  ræ  s   ` ` `        rÁ   Úvisit_compound_selectz!SQLCompiler.visit_compound_select®  se  øøø€ ð ”z�>ˆà1˜Ô1°"°dÐEÐE¸fÐEÐEˆàð 	/˜DÔ.ð 	/Ø!.ˆDÔà%Ô/ˆà-5ÐI�Ô)Ð)¸4¼:Àb¼>ˆØ"ð 
ØÐð AØ—	’	Ð8¸%Ñ@Ô@ð 	ð ˜QÒÐØ "ˆE�*ÑàŒ
×Òà#(Ð):Ô#;Ø % nÔ 5Ø Ø!.Ø0?ðð ñ	
ô 	
ð 	
ð Ô*ð 	CØ×+Ò+¨M¸6ÑBÔBÐBàÔ(¨¬Ô4ˆà�g‘ Ñ#×)Ò)ðð ð ð ð ð õ & b¤jÑ1Ô1ð	ñ ô ñ
ô 
ˆð #(ˆˆÑØÐ$�Ô$ RÐIÐI­4Ð+HÐ+H°vÐ+HÀÐ+HÐ+HÐIÐIÑIˆØÐ$�Ô$ RÐ2Ð2¨6Ð2Ð2Ñ2ˆØÔ&ð 	9ØÐ*�DÔ*¨2Ð8Ð8°Ð8Ð8Ñ8ˆDàŒ9ð 	Ø3;ÐE�C ¤
™OœO˜OÀˆMà×'Ò'Ø"/Ø,0ð (ñ ô ð ñ	ð ð 	Œ
�Š�rÑÔÐØˆrÃ   c                óH   — |j         � | j        |fi |¤ŽS  | j        |fi |¤ŽS r  )Ú_fetch_clauseÚfetch_clauseÚlimit_clause)r  r{  rÐ  s      rÁ   rz  zSQLCompiler._row_limit_clauseï  sA   € ØÔÐ'Ø$�4Ô$ RÐ2Ð2¨6Ð2Ð2Ð2à$�4Ô$ RÐ2Ð2¨6Ð2Ð2Ð2rÃ   c                óP   — d|j         ›d|›|rd|z   nd›�}t          | |d ¦  «        S )NÚvisit_r  r–  )rÿ   r^  )r  r#  Ú
qualifier1Ú
qualifier2Úattrnames        rÁ   r"  z"SQLCompiler._get_operator_dispatchõ  sE   € € àÔÐÐØˆJØ *Ð2ˆC�*ÑÐ°Ð2ð
ˆõ
 �t˜X tÑ,Ô,Ð,rÃ   c                óÐ  — |�||fz  }||d<   ||d<   |j         rg|j        rt          j        d¦  «        ‚|                      |j         dd¦  «        }|r |||j         fi |¤ŽS  | j        |t          |j                  fi |¤ŽS |j        rL|                      |j        dd¦  «        }|r |||j        fi |¤ŽS  | j        |t          |j                 fi |¤ŽS t          j        d¦  «        ‚)Nr›  rœ  zFUnary expression does not support operator and modifier simultaneouslyÚunaryr?  Úmodifierz,Unary expression has no operator or modifier)r?  rŠ  r8   rã  r"  Ú _generate_generic_unary_operatorr˜  Ú _generate_generic_unary_modifier)r  r‰  r›  rœ  rÉ  r$  s         rÁ   Úvisit_unaryzSQLCompiler.visit_unaryý  sk  € ð Ð(Ø 5 (Ñ*ÐØ&7ˆBÐ"Ñ#Ø'9ˆBÐ#Ñ$àŒ>ð 	ØŒ~ð ÝÔ&ð2ñô ð ð ×.Ò.Ø” ¨ñô ˆDð ð Ø�t˜E 5¤>Ð8Ð8°RÐ8Ð8Ð8à<�tÔ<Ø�9 U¤^Ô4ðð Ø8:ðð ð ð Œ^ð 	Ø×.Ò.Ø” ¨ñô ˆDð ð Ø�t˜E 5¤>Ð8Ð8°RÐ8Ð8Ð8à<�tÔ<Ø�9 U¤^Ô4ðð Ø8:ðð ð õ Ô"Ø>ñô ð rÃ   c                ó\  — | j         j        rw | j        |j        fi |¤Ždz    | j        t	          j        |j        |j        j        j        t          j
        u r|j        j        nt          j
        ¦   «         ¦  «        fi |¤Žz   S  | j        |j        fi |¤Ždz    | j        |j        fi |¤Žz   S )Nú / )r¦  Údiv_is_floordivr±  ry   r   ÚCastr�   rý   Ú_type_affinityr%   ÚNumeric©r  r’   r?  rÉ  s       rÁ   Úvisit_truediv_binaryz SQLCompiler.visit_truediv_binary#  sî   € ØŒ<Ô'ð 	à�”˜Vœ[Ð/Ð/¨BÐ/Ð/Øñð �$”,Ý”MØœð  &œ|Ô0Ô?Ý'Ô/ð 0ð  0ð #œLÔ-Ð-õ "*Ô!1Ñ!3Ô!3ñô ðð ð ðð ñ	ðð( �”˜Vœ[Ð/Ð/¨BÐ/Ð/Øñà�$”,˜vœ|Ð2Ð2¨rÐ2Ð2ñ3ðrÃ   c                ó  — | j         j        rG|j        j        j        t
          j        u r* | j        |j        fi |¤Ždz    | j        |j        fi |¤Žz   S d | j        |j        fi |¤Ždz    | j        |j        fi |¤Žz   z  S )Nr�  z	FLOOR(%s))	r¦  r�  r�   rý   r’  r%   ÚIntegerr±  ry   r”  s       rÁ   Úvisit_floordiv_binaryz!SQLCompiler.visit_floordiv_binary>  s¹   € àŒLÔ(ð	à”Ô!Ô0µHÔ4DÐDÐDð �”˜Vœ[Ð/Ð/¨BÐ/Ð/Øñà�$”,˜vœ|Ð2Ð2¨rÐ2Ð2ñ3ðð Ø�”˜Vœ[Ð/Ð/¨BÐ/Ð/Øñà�$”,˜vœ|Ð2Ð2¨rÐ2Ð2ñ3ñð rÃ   c                óz   — |j         s| j        j        r | j        |j        fi |¤ŽS d | j        |j        fi |¤Žz  S )Nz%s = 1©Ú_is_implicitly_booleanr¦  rü  r±  rÇ  ©r  rÇ  r?  rÉ  s       rÁ   Úvisit_is_true_unary_operatorz(SQLCompiler.visit_is_true_unary_operatorO  s[   € àÔ*ð	BàŒ|Ô3ð	Bð  �4”< ¤Ð6Ð6°2Ð6Ð6Ð6à˜l˜dœl¨7¬?ÐAÐA¸bÐAÐAÑAÐArÃ   c                ó€   — |j         s| j        j        rd | j        |j        fi |¤Žz  S d | j        |j        fi |¤Žz  S )NúNOT %sz%s = 0rš  rœ  s       rÁ   Úvisit_is_false_unary_operatorz)SQLCompiler.visit_is_false_unary_operatorX  s`   € àÔ*ð	BàŒ|Ô3ð	Bð ˜l˜dœl¨7¬?ÐAÐA¸bÐAÐAÑAÐAà˜l˜dœl¨7¬?ÐAÐA¸bÐAÐAÑAÐArÃ   c                óJ   — d|                       |t          j        ¬¦  «        z  S )NrŸ  )Úoverride_operator)Úvisit_binaryr!   Úmatch_opr”  s       rÁ   Úvisit_not_match_op_binaryz%SQLCompiler.visit_not_match_op_binarya  s.   € Ø˜$×+Ò+Ø¥iÔ&8ð ,ñ 
ô 
ñ 
ð 	
rÃ   c                ó<   — d | j         |t          |         fi |¤Žz  S r  )Ú_generate_generic_binaryr˜  r”  s       rÁ   Úvisit_not_in_op_binaryz"SQLCompiler.visit_not_in_op_binaryf  s:   € ð Ð5˜Ô5Ø•I˜hÔ'ð
ð 
Ø+-ð
ð 
ñ 
ð 	
rÃ   c                ó@  — |t           j        u r7t          |¦  «        dk    r"dd                     d„ |D ¦   «         ¦  «        z  S dS |t           j        u r7t          |¦  «        dk    r"dd                     d„ |D ¦   «         ¦  «        z  S dS |                      |¦  «        S )	Nr   z(%s)) OR (1 = 1rÐ   c              3  ó   K  — | ]}d V — ŒdS ©rõ  Nr½   ©r¿   rÇ  s     rÁ   r1  z6SQLCompiler.visit_empty_set_op_expr.<locals>.<genexpr>r  ó"   è è € Ð:Ð:¨˜fÐ:Ð:Ð:Ð:Ð:Ð:rÃ   zNULL) OR (1 = 1z(%s)) AND (1 != 1c              3  ó   K  — | ]}d V — ŒdS r«  r½   r¬  s     rÁ   r1  z6SQLCompiler.visit_empty_set_op_expr.<locals>.<genexpr>y  r­  rÃ   zNULL) AND (1 != 1)r!   Ú	not_in_opr²  rx   Úin_opÚvisit_empty_set_expr)r  r  Ú	expand_oprÉ  s       rÁ   Úvisit_empty_set_op_exprz#SQLCompiler.visit_empty_set_op_exprn  sµ   € Ø�	Ô+Ð+Ð+Ý�5‰zŒz˜AŠ~ˆ~Ø(Ø—I’IÐ:Ð:°EÐ:Ñ:Ô:Ñ:Ô:ñð ð )Ð(Ø�)œ/Ð)Ð)Ý�5‰zŒz˜AŠ~ˆ~Ø*Ø—I’IÐ:Ð:°EÐ:Ñ:Ô:Ñ:Ô:ñð ð +Ð*à×,Ò,¨UÑ3Ô3Ð3rÃ   c                ó:   — t          d| j        j        z  ¦  «        ‚)Nz3Dialect '%s' does not support empty set expression.rk  ©r  Úelement_typesrÉ  s      rÁ   r±  z SQLCompiler.visit_empty_set_expr€  s$   € Ý!ØAØŒlÔñ ñ
ô 
ð 	
rÃ   c                óä  ‡ ‡‡	‡
— ‰j                              ‰ j        ¦  «        }|sb|j        r8‰ j        j        rdnd‰                      ‰j         j        ‰j        ¦  «        z   }�n‰‰                      ‰j         g‰j        ¦  «        }�nf|j        sI|j        r™t          |d         t          j        ¦  «        ryt          |d         t          t          f¦  «        sW|j        rt          d¦  «        ‚‰ j        j        rdndd                     ˆˆ fd„t#          |¦  «        D ¦   «         ¦  «        z   }n¿|r›‰ j        }|                     |¦  «        }|r|                     d¦  «        s
J d¦   «         ‚|                     d¦  «                             d	¦  «        }|d
         |d         cŠ	Š
d                     ˆ	ˆ
ˆˆ fd„|D ¦   «         ¦  «        }n"d                     ˆˆ fd„|D ¦   «         ¦  «        }d|fS )NúVALUES r–  r   z?bind_expression() on TupleType not supported with literal_bindsrÐ   c           	   3  ó–   •K  — | ]C\  }}d d                      ˆfd„t          |‰j        j        ¦  «        D ¦   «         ¦  «        z  V — ŒDdS )r  rÐ   c              3  óJ   •K  — | ]\  }}‰                      ||¦  «        V — Œd S r  r   )r¿   rÌ  Ú
param_typer  s      €rÁ   r1  z[SQLCompiler._literal_execute_expanding_parameter_literal_binds.<locals>.<genexpr>.<genexpr>¬  sK   øè è € ð ð á-˜E :ð ×1Ò1°%¸ÑDÔDðð ð ð ð ð rÃ   N)rx   rä  rý   rÒ  )r¿   r  r  r,  r  s      €€rÁ   r1  zQSQLCompiler._literal_execute_expanding_parameter_literal_binds.<locals>.<genexpr>©  s�   øè è € ð ð ñ %�A�}ð à—I’Ið ð ð ð å14Ø)¨9¬>Ô+?ñ2ô 2ðñ ô ñ ô ñðð ð ð ð ð rÃ   r7   ú)unexpected format for expanding parameterr  r   r  c              3  óZ   •K  — | ]%}‰›‰                      |‰j        ¦  «        ›‰›�V — Œ&d S r  ©r  rý   )r¿   rÌ  r  r  r,  r  s     €€€€rÁ   r1  zQSQLCompiler._literal_execute_expanding_parameter_literal_binds.<locals>.<genexpr>¿  s]   øè è € ð 3ð 3ð ð	  ˜Ø×1Ò1°%¸¼ÑHÔHÐHØ ˜ð	ð3ð 3ð 3ð 3ð 3ð 3rÃ   c              3  óN   •K  — | ]}‰                      |‰j        ¦  «        V — Œ d S r  r¾  )r¿   rÌ  r,  r  s     €€rÁ   r1  zQSQLCompiler._literal_execute_expanding_parameter_literal_binds.<locals>.<genexpr>É  sI   øè è € ð 3ð 3àð ×-Ò-¨e°Y´^ÑDÔDð3ð 3ð 3ð 3ð 3ð 3rÃ   r½   )rý   rñ  r¦  rÑ  Útuple_in_valuesr³  rÒ  r²  Ú_isnullr¯  Úcollections_abcr   r¾   ÚbytesÚ_has_bind_expressionrÍ  rx   r  r"  Úsearchr‡   r  )r  r,  rÁ  Úbind_expression_templateÚtyp_dialect_implÚreplacement_expressionÚpost_compile_patternr¡  r  r  r  s   ``       @@rÁ   Ú2_literal_execute_expanding_parameter_literal_bindsz>SQLCompiler._literal_execute_expanding_parameter_literal_binds†  s�  øøøø€ ð %œ>×AÒAÀ$Ä,ÑOÔOÐàð A	ð
  Ô.ð 
à!%¤Ô!=ÐE�I�IÀ2Ø×0Ò0Ø”NÔ(¨)Ô*=ñô ñ*Ð&Ñ&ð *.×)EÒ)EØ”^Ð$ iÔ&9ñ*ô *Ð&Ñ&ð Ô,ð 0	ØÔ$ð0	å˜6 !œ9¥oÔ&>Ñ?Ô?ð0	õ ˜v aœy­3µ¨,Ñ7Ô7ð0	ð
  Ô4ð Ý)ð$ñô ð ð "œ\Ô9ÐA�	�	¸rØ—	’	ð ð ð ð ð õ )2°&Ñ(9Ô(9ðñ ô ñ ô ñ&Ð"Ð"ð (ð Ø'+Ô'AÐ$Ø(×/Ò/Ð0HÑIÔI�Øð ?˜QŸWšWØñô ð ?ð ?à>ñ?ô ?ð ð —g’g˜a‘j”j×&Ò& tÑ,Ô,�Ø$'¨¤F¨C°¬FÐ!�˜Ø)-¯ªð 3ð 3ð 3ð 3ð 3ð 3ð 3ð "(ð3ñ 3ô 3ñ *ô *Ð&Ð&ð *.¯ªð 3ð 3ð 3ð 3ð 3à!'ð3ñ 3ô 3ñ *ô *Ð&ð
 Ð)Ð)Ð)rÃ   c                ó†  ‡ ‡‡‡‡‡‡	— ‰j         r‰                      ‰|¦  «        S ‰ j        }‰j                             |¦  «        Š	‰ j        r‰ j        Šn‰ j        Š‰ j        j        r‰	j	        r	ˆˆˆ ˆ	fd„Šnˆfd„Š|sRg Š‰	j
        r'‰                      ‰j        j        ‰j        ¦  «        }�n‰                      ‰j        g‰j        ¦  «        }nî‰	j
        sI‰	j        r£t          |d         t           j        ¦  «        rƒt          |d         t$          t&          f¦  «        sa‰	j        rJ ‚ˆfd„t+          |d¦  «        D ¦   «         Š|j        rdndd                     ˆˆfd	„t+          |¦  «        D ¦   «         ¦  «        z   }n=ˆfd
„t+          |d¦  «        D ¦   «         Šd                     ˆfd„‰D ¦   «         ¦  «        }‰|fS )Nc                óF   •— ‰                      ‰j        ‰‰d| iz  ¦  «        S ©Nrù   )Úrender_bind_castrý   )rù   Úbind_templater,  r  rÇ  s    €€€€rÁ   Ú_render_bindtemplatezNSQLCompiler._literal_execute_expanding_parameter.<locals>._render_bindtemplateã  s/   ø€ Ø×,Ò,Ø”NØ$Ø! V¨T NÑ2ñô ð rÃ   c                ó   •— ‰d| iz  S rÍ  r½   )rù   rÏ  s    €rÁ   rÐ  zNSQLCompiler._literal_execute_expanding_parameter.<locals>._render_bindtemplateì  s   ø€ Ø$¨° ~Ñ5Ð5rÃ   r   c                óZ   •— g | ]'\  }}t          |d ¦  «        D ]\  }}‰›d|›d|›�|f‘ŒŒ(S )r   r  r  )r¿   r  r  r  rÌ  rù   s        €rÁ   r†  zDSQLCompiler._literal_execute_expanding_parameter.<locals>.<listcomp>   sh   ø€ ð ð ð á$�A�}Ý )¨-¸Ñ ;Ô ;ðð ñ �A�uð  $˜t˜t Q Q Q¨¨Ð*¨EÐ2ðð ð ð rÃ   r   r¸  r–  rÐ   c              3  óŠ   •‡‡K  — | ];\  ŠŠd d                      ˆˆˆˆfd„t          ‰¦  «        D ¦   «         ¦  «        z  V — Œ<dS )r  rÐ   c              3  ór   •K  — | ]1\  }} ‰‰‰t          ‰¦  «        z  |z            d          ¦  «        V — Œ2dS )r   N)r²  )r¿   r  rÌ  rÐ  r  r-  r  s      €€€€rÁ   r1  zMSQLCompiler._literal_execute_expanding_parameter.<locals>.<genexpr>.<genexpr>  si   øè è € ð ð ñ %˜A˜uð -Ð,Ø% a­#¨mÑ*<Ô*<Ñ&<¸qÑ&@ÔAÀ!ÔDñô ðð ð ð ð ð rÃ   N)rx   r  )r¿   r  r  rÐ  r-  s    @@€€rÁ   r1  zCSQLCompiler._literal_execute_expanding_parameter.<locals>.<genexpr>  s”   øøøè è € ð ð ñ %�A�}ð à—I’Ið ð ð ð ð ð ð õ )2°-Ñ(@Ô(@ð	ñ ô ñ ô ñðð ð ð ð ð rÃ   c                ó(   •— g | ]\  }}‰›d |›�|f‘ŒS )r  r½   )r¿   r  rÌ  rù   s      €rÁ   r†  zDSQLCompiler._literal_execute_expanding_parameter.<locals>.<listcomp>  s=   ø€ ð ð ð á�A�uð !˜D˜D ! !Ð$ eÐ,ðð ð rÃ   c              3  ó4   •K  — | ]\  }} ‰|¦  «        V — Œd S r  r½   )r¿   r0  rÌ  rÐ  s      €rÁ   r1  zCSQLCompiler._literal_execute_expanding_parameter.<locals>.<genexpr>  sD   øè è € ð /ð /Ù.8¨c°5Ð$Ð$ SÑ)Ô)ð/ð /ð /ð /ð /ð /rÃ   )r   rÊ  r¦  rý   rñ  r:  r4  r3  Ú_bind_typing_render_castsrÎ  rÑ  r³  rÒ  r²  rÁ  r¯  rÂ  r   r¾   rÃ  Ú	_is_arrayr  rÀ  rx   )
r  rù   r,  rÁ  r¦  rÈ  rÐ  rÏ  r-  rÇ  s
   ```   @@@@rÁ   r  z0SQLCompiler._literal_execute_expanding_parameterÐ  s£  øøøøøøø€ ØÔ$ð 	Ø×JÒJØ˜6ñô ð ð ”,ˆØ$œ>×AÒAÀ'ÑJÔJÐàÔð 	.Ø Ô9ˆMˆMà Ô-ˆMð ŒLÔ2ð	6à Ô1ð	6ð
ð ð ð ð ð ð ð ð ð6ð 6ð 6ð 6ð 6ð ð ,	ØˆIØÔ.ð Ø)-×)EÒ)EØ”NÔ(¨)Ô*=ñ*ô *Ð&Ñ&ð *.×)EÒ)EØ”^Ð$ iÔ&9ñ*ô *Ð&Ð&ð Ô,ð !	ØÔ$ð!	å˜6 !œ9¥oÔ&>Ñ?Ô?ð!	õ ˜v aœy­3µ¨,Ñ7Ô7ð!	ð
 (Ô1Ð1Ð1Ð1ðð ð ð å(1°&¸!Ñ(<Ô(<ðñ ô ˆIð %Ô4Ð<�	�	¸"Ø—	’	ð ð ð ð ð õ )2°&Ñ(9Ô(9ðñ ô ñ ô ñ&Ð"Ð"ðð ð ð å )¨&°!Ñ 4Ô 4ðñ ô ˆIð &*§Y¢Yð /ð /ð /ð /Ø<Eð/ñ /ô /ñ &ô &Ð"ð Ð0Ð0Ð0rÃ   c           	     óF  — |rât          j        |j        ¦  «        rÉ|�l|d         }|j                             t          j        t          |j        j	        |gz   ¦  «        t          |j
        j	        |gz   ¦  «        ¦  «        ¦  «         n[|j                             t          j        t          |j        j	        ¦  «        t          |j
        j	        ¦  «        ¦  «        ¦  «         | j        rCt          |j        t          j        ¦  «        r$t          |j
        t          j        ¦  «        rd|d<   |p|j        }|                      |dd ¦  «        }	|	r
 |	||fi |¤ŽS 	 t           |         }
 | j        ||
f||dœ|¤ŽS # t$          $ r}t'          j        | |¦  «        |‚d }~ww xY w)NÚenclosing_lateralTr   r’   )Úfrom_linterÚlateral_from_linter)r!   Úis_comparisonr?  rz  rx  r¿  Úproductr*   ry   r+   r�   r2  r¯  r   rF   r"  r˜  r§  rƒ  r8   rÅ  )r  r’   r¢  Úeager_groupingrÛ  rÜ  rÉ  rÚ  r#  r$  r%  rÈ  s               rÁ   r£  zSQLCompiler.visit_binary  s   € ð ð 	�9Ô2°6´?ÑCÔCð 	Ø"Ð.Ø$&Ð':Ô$;Ð!Ø#Ô)×0Ò0ÝÔ%Ý!Ø"œKÔ5Ð9JÐ8KÑKñô õ "Ø"œLÔ6Ð:KÐ9LÑLñô ñ	ô ñ	ô 	ð 	ð 	ð Ô!×(Ò(ÝÔ%Ý! &¤+Ô";Ñ<Ô<Ý! &¤,Ô"<Ñ=Ô=ñô ñô ð ð Ô ð	)å˜6œ;­Ô(>Ñ?Ô?ð	)õ ˜6œ<­Ô)?Ñ@Ô@ð	)ð
 %)ˆBÐ Ñ!à%Ð8¨¬ˆ	Ø×*Ò*¨9°hÀÑEÔEˆØð 	Ø�4˜ 	Ð0Ð0¨RÐ0Ð0Ð0ðÝ$ YÔ/�ð 5�tÔ4ØØðð !,Ø(;ð	ð ð
 ðð ð øõ ð Pð Pð PÝÔ5°d¸IÑFÔFÈCÐOøøøøðPøøøs   ÅE; Å;
F ÆFÆF c                ó(   —  | j         |j        fi |¤ŽS r  )r±  Úsql_functionrœ  s       rÁ   Ú&visit_function_as_comparison_op_binaryz2SQLCompiler.visit_function_as_comparison_op_binaryW  s   € ØˆtŒ|˜GÔ0Ð7Ð7°BÐ7Ð7Ð7rÃ   c                óÂ   — | j         j        r* | j        |j        fi |¤Ždz    | j        |j        fi |¤Žz   S  | j        |j        fi |¤Ždz    | j        |j        fi |¤Žz   S )Nz %% rÎ   )rŸ  rÑ  r±  ry   r�   r”  s       rÁ   Úvisit_mod_binaryzSQLCompiler.visit_mod_binaryZ  s™   € ØŒ=Ô)ð 	à�”˜Vœ[Ð/Ð/¨BÐ/Ð/Øñà�$”,˜vœ|Ð2Ð2¨rÐ2Ð2ñ3ðð �”˜Vœ[Ð/Ð/¨BÐ/Ð/Øñà�$”,˜vœ|Ð2Ð2¨rÐ2Ð2ñ3ðrÃ   c                óp   — |j         |d<    | j        |d|                      |j        ¦  «        z   dz   fi |¤ŽS )Nrß  r!  )rß  r§  r²  r%  rœ  s       rÁ   Úvisit_custom_op_binaryz"SQLCompiler.visit_custom_op_binaryh  sW   € Ø'Ô6ˆÐÑØ,ˆtÔ,ØØ�$×,Ò,¨XÔ->Ñ?Ô?Ñ?À#ÑEð
ð 
ð ð
ð 
ð 	
rÃ   c                óV   —  | j         ||                      |j        ¦  «        dz   fi |¤ŽS r  )r‹  r²  r%  rœ  s       rÁ   Úvisit_custom_op_unary_operatorz*SQLCompiler.visit_custom_op_unary_operatorp  sA   € Ø4ˆtÔ4Ø�T×/Ò/°Ô0AÑBÔBÀSÑHð
ð 
ØLNð
ð 
ð 	
rÃ   c                óV   —  | j         |d|                      |j        ¦  «        z   fi |¤ŽS r  )rŒ  r²  r%  rœ  s       rÁ   Úvisit_custom_op_unary_modifierz*SQLCompiler.visit_custom_op_unary_modifieru  sA   € Ø4ˆtÔ4Ø�S˜4×5Ò5°hÔ6GÑHÔHÑHð
ð 
ØLNð
ð 
ð 	
rÃ   c                ó¾   — |                      dd¦  «        }d|d<   |j        |d<    |j        j        | fd|i|¤Ž|z    |j        j        | fd|i|¤Žz   }|r|rd|z  }|S )Nr!  FTÚ
_binary_oprß  r  )r¬  r?  ry   rÓ  r�   )r  r’   r%  rß  rÉ  r!  rÔ  s          rÁ   r§  z$SQLCompiler._generate_generic_binaryz  s½   € ð #%§&¢&Ð)BÀEÑ"JÔ"JÐà(,ˆÐ$Ñ%Ø!œ?ˆˆ<Ñà*ˆFŒKÔ*Øðð Ø%3ðØ79ðð ð ñð .ˆfŒlÔ-Øðð Ø%3ðØ79ðð ñ	ð 	ð #ð 	! ~ð 	!Ø˜D‘=ˆDØˆrÃ   c                ó.   — | |j         j        | fi |¤Žz   S r  rv  ©r  r‰  r%  rÉ  s       rÁ   r‹  z,SQLCompiler._generate_generic_unary_operator�  s%   € ØÐ:˜%œ-Ô:¸4ÐFÐFÀ2ÐFÐFÑFÐFrÃ   c                ó.   —  |j         j        | fi |¤Ž|z   S r  rv  rî  s       rÁ   rŒ  z,SQLCompiler._generate_generic_unary_modifier’  s$   € Ø/ˆuŒ}Ô/°Ð;Ð;¸Ð;Ð;¸hÑFÐFrÃ   c                óB   — t          j        dt          j        ¬¦  «        S )Nz'%')r  )r   Úliteral_columnr%   Ú
STRINGTYPEr4  s    rÁ   Ú_like_percent_literalz!SQLCompiler._like_percent_literal•  s   € åÔ& uµHÔ4GÐHÑHÔHÐHrÃ   c                ó0   — d |j         j        | fi |¤Ž› d�S )Nzlower(r  rv  rÀ  s      rÁ   Ú$visit_ilike_case_insensitive_operandz0SQLCompiler.visit_ilike_case_insensitive_operand™  s+   € ØIÐ:˜œÔ:¸4ÐFÐFÀ2ÐFÐFÐIÐIÐIÐIrÃ   c                óº   — |                      ¦   «         }| j        }|                     |j        ¦  «                             |¦  «        |_         | j        ||fi |¤ŽS r  ©Ú_cloneró  Úconcatr�   Úvisit_like_op_binary©r  r’   r?  rÉ  Úpercents        rÁ   Úvisit_contains_op_binaryz$SQLCompiler.visit_contains_op_binaryœ  sW   € Ø—’‘”ˆØÔ,ˆØ—~’~ f¤lÑ3Ô3×:Ò:¸7ÑCÔCˆŒØ(ˆtÔ(¨°Ð@Ð@¸RÐ@Ð@Ð@rÃ   c                óº   — |                      ¦   «         }| j        }|                     |j        ¦  «                             |¦  «        |_         | j        ||fi |¤ŽS r  ©rø  ró  rù  r�   Úvisit_not_like_op_binaryrû  s        rÁ   Úvisit_not_contains_op_binaryz(SQLCompiler.visit_not_contains_op_binary¢  sW   € Ø—’‘”ˆØÔ,ˆØ—~’~ f¤lÑ3Ô3×:Ò:¸7ÑCÔCˆŒØ,ˆtÔ,¨V°XÐDÐDÀÐDÐDÐDrÃ   c                ó  — |                      ¦   «         }| j        }t          |j        ¦  «        |_        |                     t          |j        ¦  «        ¦  «                             |¦  «        |_         | j        ||fi |¤ŽS r  ©rø  ró  r	  ry   rù  r�   Úvisit_ilike_op_binaryrû  s        rÁ   Úvisit_icontains_op_binaryz%SQLCompiler.visit_icontains_op_binary¨  sw   € Ø—’‘”ˆØÔ,ˆÝ,¨V¬[Ñ9Ô9ˆŒØ—~’~Ý" 6¤<Ñ0Ô0ñ
ô 
ç
Š&�‰/Œ/ð 	Œð *ˆtÔ)¨&°(ÐAÐA¸bÐAÐAÐArÃ   c                ó  — |                      ¦   «         }| j        }t          |j        ¦  «        |_        |                     t          |j        ¦  «        ¦  «                             |¦  «        |_         | j        ||fi |¤ŽS r  ©rø  ró  r	  ry   rù  r�   Úvisit_not_ilike_op_binaryrû  s        rÁ   Úvisit_not_icontains_op_binaryz)SQLCompiler.visit_not_icontains_op_binary±  sw   € Ø—’‘”ˆØÔ,ˆÝ,¨V¬[Ñ9Ô9ˆŒØ—~’~Ý" 6¤<Ñ0Ô0ñ
ô 
ç
Š&�‰/Œ/ð 	Œð .ˆtÔ-¨f°hÐEÐEÀ"ÐEÐEÐErÃ   c                ó”   — |                      ¦   «         }| j        }|                     |j        ¦  «        |_         | j        ||fi |¤ŽS r  )rø  ró  Ú_rconcatr�   rú  rû  s        rÁ   Úvisit_startswith_op_binaryz&SQLCompiler.visit_startswith_op_binaryº  sK   € Ø—’‘”ˆØÔ,ˆØ×'Ò'¨¬Ñ5Ô5ˆŒØ(ˆtÔ(¨°Ð@Ð@¸RÐ@Ð@Ð@rÃ   c                ó”   — |                      ¦   «         }| j        }|                     |j        ¦  «        |_         | j        ||fi |¤ŽS r  )rø  ró  r  r�   r   rû  s        rÁ   Úvisit_not_startswith_op_binaryz*SQLCompiler.visit_not_startswith_op_binaryÀ  sK   € Ø—’‘”ˆØÔ,ˆØ×'Ò'¨¬Ñ5Ô5ˆŒØ,ˆtÔ,¨V°XÐDÐDÀÐDÐDÐDrÃ   c                óà   — |                      ¦   «         }| j        }t          |j        ¦  «        |_        |                     t          |j        ¦  «        ¦  «        |_         | j        ||fi |¤ŽS r  )rø  ró  r	  ry   r  r�   r  rû  s        rÁ   Úvisit_istartswith_op_binaryz'SQLCompiler.visit_istartswith_op_binaryÆ  se   € Ø—’‘”ˆØÔ,ˆÝ,¨V¬[Ñ9Ô9ˆŒØ×'Ò'Õ(>¸v¼|Ñ(LÔ(LÑMÔMˆŒØ)ˆtÔ)¨&°(ÐAÐA¸bÐAÐAÐArÃ   c                óà   — |                      ¦   «         }| j        }t          |j        ¦  «        |_        |                     t          |j        ¦  «        ¦  «        |_         | j        ||fi |¤ŽS r  )rø  ró  r	  ry   r  r�   r  rû  s        rÁ   Úvisit_not_istartswith_op_binaryz+SQLCompiler.visit_not_istartswith_op_binaryÍ  se   € Ø—’‘”ˆØÔ,ˆÝ,¨V¬[Ñ9Ô9ˆŒØ×'Ò'Õ(>¸v¼|Ñ(LÔ(LÑMÔMˆŒØ-ˆtÔ-¨f°hÐEÐEÀ"ÐEÐEÐErÃ   c                ó”   — |                      ¦   «         }| j        }|                     |j        ¦  «        |_         | j        ||fi |¤ŽS r  r÷  rû  s        rÁ   Úvisit_endswith_op_binaryz$SQLCompiler.visit_endswith_op_binaryÔ  sI   € Ø—’‘”ˆØÔ,ˆØ—~’~ f¤lÑ3Ô3ˆŒØ(ˆtÔ(¨°Ð@Ð@¸RÐ@Ð@Ð@rÃ   c                ó”   — |                      ¦   «         }| j        }|                     |j        ¦  «        |_         | j        ||fi |¤ŽS r  rÿ  rû  s        rÁ   Úvisit_not_endswith_op_binaryz(SQLCompiler.visit_not_endswith_op_binaryÚ  sI   € Ø—’‘”ˆØÔ,ˆØ—~’~ f¤lÑ3Ô3ˆŒØ,ˆtÔ,¨V°XÐDÐDÀÐDÐDÐDrÃ   c                óà   — |                      ¦   «         }| j        }t          |j        ¦  «        |_        |                     t          |j        ¦  «        ¦  «        |_         | j        ||fi |¤ŽS r  r  rû  s        rÁ   Úvisit_iendswith_op_binaryz%SQLCompiler.visit_iendswith_op_binaryà  sc   € Ø—’‘”ˆØÔ,ˆÝ,¨V¬[Ñ9Ô9ˆŒØ—~’~Õ&<¸V¼\Ñ&JÔ&JÑKÔKˆŒØ)ˆtÔ)¨&°(ÐAÐA¸bÐAÐAÐArÃ   c                óà   — |                      ¦   «         }| j        }t          |j        ¦  «        |_        |                     t          |j        ¦  «        ¦  «        |_         | j        ||fi |¤ŽS r  r  rû  s        rÁ   Úvisit_not_iendswith_op_binaryz)SQLCompiler.visit_not_iendswith_op_binaryç  sc   € Ø—’‘”ˆØÔ,ˆÝ,¨V¬[Ñ9Ô9ˆŒØ—~’~Õ&<¸V¼\Ñ&JÔ&JÑKÔKˆŒØ-ˆtÔ-¨f°hÐEÐEÀ"ÐEÐEÐErÃ   c                óÚ   — |j                              dd ¦  «        } |j        j        | fi |¤Ž›d |j        j        | fi |¤Ž›�|�#d|                      |t          j        ¦  «        z   ndz   S )NrS  z LIKE ú ESCAPE r–  ©Ú	modifiersr¬  ry   rÓ  r�   r  r%   rò  ©r  r’   r?  rÉ  rS  s        rÁ   rú  z SQLCompiler.visit_like_op_binaryî  s“   € ØÔ!×%Ò% h°Ñ5Ô5ˆð +ˆFŒKÔ*¨4Ð6Ð6°2Ð6Ð6Ð6Ð6Ø+ˆFŒLÔ+¨DÐ7Ð7°BÐ7Ð7Ð7ð
ð
 Ð!ð ˜×2Ò2°6½8Ô;NÑOÔOÑOÐOàñ
ð 	
rÃ   c                óÚ   — |j                              dd ¦  «        } |j        j        | fi |¤Ž›d |j        j        | fi |¤Ž›�|�#d|                      |t          j        ¦  «        z   ndz   S )NrS  z
 NOT LIKE r  r–  r  r  s        rÁ   r   z$SQLCompiler.visit_not_like_op_binaryú  s‘   € ØÔ!×%Ò% h°Ñ5Ô5ˆà*ˆFŒKÔ*¨4Ð6Ð6°2Ð6Ð6Ð6Ð6Ø+ˆFŒLÔ+¨DÐ7Ð7°BÐ7Ð7Ð7ð
ð
 Ð!ð ˜×2Ò2°6½8Ô;NÑOÔOÑOÐOàñ
ð 	
rÃ   c                óÈ   — |t           j        u rF|                     ¦   «         }t          |j        ¦  «        |_        t          |j        ¦  «        |_         | j        ||fi |¤ŽS r  )r!   Úilike_oprø  r	  ry   r�   rú  r”  s       rÁ   r  z!SQLCompiler.visit_ilike_op_binary  s^   € Ø•yÔ)Ð)Ð)Ø—]’]‘_”_ˆFÝ0°´Ñ=Ô=ˆFŒKÝ1°&´,Ñ?Ô?ˆFŒLð )ˆtÔ(¨°Ð@Ð@¸RÐ@Ð@Ð@rÃ   c                óÈ   — |t           j        u rF|                     ¦   «         }t          |j        ¦  «        |_        t          |j        ¦  «        |_         | j        ||fi |¤ŽS r  )r!   Únot_ilike_oprø  r	  ry   r�   r   r”  s       rÁ   r  z%SQLCompiler.visit_not_ilike_op_binary  s^   € Ø•yÔ-Ð-Ð-Ø—]’]‘_”_ˆFÝ0°´Ñ=Ô=ˆFŒKÝ1°&´,Ñ?Ô?ˆFŒLð -ˆtÔ,¨V°XÐDÐDÀÐDÐDÐDrÃ   c                ó^   — |j                              dd¦  «        } | j        ||rdndfi |¤ŽS )Nr¯   Fz BETWEEN SYMMETRIC z	 BETWEEN ©r  r¬  r§  ©r  r’   r?  rÉ  r¯   s        rÁ   Úvisit_between_op_binaryz#SQLCompiler.visit_between_op_binary  sN   € ØÔ$×(Ò(¨°eÑ<Ô<ˆ	Ø,ˆtÔ,Ø¨YÐGÐ)Ð)¸Kð
ð 
ØKMð
ð 
ð 	
rÃ   c                ó^   — |j                              dd¦  «        } | j        ||rdndfi |¤ŽS )Nr¯   Fz NOT BETWEEN SYMMETRIC z NOT BETWEEN r&  r'  s        rÁ   Úvisit_not_between_op_binaryz'SQLCompiler.visit_not_between_op_binary  sQ   € ØÔ$×(Ò(¨°eÑ<Ô<ˆ	Ø,ˆtÔ,ØØ)2ÐGÐ%Ð%¸ð
ð 
ð ð
ð 
ð 	
rÃ   c                óD   — t          j        d| j        j        z  ¦  «        ‚©Nz/%s dialect does not support regular expressions©r8   rã  r¦  rù   r”  s       rÁ   Úvisit_regexp_match_op_binaryz(SQLCompiler.visit_regexp_match_op_binary%  ó'   € ÝÔØ=ØŒlÔñ ñ
ô 
ð 	
rÃ   c                óD   — t          j        d| j        j        z  ¦  «        ‚r,  r-  r”  s       rÁ   Ú visit_not_regexp_match_op_binaryz,SQLCompiler.visit_not_regexp_match_op_binary+  r/  rÃ   c                óD   — t          j        d| j        j        z  ¦  «        ‚)Nz;%s dialect does not support regular expression replacementsr-  r”  s       rÁ   Úvisit_regexp_replace_op_binaryz*SQLCompiler.visit_regexp_replace_op_binary1  s'   € ÝÔØIØŒlÔñ ñ
ô 
ð 	
rÃ   c           	     óô  — |sÞ|j                              | j        ¦  «        }|j        r¸|                     |¦  «        }	 | j        |	fd||o|j         ||dœ|¤Ž}
|j        r~t          j        d|
¦  «        }|s
J d¦   «         ‚d| 	                    d¦  «        ›d| 	                    d¦  «        ›d	| 	                    d
¦  «        ›d�}
|r | j
        |fd|
dœ|¤Ž}d|z  S |
S |s|p|j        p|o| j        }|p|j        }nd}|r | j
        |fddi|¤Ž}|j        rd|z  }|S |                      |¦  «        }|| j        v rñ| j        |         }||urà|j        s|j        rU|j                             |j        ¦  «        s6|j                             |j        ¦  «        st'          j        d|z  ¦  «        ‚|j        |j        k    rt'          j        d|›d�¦  «        ‚|j        s|j        rG|j        r|j        rt'          j        d¦  «        ‚t'          j        d|j        › d|j        › d�¦  «        ‚|x| j        |j        <   | j        |<   | j        }|r@|\  }}|j        D ]3}|j        |v r(||j                 }||                              |¦  «         Œ4|j        rd| _        |r.|rd| _        |r| xj        |hz  c_        n| xj        |hz  c_         | j        |f||j        |j         dœ|¤Ž}|j        rd|z  }|S )NT)Úskip_bind_expressionr�  Úliteral_bindsr   Úrender_postcompilez&^(.*)\(__\[POSTCOMPILE_(\S+?)\]\)(.*)$r¼  z(__[POSTCOMPILE_r7   r  r   z~~REPL~~r  z~~]))r�  rÆ  r  Fr�  zIBind parameter '%s' conflicts with unique bind parameter of the same namez"Can't reuse bound parameter name 'zê' in both 'expanding' (e.g. within an IN expression) and non-expanding contexts.  If this parameter is to receive a list/array value, set 'expanding=True' on it for expressions that aren't IN, otherwise use a different parameter name.a)  Encountered unsupported case when compiling an INSERT or UPDATE statement.  If this is a multi-table UPDATE statement, please provide string-named arguments to the values() method with distinct names; support for multi-table UPDATE statements that target multiple tables for UPDATE is very limitedzbindparam() name 'zÌ' is reserved for automatic usage in the VALUES or SET clause of this insert/update statement.   Please use a name other than column name when using bindparam() with insert() or update() (for example, 'b_z').)Úpost_compileÚ	expandingÚbindparam_type)rý   Údialect_implr¦  rÄ  Úbind_expressionr±  r9  rR  r3  r‡   r  r   r2  Ú_truncate_bindparamr.  r›   rý  Úintersectionrm  r8   rã  Ú_is_crudr0  rF  r¤  Ú
isoutparamÚhas_out_parametersr;  rC  rD  rÛ  )r  rÓ  r�  r6  r5  r   r7  rÐ  Úimplr<  Úwrappedr¡  r^  r8  rù   Úexistingrê  r~  r}  rp  rr  s                        rÁ   Úvisit_bindparamzSQLCompiler.visit_bindparam7  s€  € ð $ð $	Ø”>×.Ò.¨t¬|Ñ<Ô<ˆDØÔ(ð "Ø"&×"6Ò"6°yÑ"AÔ"A�Ø&˜$œ,Ø#ðà)-Ø*?Ø"/Ð"K¸	Ô8KÐ4KØ$3Ø'9ðð ð ðð �ð Ô&ð ,õ œØAÀ7ñô �Að ÐIÐIÐIÑIÔI˜1ÐIàŸš ™
œ
˜
˜
ØŸš ™
œ
˜
˜
ØŸš ™
œ
˜
˜
ð�Gð %ð ,Ø;˜dÔ;Ø%ðà26Ø5<ðð ð %ð	ð ˜ð  &¨™|Ð+à�àð 	!àð DØÔ,ðDà)ÐB¨dÔ.Bð ð
 +ÐA¨iÔ.AˆLˆLà ˆLàð 	Ø/�$Ô/Øðð Ø15ðØ9?ðð ˆCð Ô"ð #Ø˜s‘l�ØˆJà×'Ò'¨	Ñ2Ô2ˆà�4”:ÐÐØ”z $Ô'ˆHØ˜yÐ(Ð(à”_ð/Ø(1Ô(8ð/à$Ô.×;Ò;Ø!Ô+ñô ð/ð
 %Ô0×=Ò=Ø!Ô-ñô ð/õ Ô*ðAØCGñHñô ð ð Ô'¨9Ô+>Ò>Ð>ÝÔ*Ð*ð :>¸¸ð@ñô ð ð Ô&ð ¨)Ô*<ð ØÔ(ð ¨YÔ-?ð õ "Ô.ð&ñ
ô 
ð 
õ "Ô.ð5°´ð 5ð 5ð #,¤-ð5ð 5ð 5ñ	ô 	ð 	ð 8AÐ@ˆŒ
�9”=Ñ! D¤J¨tÑ$4ð Ô/ˆ
àð 	/Ø#‰JˆD�$ØÔ+ð /ð /�Ø”6˜T�>�>Ø˜bœfœ�BØ˜”H—O’O IÑ.Ô.Ð.øàÔð 	+Ø&*ˆDÔ#àð 	8Ø!ð 0Ø+/�Ô(àð 8ØÐ+Ô+°	¨{Ñ:Ð+Ô+Ð+àÐ(Ô(¨Y¨KÑ7Ð(Ô(à#ˆdÔ#Øð
à%ØÔ)Ø$œ>ð	
ð 
ð
 ð
ð 
ˆð Ôð 	Ø˜3‘,ˆCàˆ
rÃ   c                ó   — t          ¦   «         ‚r  rÌ  )r  r  Ú
dbapi_typero  s       rÁ   rÎ  zSQLCompiler.render_bind_castÜ  s   € Ý!Ñ#Ô#Ð#rÃ   c                ó†  — |t           ur|}nz|j        €l|j        €e|                     dd ¦  «        }|r5|t          j        t          j        fvrt          j        d|j	        f¦  «          | j
        t          j        fi |¤ŽS |j        }|j        r| j        } ||||¬¦  «        \  }}	|	S |                      ||j        ¦  «        S )Nrì  z‰Bound parameter '%s' rendering literal NULL in a SQL expression; comparisons to NULL should not use operators outside of 'is' or 'is not')rÆ  )r/   rÌ  ræ  r¬  r!   Úis_Úis_notr&   Úwarn_limitedr0  r±  r%   rß  rç  r9  rÊ  r  rý   )
r  rÓ  r  rÆ  rÉ  rÌ  ÚopÚleepr-  r/  s
             rÁ   r  z$SQLCompiler.render_literal_bindparamß  sú   € ð  ¥vÐ-Ð-Ø(ˆEˆEàŒÐ&¨9Ô+=Ð+EØ—V’V˜L¨$Ñ/Ô/�Øð ˜"¥Y¤]µIÔ4DÐ$EÐEÐEÝÔ%ð@ð #œÐ(ñ	ô ð ð $�t”|¥HÔ$5Ð<Ð<¸Ð<Ð<Ð<ØÔ-ˆEàÔð 		DØÔJˆDØ*.¨$ØØØ)Að+ñ +ô +Ñ'ˆIÐ'ð
 $Ð#à×,Ò,¨U°I´NÑCÔCÐCrÃ   c                óž  — |€8|j         s1|                      t          j                             ¦   «         ¦  «        S |                     | j        ¦  «        }|rL	  ||¦  «        S # t          $ r3}t          j	        dt          j        |¦  «        › d|› d�¦  «        |‚d}~ww xY wt          j	        dt          j        |¦  «        › d|› �¦  «        ‚)a  Render the value of a bind parameter as a quoted literal.

        This is used for statement sections that do not accept bind parameters
        on the target driver/database.

        This should be implemented by subclasses using the quoting services
        of the DBAPI.

        Nz Could not render literal value "z" with datatype z); see parent stack trace for more detail.z:No literal value renderer is available for literal value ")Úshould_evaluate_noner±  r   ÚNullÚ	_instanceÚ_cached_literal_processorr¦  rð  r8   rã  Úsql_utilÚ_repr_single_value)r  rÌ  r  Ú	processorÚes        rÁ   r  z SQLCompiler.render_literal_value   s  € ð ˆ= Ô!;ˆ=ð —<’<¥¤× 7Ò 7Ñ 9Ô 9Ñ:Ô:Ð:à×3Ò3°D´LÑAÔAˆ	Øð 	ð	Ø �y Ñ'Ô'Ð'øÝð ð ð ÝÔ&ð#Ý Ô3°EÑ:Ô:ð#ð #ð ð#ð #ð #ñô ð ðøøøøðøøøõ Ô"ð)ÝÔ/°Ñ6Ô6ð)ð )à!&ð)ð )ñô ð s   Á
A# Á#
B Á-.BÂB c                ó´   — || j         v r| j         |         S |j        }t          |t          j        ¦  «        r|                      d|¦  «        }|| j         |<   |S )NrÓ  )r/  r0  r¯  r   rE   r—  )r  rÓ  rÅ  s      rÁ   r=  zSQLCompiler._truncate_bindparam%  sb   € Ø˜œÐ'Ð'Ø”? 9Ô-Ð-à”Mˆ	Ý�i¥Ô!:Ñ;Ô;ð 	KØ×2Ò2°;À	ÑJÔJˆIð &/ˆŒ˜	Ñ"àÐrÃ   Úident_classrù   rE   c                óˆ  — ||f| j         v r| j         ||f         S |                     | j        ¦  «        }t          |¦  «        | j        dz
  k    rd| j                             |d¦  «        }|dt          | j        dz
  d¦  «        …         dz   t          |¦  «        dd …         z   }|dz   | j        |<   n|}|| j         ||f<   |S )Né   r   r   r  r7   )	rr  Ú	apply_maprq  r²  ro  rs  r¬  ÚmaxÚhex)r  rX  rù   ÚanonnameÚcounterÚ	truncnames         rÁ   r—  z!SQLCompiler._truncated_identifier2  sä   € ð ˜Ð $Ô"6Ð6Ð6ØÔ'¨°dÐ(;Ô<Ð<à—>’> $¤-Ñ0Ô0ˆåˆx‰=Œ=˜4Ô,¨qÑ0Ò0Ð0ØÔ.×2Ò2°;ÀÑBÔBˆGà˜�S Ô!2°QÑ!6¸Ñ:Ô:Ð:Ô;Øñå�g‘,”,˜q˜r˜rÔ"ñ#ð ð
 5<¸a±KˆDÔ$ [Ñ1Ð1à ˆIØ4=ˆÔ˜k¨4Ð0Ñ1ØÐrÃ   c                ó   — || j         z  S r  ©rq  ©r  rù   s     rÁ   Ú
_anonymizezSQLCompiler._anonymizeG  s   € Ø�d”mÑ#Ð#rÃ   r8  r9  Úescaped_fromr:  úOptional[TypeEngine[Any]]Úaccumulate_bind_namesúOptional[Set[str]]Úvisited_bindparamrÉ  c                ó˜  ‡ — |�|                      |¦  «         |�|                     |¦  «         |s<‰ j                             |¦  «        r"‰ j                             ˆ fd„|¦  «        }	|}|	}|r!‰ j                             ||i¦  «        ‰ _        |rEd|z  }
|r|
S |�8|                     ‰ j        ¦  «        }|j	        r‰  
                    |||
¦  «        }
|
S ‰ j        t          j        u r‰ j        d|iz  }
n‰ j        d|iz  }
|�D‰ j        j        r8|                     ‰ j        ¦  «        }|j
        r‰  
                    |||
¦  «        }
|
S )Nc                óD   •— ‰j         |                      d¦  «                 S )Nr   )r$  r‡   )r¡  r  s    €rÁ   r½  z.SQLCompiler.bindparam_string.<locals>.<lambda>d  s   ø€ ˜dÔ8¸¿ºÀ¹¼ÔD€ rÃ   z__[POSTCOMPILE_%s]rù   )Úaddr¤  r#  rÅ  r¯  rE  r�   rñ  r¦  Úrender_literal_castrÎ  r˜  re  rf  r4  r3  r×  )r  rù   r8  r9  re  r:  rg  ri  rÉ  Únew_namer^  Ú	type_impls   `           rÁ   rÛ  zSQLCompiler.bindparam_stringJ  s±  ø€ ð !Ð,Ø!×%Ò% dÑ+Ô+Ð+ØÐ(Ø×$Ò$ TÑ*Ô*Ð*àð 
	 ØÔ&×-Ò-¨dÑ3Ô3ð 	 ð  Ô2×6Ò6ØDÐDÐDÐDØñô �ð  $�Ø�àð 	Ø&*Ô&=×&CÒ&CØ˜tÐ$ñ'ô 'ˆDÔ#ð ð 	5Ø&¨Ñ-ˆCØð ð �
ð Ð)Ø*×BÒBØ”Lñô �	ð Ô0ð PØ×/Ò/°À	È3ÑOÔO�CØˆJØŒZ�=Ô2Ð2Ð2ØÔ/°6¸4°.Ñ@ˆCˆCàÔ# v¨t nÑ4ˆCð Ð&Ø”Ô6ð 'ð '×>Ò>¸t¼|ÑLÔLˆIØÔ)ð LØ×+Ò+¨N¸IÀsÑKÔK�àˆ
rÃ   c                óº   — |                      ¦   «         }|                     dd ¦  «         t          |j        |j        ¦  «        D ]\  }} |j        | fd|i|¤Ž Œd S )NÚcte_opts)Úcopyr|  rä  rè  Ú_independent_ctes_optsrÓ  )r  ÚstmtrÉ  Úlocal_kwÚcteÚopts         rÁ   ré  z&SQLCompiler._dispatch_independent_ctes�  s~   € Ø—7’7‘9”9ˆØ�Š�Z Ñ&Ô&Ð&ÝØÔ" DÔ$?ñ
ô 
ð 	Cð 	C‰HˆC�ð #ˆCÔ" 4ÐBÐB°#ÐB¸ÐBÐBÐBÐBð	Cð 	CrÃ   rv  rN   rx  ÚashintÚ	fromhintsúOptional[_FromHintsType]Úvisiting_cteúOptional[CTE]rÛ  úOptional[FromLinter]rq  úselectable._CTEOptsc                óx  ‡ — ‰                       ¦   «         }	|	‰ j        u sJ ‚||d<   |j        }
t          |
t          j        ¦  «        r‰                      d|
¦  «        }
d}d}|                     ¦   «         }|j        p|j        }|‰ j	        v r�‰ j	        |         \  }}}||
k    sJ ‚||
f}‰ j
        |         }|j        r]|j        rt          j        d¦  «        ‚||
f}|rt          ‰ j        ¦  «        nd}||
fx}}‰ j
        |= |‰ j
        |<   ||fz   ‰ j	        |<   n5|rt          ‰ j        ¦  «        nd}||
f}|‰ j
        v r‰ j
        |         }nd }|�†||u }||j        u s||u rd}nr||j        u r,|	|= |                     ¦   «         }||u sJ ‚||u sJ ‚‰ j	        |= n=|j        €|j        �|                     |¦  «        rd}nt          j        d|
z  ¦  «        ‚|s|sd S |j        �D|j        }|j        j        }t          |t          j        ¦  «        r‰                      d|¦  «        }n|}d }|�rE|‰ j
        |<   ||fz   ‰ j	        |<   |‰ j        vr ‰ j        |fi |¤Ž |�s||	v�r|j        rd‰ _        ‰ j                             ||
¦  «        }|j        rM|j        }d„ |                     d¦  «        D ¦   «         }|d	d
                     ˆ fd„|D ¦   «         ¦  «        z  z  }|                     dd¦  «        du sJ ‚‰ j        s |j        j        ‰ fd|i|¤ŽS  ‰ j        ||j        fi |¤Ž} |j        j        ‰ fddi|¤Ž}|d|›d|›d�z  }|j        r|d ‰ j        ||j        fi |¤Žz   z  }||	|<   |rÃ|r|
|j         | !                    ¦   «         <   |s|r‰ j                             ||
¦  «        S |ri‰ j                             ||¦  «        }‰ j         "                    |
¦  «        r‰ j         #                    |
¦  «        }
|‰  $                    |
¦  «        z  }|S ‰ j                             ||
¦  «        S d S )Nr{  r¯  TFz6CTE is stated as 'nest_here' in more than one locationr   z5Multiple, unrelated CTEs found with the same name: %rc                ó&   — g | ]\  }}}}}|°
|p|‘ŒS r½   r½   )r¿   r  Ú
proxy_nameÚfallback_label_namer…  Úrepeateds         rÁ   r†  z)SQLCompiler.visit_cte.<locals>.<listcomp>  sF   € ð "ð "ð "ñØØ&Ø/ØØ$à'ð"ð
 ,Ð9¨zð"ð "ð "rÃ   r  rÐ   c              3  óZ   •K  — | ]%}‰j                              |‰j        ¬ ¦  «        V — Œ&dS )rb  N)rŸ  Úformat_label_namerq  )r¿   Úidentr  s     €rÁ   r1  z(SQLCompiler.visit_cte.<locals>.<genexpr>,  sW   øè è € ð "ð "ð !&ð !œM×;Ò;Ø %°´ð <ñ ô ð"ð "ð "ð "ð "ð "rÃ   Úsubqueryrx  rÒ   z
(r  r!  )%r™  rJ  rù   r¯  r   rE   r—  Ú_get_reference_cteÚnestingrL  rK  r8   rã  r²  r†  Ú	_restatesÚ_is_clone_ofÚcompareÚ
_cte_aliasÚ	visit_cteÚ	recursiverM  rŸ  Úformat_aliasrÇ  Ú_generate_columns_plus_namesrx   r¬  rÓ  Ú_generate_prefixesÚ	_prefixesÚ	_suffixesry  r*   Ú_requires_quotesr³  Úget_render_as_alias_suffix)r  rv  rx  rx  ry  r{  rÛ  rq  rÐ  Ú	self_ctesÚcte_nameÚ
is_new_cteÚembedded_in_current_named_cteÚ_reference_cter‰  Ú	cte_levelr  Úexisting_cte_optsÚcte_level_nameÚexisting_cteÚold_level_nameÚnew_level_nameÚexisting_cte_reference_cteÚpre_alias_cteÚcte_pre_alias_namerÔ  Ú
col_sourceÚ
recur_colsÚprefixesr‰   s   `                             rÁ   rŽ  zSQLCompiler.visit_cte•  s  ø€ ð ×(Ò(Ñ*Ô*ˆ	Ø˜DœIÐ%Ð%Ð%Ð%à!$ˆˆ~Ñà”8ˆå�h¥Ô 9Ñ:Ô:ð 	EØ×1Ò1°'¸8ÑDÔDˆHàˆ
Ø(-Ð%à×/Ò/Ñ1Ô1ˆà”+Ð1 Ô!1ˆð ˜TÔ3Ð3Ð3Ø.2Ô.DØô/Ñ+ˆI�qÐ+ð ˜’=�=�=�=à'¨Ð2ˆNØÔ2°>ÔBˆLð
 Ôð Ø$Ô,ð ÝÔ*ð1ñô ð ð
 #,¨XÐ!6�Ø/6Ð=�C ¤
™OœO˜O¸A�	Ø3<¸hÐ2GÐG� àÔ+¨NÐ;Ø:F�Ô'¨Ñ7Ø9GØðKñ :�Ô& ~Ñ6øð
 ,3Ð9�˜DœJ™œ˜¸ˆIØ'¨Ð2ˆNà Ô!8Ð8Ð8Ø#Ô6°~ÔF��à#�àÐ#Ø,8¸LÐ,HÐ)ð �lÔ,Ð,Ð,°°|Ð0CÐ0CØ"�
�
Ø ¤Ð.Ð.ð ˜lÐ+à-9×-LÒ-LÑ-NÔ-NÐ*à1°^ÐCÐCÐCÐCØ1°\ÐAÐAÐAÐAàÔ*Ð+EÐFÐFð Ô$Ð0Ø#Ô0Ð<Ø—k’k ,Ñ/Ô/ð =à!&�J�JåÔ*ð,Ø.6ñ7ñô ð ð
 ð 	˜jð 	Ø�4àŒ>Ð%ØœNˆMØ!$¤Ô!4ÐÝÐ,­hÔ.GÑHÔHð Ø%)×%?Ò%?ØÐ/ñ&ô &Ð"øð  ˆMØ!%Ðàñ D	&Ø69ˆDÔ# NÑ3Ø5CØðGñ 6ˆDÔ" >Ñ2ð  D¤IÐ-Ð-Ø�”˜}Ð7Ð7°Ð7Ð7Ð7à%ñ ;&¨#°YÐ*>Ñ*>Ø”=ð /Ø*.�DÔ'Ø”}×1Ò1°#°xÑ@Ô@�Ø”=ð Ø!$¤�Jð
"ð "ð )×EÒEÀdÑKÔKð"ñ "ô "�Jð  ˜FØŸ	š	ð "ð "ð "ð "ð *4ð	"ñ "ô "ñ ô ññ �Dð —z’z *¨eÑ4Ô4¸Ð=Ð=Ð=Ð=à”zð ?ð :˜3œ;Ô9Øðð Ø%+ðØ/5ðð ð ð  7˜tÔ6Ø˜Sœ]ð ð  Ø.4ð ð  �Hð ;˜CœKÔ:Øðð Ø%)ðØ-3ðð �Eð �D¨h¨h¨h¸¸¸Ð>Ñ>�Dà”=ð Ø˜CÐ"9 $Ô"9Ø˜Sœ]ð#ð #Ø.4ð#ð #ñ ñ �Dð "&�	˜#‘àð 	AØð >Ø5=�Ô! #§-¢-¡/¤/Ñ2àð AÐ"?ð AØ”}×1Ò1°#°xÑ@Ô@Ð@à!ð AØ”}×1Ò1°#Ð7IÑJÔJ�Ø”=×1Ò1°(Ñ;Ô;ð =Ø#œ}×2Ò2°8Ñ<Ô<�HØ˜×7Ò7¸ÑAÔAÑA�Ø�à”}×1Ò1°#°xÑ@Ô@Ð@àˆtrÃ   c                ó`   — |j         rd |d<   |j        r | j        |fi |¤ŽS  | j        |fi |¤ŽS )NrÛ  )Újoins_implicitlyÚ_is_lateralÚvisit_lateralÚvisit_aliasrÀ  s      rÁ   Úvisit_table_valued_aliasz$SQLCompiler.visit_table_valued_alias`  sX   € ØÔ#ð 	%Ø $ˆBˆ}ÑØÔð 	3Ø%�4Ô% gÐ4Ð4°Ð4Ð4Ð4à#�4Ô# GÐ2Ð2¨rÐ2Ð2Ð2rÃ   c                ó   —  | j         |fi |¤ŽS r  )r¼  rÀ  s      rÁ   Úvisit_table_valued_columnz%SQLCompiler.visit_table_valued_columnh  s   € Ø ˆtÔ  Ð/Ð/¨BÐ/Ð/Ð/rÃ   c
           
     óT  ‡ ‡‡
— |r!d‰
vr‰j         sJ ‚‰‰
d<   |	rd‰
vr	d‰
v r|	‰
d<   |�1|j        ‰u r( ‰j        j        ‰ f|||||‰dœ‰
¤Ž}|r
|s|rd|›d�}|S ‰x}‰
d<   |s|rBt          ‰j        t
          j        ¦  «        r‰                      d‰j        ¦  «        }n‰j        }|r‰ j         	                    ‰|¦  «        S |rÏ|	r||	j
        ‰                     ¦   «         <    ‰j        j        ‰ fd|d	œ‰
¤Ž}|rd|›d�}|‰                      ‰ j         	                    ‰|¦  «        ¦  «        z   }‰j        r5‰j        r.|d
d                     ˆˆ
ˆ fd„‰j        D ¦   «         ¦  «        z  z  }|r"‰|v r‰                      |‰|‰         |¦  «        }|S  ‰j        j        ‰ fd|i‰
¤ŽS )NrÚ  rÜ  )rx  rx  Úiscrudry  ÚlateralÚenclosing_aliasr  r  r³  r¯  T)rx  r²  r  rÐ   c              3  ó¬   •K  — | ]N}‰j                              |j        ¦  «        ›‰j        r d  ‰j        j        j        |j        fi ‰¤Žz  nd›�V — ŒOdS )ú %sr–  N)rŸ  r³  rù   Ú_render_derived_w_typesr¦  rÊ  r±  rý   )r¿   rù  r¯  rÐ  r  s     €€€rÁ   r1  z*SQLCompiler.visit_alias.<locals>.<genexpr>²  sŸ   øè è € ð ð ð  ð !œM×/Ò/°´Ñ9Ô9Ð9ð $)Ô#@ð	!( Ø"M $¤,Ô"EÔ"MØ$'¤Hð#"ð #"Ø06ð#"ð #"ñ!"ð !"ð
 &(ð!(ð	ðð ð ð ð ð rÃ   r²  )rª  rÇ  rÓ  r¯  rù   r   rE   r—  rŸ  r�  ry  r*   r–  Ú_supports_derived_columnsÚ_render_derivedrx   r…  Úformat_from_hint_text)r  r¯  rx  rx  r±  ry  r‡  r²  r³  rÛ  rÐ  r‰   Ú
alias_namer^  s   ``        `   rÁ   r¬  zSQLCompiler.visit_aliask  sÕ  øøø€ ð ð 	<Ø"¨&Ð0Ð0ð Ô(Ð(Ð(Ð(Ø.3�Ð*Ñ+ð
 ð<à)°Ð7Ð7Ø'¨6Ð1Ð1à0;�Ð,Ñ-àÐ&¨?Ô+BÀeÐ+KÐ+KØ4�E”MÔ4Øð	àØØØ#ØØ %ð	ð 	ð ð	ð 	ˆEð ð *˜Vð * wð *øØ"' % %Ð)�ØˆLà:?Ð?ˆO˜fÐ%6Ñ7àð 	(�Vð 	(Ý˜%œ*¥hÔ&?Ñ@Ô@ð (Ø!×7Ò7¸ÀÄÑLÔL�
�
à"œZ�
àð -	Ø”=×-Ò-¨e°ZÑ@Ô@Ð@Øð +	Øð BØ7A�Ô! %§/¢/Ñ"3Ô"3Ñ4à4�E”MÔ4ØðØ!¨7ðð Ø6<ðð ˆEð ð *ð *Ø"' % %Ð)�à˜$×9Ò9Ø”×*Ò*¨5°*Ñ=Ô=ñô ñ ˆCð Ô.ð °5Ô3Hð Ø�vØ—I’Ið ð ð ð ð ð ð $)¤7ðñ ô ñ ô ññ �ð$ ð ˜U iÐ/Ð/Ø×0Ò0Ø˜ 	¨%Ô 0°&ñô �ð ˆJð 4�5”=Ô3Øðð Ø%ðØ)/ðð ð rÃ   c                ó(   — d|d<    | j         |fi |¤ŽS )NTr‡  ©r¬  )r  r‡  rÉ  s      rÁ   Úvisit_subqueryzSQLCompiler.visit_subqueryÏ  s&   € Øˆˆ:‰ØˆtÔ Ð/Ð/¨BÐ/Ð/Ð/rÃ   c                ó.   — d|d<   d | j         |fi |¤Žz  S )NTr²  z
LATERAL %sr¼  )r  Úlateral_rÉ  s      rÁ   r«  zSQLCompiler.visit_lateralÓ  s,   € Øˆˆ9‰ØÐ.˜dÔ.¨xÐ>Ð>¸2Ð>Ð>Ñ>Ð>rÃ   c                ó¬   —  | j         |fddi|¤Ž›d |                     ¦   «         j        | fi |¤Ž›�}|j        �|d |j        j        | fi |¤Žz  z  }|S )Nrx  Tz TABLESAMPLE z REPEATABLE (%s))r¬  Ú_get_methodrÓ  Úseed)r  Útablesamplerx  rÉ  rÔ  s        rÁ   Úvisit_tablesamplezSQLCompiler.visit_tablesample×  s’   € àˆDÔ˜[Ð<Ð<°Ð<¸Ð<Ð<Ð<Ð<Ø8ˆK×#Ò#Ñ%Ô%Ô8¸ÐDÐDÀÐDÐDÐDð
ˆð
 ÔÐ'ØÐ&Ø3�Ô Ô3°DÐ?Ð?¸BÐ?Ð?ññ ˆDð ˆrÃ   c                ó˜   ‡ ‡‡— ‰                      d‰j        ¦  «         d                     ˆˆˆ fd„‰j        D ¦   «         ¦  «        }d|› �S )Nr6  rÐ   c           	   3  óŠ   •K  — | ]=}|D ]8} ‰j         t          j        |d ‰j        iŽ                     ¦   «         fi ‰¤ŽV — Œ9Œ>dS )rÒ  N)r±  r   r   Ú_column_typesr  )r¿   ÚchunkÚelemrÇ  rÉ  r  s      €€€rÁ   r1  z-SQLCompiler._render_values.<locals>.<genexpr>æ  s“   øè è € ð 	
ð 	
ð Øð	
ð 	
ð ð ˆDŒLÝ”Ø26ðØ!Ô/ðð ç’*‘,”,ðð ð ð	ð ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
rÃ   r¸  )Ú
setdefaultr6  rx   Ú_data)r  rÇ  rÉ  Útupless   ``` rÁ   Ú_render_valueszSQLCompiler._render_valuesä  ss   øøø€ Ø
�Š�o wÔ'<Ñ=Ô=Ð=Ø—’ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð !œð	
ñ 	
ô 	
ñ 	
ô 	
ˆð "˜Ð!Ð!Ð!rÃ   c           
     óú  ‡ ‡—  ‰ j         |fi ‰¤Ž}|j        rd }nBt          |j        t          j        ¦  «        r‰                      d|j        ¦  «        }n|j        }|j        rd}nd}|r�|r |�|nd|j        | 	                    ¦   «         <   |rdd‰d<   |›d|›d‰  
                    ‰ j                             |¦  «        ¦  «        ›d	d
                     ˆˆ fd„|j        D ¦   «         ¦  «        ›d�}n|›d|›d�}|S )NrÁ  zLATERAL r–  z(unnamed VALUES element)Fr«  r  r  ú (rÐ   c              3  ó4   •K  — | ]} |j         ‰fi ‰¤ŽV — Œd S r  rÒ  r  s     €€rÁ   r1  z+SQLCompiler.visit_values.<locals>.<genexpr>  sL   øè è € ð "ð "à !ð 1˜AÔ0°Ð<Ð<¸Ð<Ð<ð"ð "ð "ð "ð "ð "rÃ   )rÍ  Ú_unnamedr¯  rù   r   rE   r—  rª  ry  r*   r–  rŸ  r³  rx   Úcolumns)r  rÇ  rx  rÛ  rÉ  rf  rù   r²  s   `   `   rÁ   Úvisit_valueszSQLCompiler.visit_valuesò  sg  øø€ ØˆDÔ Ð.Ð.¨2Ð.Ð.ˆàÔð 	 ØˆDˆDÝ˜œ¥hÔ&?Ñ@Ô@ð 	 Ø×-Ò-¨h¸¼ÑEÔEˆDˆDà”<ˆDàÔð 	Ø ˆGˆGàˆGàð 	,Øð à Ð,�D�DÐ2Lð Ô! '×"3Ò"3Ñ"5Ô"5Ñ6ð ð ,Ø&+��?Ñ#à�G�GØ�A�AØ×3Ò3°D´M×4GÒ4GÈÑ4MÔ4MÑNÔNÐNÐNàŸ	š	ð "ð "ð "ð "ð "à%,¤_ð"ñ "ô "ñ ô ð ð ð
��ð !(  ¨¨¨Ð+�ØˆrÃ   c                ó&   — d | j         |fi |¤Ž› d�S ru  )rÍ  rÀ  s      rÁ   Úvisit_scalar_valueszSQLCompiler.visit_scalar_values  s)   € Ø8Ð&�4Ô& wÐ5Ð5°"Ð5Ð5Ð8Ð8Ð8Ð8rÃ   c                ó   — d|z   S )NrÒ   r½   )r  Úalias_name_texts     rÁ   r–  z&SQLCompiler.get_render_as_alias_suffix  s   € Ø˜Ñ'Ð'rÃ   rø   rû   r  rü   r	  c                óÄ   — |sJ ‚|�|dk    rd| _         d| _        |j        rt          j        d¦  «        ‚| j                             t          ||||¦  «        ¦  «         d S )NÚ*FTzxMost backends don't support SELECTing from a tuple() object.  If this is an ORM query, consider using the Bundle object.)r8  r7  rÑ  r8   rã  rš  r¤  r÷   r  s        rÁ   rë  zSQLCompiler._add_to_result_map  s‡   € ð ˆˆˆwàˆ?˜g¨šn˜nØ$)ˆDÔ!Ø#'ˆDÔ ØÔð 	ÝÔ"ð4ñô ð ð
 	Ô×#Ò#Ý˜w¨¨g°uÑ=Ô=ñ	
ô 	
ð 	
ð 	
ð 	
rÃ   c                ó.   —  | j         d||d|€i n|fi |¤ŽS )aL  Render a column with necessary labels inside of a RETURNING clause.

        This method is provided for individual dialects in place of calling
        the _label_select_column method directly, so that the two use cases
        of RETURNING vs. SELECT can be disambiguated going forward.

        .. versionadded:: 1.4.21

        NF©Ú_label_select_column)r  rt  r“   rñ  Úcolumn_clause_argsrÉ  s         rÁ   Ú_label_returning_columnz#SQLCompiler._label_returning_column7  sC   € ð )ˆtÔ(ØØØØØ$Ð,ˆBˆBÐ2Dð
ð 
ð ð
ð 
ð 	
rÃ   c                óæ  ‡‡— ‰j                              | j        ¦  «        }|j        r|s|r|                     ‰¦  «        }n‰}|r| j        }|
r|Šˆfd„}n|‰ur|Šˆˆfd„}nd}|	s
J d¦   «         ‚t          ‰t          j        ¦  «        r'|‰urt          |‰j
        ‰j        f¬¦  «        }�n|}�n|r&|€
J d¦   «         ‚t          |||‰j        f¬¦  «        }nñ|‰urd}n•t          ‰t          j        ¦  «        r|o‰j         o‰j        du}ngt          ‰t          j        ¦  «        rd}nJt          ‰t          j        ¦  «        r
‰j        p|}n&t          ‰t          j        ¦  «        s
‰j        €d}nd}|rQ|s|
rJ ‚‰j        }t          |t          j        ¦  «        st          j        |¦  «        n|}t          |||f¬¦  «        }n|}|                     |	||¬	¦  «          |j        | fi |¤ŽS )
z.produce labeled columns present in a select().c                ó&   •—  ‰| || f|¦  «         d S r  r½   )rø   rù   rû   r  rë  s       €rÁ   r›  z;SQLCompiler._label_select_column.<locals>.add_to_result_mapr  s"   ø€ Ø&Ð& w°°w°jÀ%ÑHÔHÐHÐHÐHrÃ   c                ó,   •—  ‰| |‰f|z   |¦  «         d S r  r½   )rø   rù   rû   r  rë  r“   s       €€rÁ   r›  z;SQLCompiler._label_select_column.<locals>.add_to_result_mapz  s2   ø€ Ø&Ð&Ø ¨ y°7Ñ':¸Eñô ð ð ð rÃ   NzX_label_select_column is only relevant within the columns clause of a SELECT or RETURNING)rú  z*proxy_name is required if 'name' is passedTF)r�  r›  r«  )rý   r;  r¦  Ú_has_column_expressionÚcolumn_expressionrë  r¯  r   rI   rô  rù   rÇ  r±  rG   r°  rŽ   Ú
TextClauseÚUnaryExpressionÚwraps_column_expressionÚNamedColumnÚ_non_anon_labelÚ_anon_name_labelrE   rx  rÓ  )r  rš   r“   rñ  rx  rÝ  rù   r�  r‚  r�  Úcolumn_is_repeatedÚneed_column_expressionsr«  rB  Úcol_exprr›  Úresult_exprÚrender_with_labelrë  s     `               @rÁ   rÜ  z SQLCompiler._label_select_columnL  s/  øø€ ð  Œ{×'Ò'¨¬Ñ5Ô5ˆàÔ&ð 	Ø#ð	Ø':ð	ð ×-Ò-¨fÑ5Ô5ˆHˆHàˆHàð 	%ð
 !%Ô 7Ðð
 "ð Ø%6Ð"ðIð Ið Ið Ið Ið Ið
  Ð'Ð'Ø%6Ð"ðð ð ð ð ð øð !%Ðð %ð 	
ð 	
ð:ñ	
ô 	
Ð$õ �f�hœnÑ-Ô-ð \	'Ø˜vÐ%Ð%Ý+Ø˜fœk°f´nÐ5Fðñ ô �‘ð '�‘àð T	'ð Ð&Ð&Ø;ñ 'Ô&Ð&õ (ØØàð Ô$ððñ ô ˆKˆKð& ˜vÐ%Ð%ð %)Ð!Ð!Ý˜F¥HÔ$9Ñ:Ô:ð *ð ð 1Ø"Ô-Ð-ð1àœ¨DÐ0ð "Ð!õ
 ˜F¥HÔ$7Ñ8Ô8ð *Ø$)Ð!Ð!Ý˜F¥HÔ$<Ñ=Ô=ð *Ø$*Ô$BÐ$LÀfÐ!Ð!õ
 ˜v¥xÔ';Ñ<Ô<ð	*ð Ô*Ð2à$(Ð!Ð!à$)Ð!à ð 'Ø*ð Bð
  2Ð1Ð1Ð1Ø*0Ô*AÐ'õ &Ø+­XÔ-Fñô ð-•HÔ-Ð.AÑBÔBÐBð -ð $õ ,ØÐ1¸j¸]ðñ ô ��ð '�à×!Ò!Ø"7Ø/Ø'ð 	"ñ 	
ô 	
ð 	
ð
 .ˆ{Ô-¨dÐIÐIÐ6HÐIÐIÐIrÃ   c                óF   — |                       ||¦  «        }|r|d|z   z  }|S r  )Úget_from_hint_text)r  ro  rŽ   Úhintr±  Úhinttexts         rÁ   r¹  z!SQLCompiler.format_from_hint_textð  s2   € Ø×*Ò*¨5°$Ñ7Ô7ˆØð 	&Ø�s˜X‘~Ñ%ˆGØˆrÃ   c                ó   — d S r  r½   )r  Úbyfromss     rÁ   Úget_select_hint_textz SQLCompiler.get_select_hint_textö  ó   € ØˆtrÃ   c                ó   — d S r  r½   ©r  rŽ   rÔ  s      rÁ   rð  zSQLCompiler.get_from_hint_textù  rö  rÃ   c                ó   — d S r  r½   rø  s      rÁ   Úget_crud_hint_textzSQLCompiler.get_crud_hint_textü  rö  rÃ   c                ó,   — d                      |¦  «        S r  r  )r  Ú
hint_textss     rÁ   Úget_statement_hint_textz#SQLCompiler.get_statement_hint_textÿ  s   € Ø�xŠx˜
Ñ#Ô#Ð#rÃ   r  rç  r  r  c                ó  — | j          }|r| j        n| j         d         }|                     || ¦  «        }|d         }|d         }	|r-|s+|                     |                     |	¦  «        d¬¦  «        }
n|                     ||	¬¦  «        }
|
S )NrŒ  r  r  r½   ©Úexplicit_correlate_fromsÚimplicit_correlate_froms)r†  rç  rs  Ú_get_display_fromsÚ
difference)r  Úselect_stmtrx  r²  rÉ  rï  r�  r  r  r  ry  s              rÁ   Ú_display_froms_for_selectz%SQLCompiler._display_froms_for_select	  s¾   € ð ”z�>ˆØ-5ÐI�Ô)Ð)¸4¼:Àb¼>ˆà#×:Ò:¸;ÈÑMÔMˆàÐ 1Ô2ˆØ˜^Ô,ˆàð 	˜'ð 	Ø!×4Ò4Ø)8×)CÒ)CØ ñ*ô *ð *,ð	 5ñ ô ˆEˆEð "×4Ò4Ø)8Ø)5ð 5ñ ô ˆEð ˆrÃ   Útranslate_select_structurec	           
     óÌ  ‡ ‡‡‡‡‡‡— |�
J d¦   «         ‚d|	d<    ‰j         ‰‰ fi |	¤Ž}
|
j        |	d<   |
j        Š‰ j         }|r‰ j        s|
‰ _        |d up|}‰ j        r0 ‰ j        ‰fd‰i|	¤Ž}|‰ur|
}‰}|Š ‰j         ‰‰ fi |	¤Ž}
|
j        Š|r‰ j        n‰ j        d         }|p+|                     dd¦  «        p|                     dd¦  «        xŠŠ|rdŠ‰sd	|	v r|	d	= ‰                      ‰|
|‰||¦  «        }|	 	                    ¦   «         Š‰ 
                    ddd
œ¦  «         d}‰j        r#‰                      ‰¦  «        \  }}|r||dz   z  }nd }‰j        r‰                      ‰|	¦  «         ‰j        r| ‰ j        ‰‰j        fi |	¤Žz  }| ‰ j        ‰fi |	¤Žz  }d„ ˆˆˆˆˆˆ fd„|
j        D ¦   «         D ¦   «         }‰rU|�St'          t)          d„ |
j        D ¦   «         d„ |j        D ¦   «         ¦  «        ¦  «        Šˆfd„‰ j        D ¦   «         ‰ _        ‰                      |‰|
|||||	¦  «        }‰j        r0ˆ fd„‰j        D ¦   «         }|r|d‰                      |¦  «        z   z  }‰ j        r5|r|r1|st5          ‰ j        ¦  «        nd }‰                      |¬¦  «        |z   }‰j        r|d ‰ j        ‰‰j        fi |	¤Žz   z  }‰ j                             d¦  «         |S )NzpSQLAlchemy 1.4 requires use of the translate_select_structure hook for structural translations of SELECT objectsFr�  r¬  rx  rŒ  r  r  r›  )r–  r�  zSELECT r!  c                ó   — g | ]}|®|‘ŒS r  r½   r„  s     rÁ   r†  z,SQLCompiler.visit_select.<locals>.<listcomp>š  s)   € ð 
ð 
ð 
àð* ˆ}ð- ð, ˆ}ˆ}rÃ   c                óZ   •— g | ]'\  }}}}}‰                      ‰
|‰	‰‰||||‰¬ ¦
  «
        ‘Œ(S ))rù   r�  r‚  rê  rë  rÛ  )r¿   rù   r�  r‚  r“   rƒ  rx  rÝ  rë  rñ  r  r  s         €€€€€€rÁ   r†  z,SQLCompiler.visit_select.<locals>.<listcomp>œ  sm   ø€ ð ð ð ñØØØ'ØØð# ×)Ò)ØØØ'ØØ&ØØ)Ø(;Ø'/Ø,Cð *ñ ô ðð ð rÃ   c                ó   — g | ]
\  }}}}}|‘ŒS r½   r½   ©r¿   r0  r�  r‚  rù   rƒ  s         rÁ   r†  z,SQLCompiler.visit_select.<locals>.<listcomp>º  ó9   € ð 	ð 	ð 	ñØØ&Ø/Ø Ø$ð ð	ð 	ð 	rÃ   c                ó   — g | ]
\  }}}}}|‘ŒS r½   r½   r  s         rÁ   r†  z,SQLCompiler.visit_select.<locals>.<listcomp>Ä  r  rÃ   c           
     óp   •— g | ]2\  }}}}t          ||t          ˆfd „|D ¦   «         ¦  «        |¦  «        ‘Œ3S )c              3  óD   •K  — | ]}‰                      ||¦  «        V — Œd S r  r«  )r¿   Úork  s     €rÁ   r1  z6SQLCompiler.visit_select.<locals>.<listcomp>.<genexpr>Ó  s1   øè è € Ð$FÐ$F¸Q Y§]¢]°1°aÑ%8Ô%8Ð$FÐ$FÐ$FÐ$FÐ$FÐ$FrÃ   )r÷   r3  )r¿   r0  rù   rÏ  r  rk  s        €rÁ   r†  z,SQLCompiler.visit_select.<locals>.<listcomp>Ñ  sc   ø€ ð $ð $ð $ñ *�C˜˜s Eõ #Ø˜�uÐ$FÐ$FÐ$FÐ$FÀ#Ð$FÑ$FÔ$FÑFÔFÈñô ð$ð $ð $rÃ   c                ó:   •— g | ]\  }}|d ‰j         j        fv ¯|‘ŒS ©rÙ  ©r¦  rù   )r¿   Údialect_nameÚhtr  s      €rÁ   r†  z,SQLCompiler.visit_select.<locals>.<listcomp>ä  s<   ø€ ð ð ð á&�\ 2Ø C¨¬Ô):Ð#;Ð;Ð;ð à;Ð;Ð;rÃ   rå  )rs  Ú_ambiguous_table_name_mapr&  r†  r  r  rç  r¬  Ú_setup_select_stackrr  rx  Ú_hintsÚ_setup_select_hintsrè  ré  r“  r’  Úget_select_precolumnsÚcolumns_plus_namesrâ  rä  rš  Ú_compose_select_bodyÚ_statement_hintsrý  rJ  r²  rì  r”  r|  )r  r  rx  Úinsert_intory  rî  Úselect_wraps_forr²  rÛ  rÐ  r  rï  Úis_embedded_selectÚnew_select_stmtÚcompile_state_wraps_forr�  ry  rÔ  Ú	hint_textÚbyfromÚinner_columnsÚper_dialectræ  rÝ  rë  rñ  rk  s   ```                    @@@@rÁ   Úvisit_selectzSQLCompiler.visit_select-  s	  øøøøøøø€ ð  Ð'Ð'ð-ñ (Ô'Ð'ð +0ˆÐ&Ñ'à:˜Ô:Ø˜ð
ð 
Ø!'ð
ð 
ˆð Ô3ð 	Ð)Ñ*ð $Ô-ˆà”z�>ˆàð 	/˜DÔ.ð 	/Ø!.ˆDÔà+°4Ð7ÐF¸;Ðð
 Ô*ð 	6Ø=˜dÔ=Øðð Ø$*ðØ.4ðð ˆOð  kÐ1Ð1Ø*7Ð'Ø#.Ð Ø-�à B Ô BØ ð!ð !Ø)/ð!ð !�ð ,Ô5�à-5ÐI�Ô)Ð)¸4¼:Àb¼>ˆð ð >Ø�yŠyÐ7¸Ñ?Ô?ð>à�yŠyÐ5°uÑ=Ô=ð	
ÐÐ5ð ð 	(Ø"'Ðð
 #ð 	,Ð':¸fÐ'DÐ'DØÐ*Ð+à×(Ò(Ø˜¨¨v°wÀñ
ô 
ˆð $Ÿ[š[™]œ]ÐØ×!Ò!Ø$)ÀEÐJÐJñ	
ô 	
ð 	
ð ˆàÔð 	Ø $× 8Ò 8¸Ñ EÔ EÑˆI�vØð (Ø˜	 C™Ñ'�øàˆFàÔ(ð 	AØ×+Ò+¨K¸Ñ@Ô@Ð@àÔ ð 	ØÐ+�DÔ+Ø˜[Ô2ðð Ø6<ðð ñ ˆDð 	Ð*�Ô*¨;ÐAÐA¸&ÐAÐAÑAˆð
ð 
ðð ð ð ð ð ð ð ð ð& #Ô5ð'ñ ô ð
ñ 
ô 
ˆð4 ð "	Ð#3Ð#?õ Ýð	ð 	ð +Ô=ð	ñ 	ô 	ð	ð 	ð 5ÔGð	ñ 	ô 	ñô ñô ˆIð2$ð $ð $ð $ð .2Ô-Að	$ñ $ô $ˆDÔ ð ×(Ò(ØØØØØØØØñ	
ô 	
ˆð Ô'ð 	Hðð ð ð à*5Ô*Fðñ ô ˆKð
 ð HØ˜˜d×:Ò:¸;ÑGÔGÑGÑG�ð Œ9ð 	OÐ0ð 	O°Hð 	OØ3;ÐE�C ¤
™OœO˜OÀˆMØ×*Ò*¸Ð*ÑGÔGÈ$ÑNˆDàÔ ð 	Ø�CÐ1˜$Ô1Ø˜[Ô2ðð Ø6<ðð ñ ñ ˆDð 	Œ
�Š�rÑÔÐàˆrÃ   rš   r!  úTuple[str, _FromHintsType]c                ó€   ‡ — ˆ fd„|j                              ¦   «         D ¦   «         }‰                      |¦  «        }||fS )Nc           	     óv   •— i | ]5\  \  }}}|d ‰j         j        fv ¯||d|                     ‰d¬¦  «        iz  “Œ6S )rÙ  rù   T)rx  ©r¦  rù   rÓ  )r¿   r�  r¦  rò  r  s       €rÁ   r`  z3SQLCompiler._setup_select_hints.<locals>.<dictcomp>ý  sh   ø€ ð 
ð 
ð 
ñ +Ñ �˜ (Ø˜3 ¤Ô 1Ð2Ð2Ð2ð �8Ø�u×/Ò/°¸TÐ/ÑBÔBÐCñDð 3Ð2Ð2rÃ   )r  ry  rõ  )r  rš   r$  r#  s   `   rÁ   r  zSQLCompiler._setup_select_hintsú  s[   ø€ ð
ð 
ð 
ð 
ð /5¬m×.AÒ.AÑ.CÔ.Cð
ñ 
ô 
ˆð ×-Ò-¨fÑ5Ô5ˆ	Ø˜&Ð Ð rÃ   c           	     ó.  — |d         }|d         }|dk    r||d<   nf|rd|d         }	t          |	j        ¦  «        }
t          |j        ¦  «        |
k    r0t          j        dd|
|dz   t          |j        ¦  «        fz  ¦  «        ‚|r-|s+|                     |                     |¦  «        d¬¦  «        }n|                     ||¬¦  «        }t          t          |Ž ¦  «        }| 	                    |¦  «        }||||d	œ}| j
                             |¦  «         |S )
Nr  r  r   r   z}All selectables passed to CompoundSelect must have identical numbers of columns; select #%d has %d columns, select #%d has %dr   r½   rÿ  )r  r  r$   r  )r²  r‡  r  r8   rã  r  r  rp   r+   r�   r†  r¤  )r  rš   r  r�  rx  r²  rî  r  r  r   Únumcolsry  Únew_correlate_fromsÚall_correlate_fromsrð  s                  rÁ   r  zSQLCompiler._setup_select_stack  su  € ð  Ð 1Ô2ˆØ˜^Ô,ˆà˜QÒÐØ &ˆE�*ÑÐØð 	Ø˜ZÔ(ˆHÝ˜(Ô8Ñ9Ô9ˆGå�=Ô3Ñ4Ô4¸Ò?Ð?ÝÔ&ð!ð
 ØØ&¨Ñ*Ý˜FÔ8Ñ9Ô9ð	ñ		ñô ð ð ð 	˜'ð 	Ø!×4Ò4Ø)8×)CÒ)CØ ñ*ô *ð *,ð	 5ñ ô ˆEˆEð "×4Ò4Ø)8Ø)5ð 5ñ ô ˆEõ
 "¥-°Ð"7Ñ8Ô8ÐØ1×7Ò7¸ÑHÔHÐð 0Ø2Ø Ø*ð	*
ð *
ˆ	ð 	Œ
×Ò˜)Ñ$Ô$Ð$àˆrÃ   c	                ój  ‡ ‡‡‡— |d                      |¦  «        z  }‰ j        t          z  r5t          i t	          ¦   «         ¦  «        Š‰ j        t
          z  }	|r‰‰ _        nd Šd}	|s|                     ¦   «         }|r[|dz  }|j        r(|d                      ˆˆˆˆ fd„|D ¦   «         ¦  «        z  }n>|d                      ˆˆˆ fd„|D ¦   «         ¦  «        z  }n|‰  	                    ¦   «         z  }|j
        r ‰ j        |j
        fd‰i‰¤Ž}
|
r|d|
z   z  }|	r‰€J ‚‰                     ¦   «          |j        r| ‰ j        |fi ‰¤Žz  }|j        r ‰ j        |j        fi ‰¤Ž}
|
r|d|
z   z  }|j        r| ‰ j        |fi ‰¤Žz  }|j        r| ‰ j        |fi ‰¤Žz  }|j        �| ‰ j        |fi ‰¤Žz  }|S )	NrÐ   Fz 
FROM c           	     ó4   •— g | ]} |j         ‰fd ‰‰dœ‰¤Ž‘ŒS )T)rx  ry  rÛ  rÒ  )r¿   Úfr$  rÛ  rÐ  r  s     €€€€rÁ   r†  z4SQLCompiler._compose_select_body.<locals>.<listcomp>_  sZ   ø€ ð 	ð 	ð 	ð ð -˜Ô,Ø ðà#'Ø&,Ø(3ð	ð ð
 %ðð ð	ð 	ð 	rÃ   c                ó2   •— g | ]} |j         ‰fd ‰dœ‰¤Ž‘ŒS )T©rx  rÛ  rÒ  )r¿   r2  rÛ  rÐ  r  s     €€€rÁ   r†  z4SQLCompiler._compose_select_body.<locals>.<listcomp>l  sW   ø€ ð ð ð ð ð -˜Ô,Ø ðà#'Ø(3ðð ð %ð	ð ðð ð rÃ   rÛ  z 
WHERE z	 
HAVING )rx   rX  rl  rp  rp   rm  rÛ  Úrstripr  rh  Ú_where_criteriar  r�  Ú_group_by_clausesrw  Ú_having_criteriaÚ_order_by_clausesrx  ry  rz  Ú_for_update_argÚfor_update_clause)r  rÔ  rš   r  r%  ry  r$  rï  rÐ  Úwarn_lintingÚtrÛ  s   `     ` `  @rÁ   r  z SQLCompiler._compose_select_body:  sÈ  øøøø€ ð 	�—	’	˜-Ñ(Ô(Ñ(ˆàŒ<Õ4Ñ4ð 	!Ý$ R­©¬Ñ/Ô/ˆKØœ<­,Ñ6ˆLØð /Ø#.�Ô øàˆKØ ˆLð ð 	!Ø—;’;‘=”=ˆDàð 	(Ø�JÑˆDàŒ}ð Ø˜Ÿ	š	ð	ð 	ð 	ð 	ð 	ð 	ð 	ð "'ð	ñ 	ô 	ñô ñ ��ð ˜Ÿ	š	ðð ð ð ð ð ð "'ðñ ô ñ
ô 
ñ 
��ð �D×%Ò%Ñ'Ô'Ñ'ˆDàÔ!ð 	(Ø1�Ô1ØÔ&ðð Ø4?ðØCIðð ˆAð ð (Ø˜ a™Ñ'�àð 	ØÐ*Ð*Ð*Ø×ÒÑÔÐàÔ#ð 	;ØÐ(�DÔ(¨Ð:Ð:°6Ð:Ð:Ñ:ˆDàÔ"ð 	)Ø1�Ô1ØÔ'ðð Ø+1ðð ˆAð ð )Ø˜ qÑ(Ñ(�àÔ#ð 	;ØÐ(�DÔ(¨Ð:Ð:°6Ð:Ð:Ñ:ˆDàÔ*ð 	=ØÐ*�DÔ*¨6Ð<Ð<°VÐ<Ð<Ñ<ˆDàÔ!Ð-ØÐ*�DÔ*¨6Ð<Ð<°VÐ<Ð<Ñ<ˆDàˆrÃ   c                ó\   ‡ ‡— d                      ˆˆ fd„|D ¦   «         ¦  «        }|r|dz  }|S )Nr!  c              3  ób   •K  — | ])\  }}|d v s|‰j         j        k    ¯ |j        ‰fi ‰¤ŽV — Œ*dS ))NrÙ  Nr+  )r¿   Úprefixr  rÉ  r  s      €€rÁ   r1  z1SQLCompiler._generate_prefixes.<locals>.<genexpr>š  sb   øè è € ð 
ð 
á$�˜Ø˜{Ð*Ð*¨l¸d¼lÔ>OÒ.OÐ.Oð &ˆFÔ% dÐ1Ð1¨bÐ1Ð1à.OÐ.OÐ.OÐ.Oð
ð 
rÃ   r  )r  rt  r§  rÉ  r+  s   `  ` rÁ   r’  zSQLCompiler._generate_prefixes™  sZ   øø€ Ø—’ð 
ð 
ð 
ð 
ð 
à(0ð
ñ 
ô 
ñ 
ô 
ˆð
 ð 	Ø�c‰MˆFØˆrÃ   c                ó0  — | j         sdS |rš|dk    r”t          j        ¦   «         }t          | j                              ¦   «         ¦  «        D ]Y}| j        |                     ¦   «                  \  }}}|j        p|j        }||k    p
|o||dz   k    }	|r|	sŒI| j         |         ||<   ŒZn| j         }|sdS t          d„ |D ¦   «         ¦  «        }
|  	                    |
¦  «        dz   }|d 
                    d„ |                     ¦   «         D ¦   «         ¦  «        z  }|dz  }|ry|dk    rst          |                     ¦   «         ¦  «        D ]Q}| j        |                     ¦   «                  \  }}}| j         |= | j        ||f= | j        |                     ¦   «         = ŒR|S )zå
        include_following_stack
            Also render the nesting CTEs on the next stack. Useful for
            SQL structures like UNION or INSERT that can wrap SELECT
            statements containing nesting CTEs.
        r–  r   c                ó   — g | ]	}|j         ‘Œ
S r½   )r�  )r¿   rv  s     rÁ   r†  z2SQLCompiler._render_cte_clause.<locals>.<listcomp>Ç  s   € Ð<Ð<Ð<°˜cœmÐ<Ð<Ð<rÃ   r!  ú, 
c                ó   — g | ]}|‘ŒS r½   r½   )r¿   Útxts     rÁ   r†  z2SQLCompiler._render_cte_clause.<locals>.<listcomp>Ê  s   € Ð >Ð >Ð >¨ Ð >Ð >Ð >rÃ   z
 )rJ  r&   r˜  r‘  ÚkeysrL  rˆ  r‰  rh   Úget_cte_preamblerx   rÁ  rK  )r  ræ  rr  rJ  rv  rœ  r˜  rq  r‰  Úis_rendered_levelrM  Úcte_texts               rÁ   rì  zSQLCompiler._render_cte_clause£  sí  € ð Œyð 	Ø�2ð ð 	˜]¨QÒ.Ð.ÝÔ#Ñ%Ô%ˆDÝ˜DœIŸNšNÑ,Ô,Ñ-Ô-ð +ð +�Ø04Ô0FØ×*Ò*Ñ,Ô,ô1Ñ-�	˜8 Xð œ+Ð9¨Ô)9�Ø$-°Ò$>ð %Ø+ÐN°	¸]ÈQÑ=NÒ0Nð "ð  ð Ð$5ð Øà œI cœN��S‘	�	ð+ð ”9ˆDàð 	Ø�2ÝÐ<Ð<°tÐ<Ñ<Ô<Ñ=Ô=ˆà×(Ò(¨Ñ8Ô8¸3Ñ>ˆØ�F—K’KÐ >Ð >°·²±´Ð >Ñ >Ô >Ñ?Ô?Ñ?ˆØ�EÑˆàð 	E˜]¨QÒ.Ð.Ý˜DŸIšI™KœKÑ(Ô(ð Eð E�Ø04Ô0FØ×*Ò*Ñ,Ô,ô1Ñ-�	˜8 Xð ”I˜c�NØÔ+¨Y¸Ð,AÐBØÔ*¨3×+AÒ+AÑ+CÔ+CÐDÐDàˆrÃ   c                ó   — |rdS dS )NzWITH RECURSIVEÚWITHr½   )r  r�  s     rÁ   rG  zSQLCompiler.get_cte_preambleØ  s   € Øð 	Ø#Ð#à�6rÃ   c                óR   — |j         rt          j        dd¬¦  «         |j        rdndS )zcCalled when building a ``SELECT`` statement, position is just
        before column list.

        a  DISTINCT ON is currently supported only by the PostgreSQL dialect.  Use of DISTINCT ON for other backends is currently silently ignored, however this usage is deprecated, and will raise CompileError in a future release for all backends that do not support this syntax.z1.4©ÚversionrÔ   r–  )Ú_distinct_onr&   Úwarn_deprecatedÚ	_distinct©r  rš   rÉ  s      rÁ   r  z!SQLCompiler.get_select_precolumnsÞ  sG   € ð
 Ôð 	ÝÔ ð3ð
 ðñ ô ð ð %Ô.Ð6ˆ{ˆ{°BÐ6rÃ   c                óf   —  | j         |j        t          t          j                 fi |¤Ž}|rd|z   S dS )z5allow dialects to customize how GROUP BY is rendered.z
 GROUP BY r–  )r	  r7  r˜  r!   Úcomma_op)r  rš   rÉ  Úgroup_bys       rÁ   rw  zSQLCompiler.group_by_clauseî  sO   € ð 1�4Ô0ØÔ$¥iµ	Ô0BÔ&Cð
ð 
ØGIð
ð 
ˆð ð 	Ø (Ñ*Ð*à�2rÃ   c                óf   —  | j         |j        t          t          j                 fi |¤Ž}|rd|z   S dS )z5allow dialects to customize how ORDER BY is rendered.z
 ORDER BY r–  )r	  r9  r˜  r!   rT  )r  rš   rÉ  rD  s       rÁ   rx  zSQLCompiler.order_by_clauseù  sO   € ð 1�4Ô0ØÔ$¥iµ	Ô0BÔ&Cð
ð 
ØGIð
ð 
ˆð ð 	Ø (Ñ*Ð*à�2rÃ   c                ó   — dS )Nz FOR UPDATEr½   rR  s      rÁ   r;  zSQLCompiler.for_update_clause  s   € Øˆ}rÃ   rt  rC   Úreturning_colsúSequence[ColumnElement[Any]]rñ  c               óª   ‡ ‡‡‡— ˆˆˆ ˆfd„‰                      dt          j        |¦  «        ¬¦  «        D ¦   «         }dd                     |¦  «        z   S )Nc           
     óF   •— g | ]\  }}}}} ‰j         ‰	|‰f||||d œ‰¤Ž‘ŒS ))r‚  rê  rù   r�  )rÞ  )
r¿   rù   r�  r‚  r“   rƒ  rÉ  rñ  r  rt  s
         €€€€rÁ   r†  z0SQLCompiler.returning_clause.<locals>.<listcomp>  st   ø€ ð 
ð 
ð 
ñØØØ#ØØð )ˆDÔ(ØØØ#ð	ð %8Ø#+ØØ%ð	ð 	ð ð	ð 	ð
ð 
ð 
rÃ   T)Úcolsú
RETURNING rÐ   )r‘  r   Ú_select_iterablesrx   ©r  rt  rX  rñ  rÉ  rÒ  s   `` `` rÁ   Úreturning_clausezSQLCompiler.returning_clause  s}   øøøø€ ð
ð 
ð 
ð 
ð 
ð 
ð 
ð" ×2Ò2Ø�4Ô1°.ÑAÔAð 3ñ ô ð#
ñ 
ô 
ˆð, ˜dŸiši¨Ñ0Ô0Ñ0Ð0rÃ   c                ó¢   — d}|j         �|d | j        |j         fi |¤Žz   z  }|j        �%|j         €|dz  }|d | j        |j        fi |¤Žz   z  }|S )Nr–  z
 LIMIT z

 LIMIT -1z OFFSET )Ú_limit_clauser±  Ú_offset_clause)r  rš   rÉ  rÔ  s       rÁ   r‚  zSQLCompiler.limit_clause(  s}   € ØˆØÔÐ+Ø�K , $¤,¨vÔ/CÐ"JÐ"JÀrÐ"JÐ"JÑJÑJˆDØÔ Ð,ØÔ#Ð+Ø˜Ñ%�Ø�J  ¤¨fÔ.CÐ!JÐ!JÀrÐ!JÐ!JÑJÑJˆDØˆrÃ   c                ó˜  — |€|j         }|j        }ndddœ}d}|j        �I|j        }|r)|                     |¦  «        r|                     ¦   «         } | j        |fi |¤Ž}	|d|	z  z  }n|r|dz  }|�X|r)|                     |¦  «        r|                     ¦   «         }|d | j        |fi |¤Ž›|d         rdnd›d	|d
         rdnd›�z  }|S )NF)rü  Ú	with_tiesr–  z
 OFFSET %s ROWSz
 OFFSET 0 ROWSz
 FETCH FIRST rü  z PERCENTz ROWS re  z	WITH TIESÚONLY)r€  Ú_fetch_clause_optionsrc  Ú_simple_int_clauseÚrender_literal_executer±  )
r  rš   r�  Úrequire_offsetÚ"use_literal_execute_for_simple_intrÉ  Úfetch_clause_optionsrÔ  Úoffset_clauseÚ
offset_strs
             rÁ   r�  zSQLCompiler.fetch_clause2  sI  € ð ÐØ!Ô/ˆLØ#)Ô#?Ð Ð à/4À5Ð#IÐ#IÐ àˆàÔ Ð,Ø"Ô1ˆMà2ðGà×-Ò-¨mÑ<Ô<ðGð !.× DÒ DÑ FÔ F�Ø%˜œ mÐ:Ð:°rÐ:Ð:ˆJØÐ'¨*Ñ4Ñ4ˆDˆDØð 	'ØÐ&Ñ&ˆDàÐ#à2ðEà×-Ò-¨lÑ;Ô;ðEð  ,×BÒBÑDÔD�ØˆDØ�”˜\Ð0Ð0¨RÐ0Ð0Ð0Ø2°9Ô=ÐE�
�
À2ÐEÐEØ3°KÔ@ÐL��ÀfÐLðñ ˆDð
 ˆrÃ   c	                ó2  — |r|j         |j        |<   |s|�r | j                             |¦  «        }
|r@|
r>| j                             |
¦  «        dz   | j                             |j        ¦  «        z   }n~| j                             |j        ¦  «        }|
s]|r[|j        |v rR|                      d||j                 ¦  «        }||                      | j         	                    d |¦  «        ¦  «        z   }|r"||v r|  
                    ||||         |¦  «        }|S dS )Nr  r¯  r–  )Úfullnamery  rŸ  rµ  r¶  r³  rù   r—  r–  r�  r¹  )r  rŽ   rx  r±  rx  ry  Ú
use_schemarÛ  r¬  rÐ  r¹  r^  Ú	anon_names                rÁ   Úvisit_tablezSQLCompiler.visit_table[  s`  € ð ð 	6Ø',¤~ˆKÔ˜eÑ$àð 	�Vñ 	Ø#œ}×>Ò>¸uÑEÔEÐàð Ð.ð à”M×.Ò.Ð/?Ñ@Ô@Øñà”m×)Ò)¨%¬*Ñ5Ô5ñ6ð �ð ”m×)Ò)¨%¬*Ñ5Ô5�ð )ðà0ðð œ
Ð&>Ð>Ð>à $× :Ò :ØÐ!9¸%¼*Ô!Eñ!ô !�Ið  × ?Ò ?Øœ×2Ò2°4¸ÑCÔCñ!ô !ñ �Cð ð ˜U iÐ/Ð/Ø×0Ò0Ø˜ 	¨%Ô 0°&ñô �ð ˆJà�2rÃ   c                óz  — |r[|j                              t          j        t	          |j        j        ¦  «        t	          |j        j        ¦  «        ¦  «        ¦  «         |j        rd}n|j	        rd}nd} |j        j
        | fd|dœ|¤Ž|z    |j        j
        | fd|dœ|¤Žz   dz    |j        j
        | fd|i|¤Žz   S )Nz FULL OUTER JOIN z LEFT OUTER JOIN z JOIN Tr4  ú ON rÛ  )rz  rx  r¿  rÞ  r*   ry   r+   r�   rv   ÚisouterrÓ  Úonclause)r  rx   rx  rÛ  rÐ  Ú	join_types         rÁ   Ú
visit_joinzSQLCompiler.visit_join‹  s-  € Øð 	ØÔ×$Ò$ÝÔ!Ý˜dœiÔ5Ñ6Ô6Ý˜dœjÔ6Ñ7Ô7ñô ñô ð ð Œ9ð 	!Ø+ˆIˆIØŒ\ð 	!Ø+ˆIˆIà ˆIà(ˆDŒIÔ(ØðØ!¨{ðð Ø>Dðð ð ñð ,ˆdŒjÔ+ØðØ!¨{ðð Ø>Dðð ñ	ð ñð /ˆdŒmÔ.Øðð Ø"-ðØ17ðð ñð	
rÃ   c                ó¸   ‡ — ˆ fd„|j                              ¦   «         D ¦   «         }|j        |v r(‰                      ||j        ||j                 d¦  «        }||fS )Nc                óB   •— i | ]\  \  }}}|d ‰j         j        fv ¯||“ŒS r  r  )r¿   rŽ   r¦  r#  r  s       €rÁ   r`  z1SQLCompiler._setup_crud_hints.<locals>.<dictcomp>ª  sC   ø€ ð 
ð 
ð 
á+Ñ �˜ )Ø˜3 ¤Ô 1Ð2Ð2Ð2ð �9à2Ð2Ð2rÃ   T)r  ry  rŽ   r¹  )r  rt  Ú
table_textÚdialect_hintss   `   rÁ   Ú_setup_crud_hintszSQLCompiler._setup_crud_hints©  s|   ø€ ð
ð 
ð 
ð 
à/3¬{×/@Ò/@Ñ/BÔ/Bð
ñ 
ô 
ˆð
 Œ:˜Ð&Ð&Ø×3Ò3Ø˜DœJ¨°d´jÔ(AÀ4ñô ˆJð ˜jÐ(Ð(rÃ   rŽ   rK   rC  c                óD  — | j         j        }|j        }|j        }|€dS |j        r!| j                             |j        d¦  «        }n | j                             |j        d¦  «        }||z  r|S |j	        r+t          j        d|d         › d| j         j        › d�¦  «        ‚dS )a)  given a :class:`.Table`, return a usable sentinel column or
        columns for this dialect if any.

        Return None if no sentinel columns could be identified, or raise an
        error if a column was marked as a sentinel explicitly but isn't
        compatible with this dialect.

        Nr   zColumn z@ can't be explicitly marked as a sentinel column when using the a�   dialect, as the particular type of default generation on this column is not currently compatible with this dialect's specific INSERT..RETURNING syntax which can receive the server-generated value in a deterministic way.  To remove this error, remove insert_sentinel=True from primary key autoincrement columns; these columns are automatically used as sentinels for supported dialects in any case.)r¦  Ú"insertmanyvalues_implicit_sentinelÚ _sentinel_column_characteristicsrÒ  Ú
is_autoincÚ_sentinel_col_autoinc_lookupr¬  Údefault_characterizationÚ _sentinel_col_non_autoinc_lookupÚis_explicitr8   r2  rù   )r  rŽ   Úsentinel_optsÚsentinel_characteristicsÚ	sent_colsÚbitmasks         rÁ   Ú_get_sentinel_column_for_tablez*SQLCompiler._get_sentinel_column_for_tableÕ  sé   € ð œÔGˆØ#(Ô#IÐ à,Ô4ˆ	àÐØ�4à#Ô.ð 	ØÔ7×;Ò;Ø(ÔAÀ1ñô ˆGˆGð Ô;×?Ò?Ø(ÔAÀ1ñô ˆGð ˜7Ñ"ð 	ØÐà#Ô/ð 	õ Ô)ð
@˜) Aœ,ð 
@ð 
@à”<Ô$ð
@ð 
@ð 
@ñô ð ð ˆtrÃ   rX   Úcompiled_parametersú%List[_MutableCoreSingleExecuteParams]Úgeneric_setinputsizesrM  Ú
batch_sizer?  rA  rœ  r›  ú Iterator[_InsertManyValuesBatch]c              #  ó–  ‡ ‡‡‡1‡2‡3‡4‡5‡6‡7‡8‡9‡:K  — ‰ j         }|€J ‚|j        sd Š1nt          j        |j        Ž Š1t	          ‰¦  «        }	|j        r‰ j        j        sd}
d}n,‰ j        j        r|r‰ j	        r|j
        �|j        rd}
d}nd}
d}|
r`t          t          dt          ‰|¦  «        ¦  «        d¦  «        D ]1\  }\  Š9}t          |‰9‰‰9g‰1r ‰1|¦  «        gng d||	||¦
  «
        V — Œ2d S |r!t!          j        ‰ j        j        |¬¦  «        Š:nd Š:|j        }‰:r ‰:|¦  «        }d|› d�}|                     |d¦  «        }‰ j        j        }|rCt	          ‰ j        ¦  «        }t	          |j        ¦  «        }||z
  }t3          |||z
  |z  ¦  «        }t          d	t5          ‰¦  «        ¦  «        }t          d	t5          |¦  «        ¦  «        }d }d}|	|z  |	|z  rdnd
z   }|j        }|€J ‚‰:rˆ:fd„|D ¦   «         }d
xŠ6Š7‰ j        s¤‰ j        r‰ j        Š4ni Š4t;          ‰d
         ¦  «        }ˆ4ˆ fd„Š3|j        rd}nd}dd                     ˆ3fd„|D ¦   «         ¦  «        › |› d�}|                      ˆ4fd„|D ¦   «         ¦  «        }ˆfd„| !                    |¦  «        D ¦   «         }dŠ5nód}t;          ¦   «         }i }|j        rd|› d�Š5nd|› d�Š5t;          ¦   «         Š2|j        D ]}‰2 "                    |d         ¦  «         Œ‰2r_‰ j#        }|€J ‚ˆ2fd„t          |¦  «        D ¦   «         } t3          | ¦  «        Š6tI          | ¦  «        dz   Š7t	          | ¦  «        ‰7‰6z
  k    sJ ‚‰ j%        r2tM          j'        ‰ j(        ¦  «        }!tM          j)        |!› d�d‰5¦  «        Š5|�r©|d
|…         }"|d
|…         }#g |d
|…<   g |d
|…<   |r|}$nt	          |"¦  «        }$‰r%d„ ˆfd„tU          |$¦  «        D ¦   «         D ¦   «         }‰ j        �r8|j+        }%|%t	          |"d
         ¦  «        k    rdx}&}'|"}(n/|"d
         d ‰6…         }&|"d
         ‰7d …         }'ˆ6ˆ7fd„|"D ¦   «         }(|j        r7d                     ˆ5fd„t          |"¦  «        D ¦   «         ¦  «        d d…         })n‰5|$z  d d…         })‰ j%        rE|%d
k    r?|'rJ ‚‰6dz   }*|%|$z  |*z   }+tY          ˆ fd„tU          |*|+¦  «        D ¦   «         ¦  «        },|)|,z  })|                     d|)¦  «        }-tY          tZ          j.         /                    |(¦  «        ¦  «        }.|&|.z   |'z   }.nØg }/| 0                    ¦   «         }.t          |"¦  «        D ]‰\  Š8Š9|                     d tc          ‰8¦  «        ¦  «        }0|j        r#|0                     d!tc          ‰8¦  «        ¦  «        }0|/ 2                    |0¦  «         |. "                    ˆ8ˆ9fd"„|D ¦   «         ¦  «         ŒŠ|                     dd                     |/¦  «        ¦  «        }-t          |-|.||"‰1rˆ1fd#„|#D ¦   «         ng |$|||d¦
  «
        V — |dz  }|�°§d S d S )$NTFzKSequence[Tuple[_DBAPISingleExecuteParams, _MutableCoreSingleExecuteParams]]r   ©rœ  r  r  Ú__EXECMANY_TOKEN__zList[Sequence[Any]]r   c                ó8   •— g | ]\  }}}}|| ‰|¦  «        |f‘ŒS r½   r½   )r¿   rù  r0  r  ÚstÚrsts        €rÁ   r†  zASQLCompiler._deliver_insertmanyvalues_batches.<locals>.<listcomp>‘  sB   ø€ ð "ð "ð "á&�C˜˜d Bð �c˜3˜3˜t™9œ9 bÐ)ð"ð "ð "rÃ   c                ó˜   •— | D ]E}‰                      ||¦  «        }|                     ‰j        d|iz  ‰j        d|› d�iz  ¦  «        }ŒF|S )Nrù   Ú__EXECMANY_INDEX__)r¬  rÒ  r3  )rF  Ú	formattedr0  rE  r  s      €€rÁ   Úapply_placeholderszISQLCompiler._deliver_insertmanyvalues_batches.<locals>.apply_placeholders¡  sq   ø€ Øð ð �CØ,×0Ò0°°cÑ:Ô:�CØ )× 1Ò 1ØÔ)¨V°S¨MÑ9ØÔ)Ø! cÐ#=Ð#=Ð#=Ð>ñ?ñ!ô !�I�Ið
 !Ð rÃ   z, _IMV_VALUES_COUNTERr–  rÐ   c              3  ó:   •K  — | ]\  }}}} ‰||¦  «        V — Œd S r  r½   )r¿   r  r™  Ú	bind_keysrš  s       €rÁ   r1  z@SQLCompiler._deliver_insertmanyvalues_batches.<locals>.<genexpr>¯  sL   øè è € ð 6ð 6á.�A�q˜) Yð #Ð" 9¨iÑ8Ô8ð6ð 6ð 6ð 6ð 6ð 6rÃ   c              3  óX   •K  — | ]$\  }}}}|D ]}‰                      ||¦  «        V — ŒŒ%d S r  r«  )r¿   r  rœ  r0  rE  s       €rÁ   r1  z@SQLCompiler._deliver_insertmanyvalues_batches.<locals>.<genexpr>´  sf   øè è € ð 4ð 4á&�A�q˜!˜YØ$ð4ð 4ð ð #×&Ò& s¨CÑ0Ô0ð4ð 4ð 4ð 4ð 4ð 4ð 4rÃ   c                ó.   •— i | ]}|‰d          |         “ŒS )r   r½   )r¿   r0  r'  s     €rÁ   r`  zASQLCompiler._deliver_insertmanyvalues_batches.<locals>.<dictcomp>¹  s4   ø€ ð ð ð àð �Z ”] 3Ô'ðð ð rÃ   z, _IMV_VALUES_COUNTER), z), r  c                ó"   •— h | ]\  }}|‰v ¯	|’ŒS r½   r½   )r¿   r[  rù   Úall_names_we_will_expands      €rÁ   rÂ   z@SQLCompiler._deliver_insertmanyvalues_batches.<locals>.<setcomp>Ö  s3   ø€ ð (ð (ð (á!˜˜TØÐ7Ð7Ð7ð à7Ð7Ð7rÃ   z\d+r   c                ó    — g | ]\  }}}|||f‘ŒS r½   r½   )r¿   Únew_keyÚlen_ró  s       rÁ   r†  zASQLCompiler._deliver_insertmanyvalues_batches.<locals>.<listcomp>ø  s5   € ð +ð +ð +á*˜  sð ˜d CÐ(ð+ð +ð +rÃ   c              3  ó>   •K  — | ]}‰D ]\  }}}|› d |› �||fV — ŒŒdS )r  Nr½   )r¿   rx  r0  r£  ró  rŽ  s        €rÁ   r1  z@SQLCompiler._deliver_insertmanyvalues_batches.<locals>.<genexpr>ú  si   øè è € ð /ð /à!Ø.Cð/ð /ñ +˜C  sð  Ð)Ð) %Ð)Ð)¨4°Ð5ð/ð /ð /ð /ð /ð /ð /rÃ   r½   c              3  ó,   •K  — | ]}|‰‰…         V — Œd S r  r½   )r¿   r_  Úexpand_pos_lower_indexÚexpand_pos_upper_indexs     €€rÁ   r1  z@SQLCompiler._deliver_insertmanyvalues_batches.<locals>.<genexpr>  sC   øè è € ð &ð &àð Ð0Ð1GÐGÔHð&ð &ð &ð &ð &ð &rÃ   c              3  ód   •K  — | ]*\  }}‰                      d t          |¦  «        ¦  «        V — Œ+dS )Ú_IMV_VALUES_COUNTERN)rÒ  r¾   )r¿   r  r  Úexecutemany_values_w_commas      €rÁ   r1  z@SQLCompiler._deliver_insertmanyvalues_batches.<locals>.<genexpr>  sX   øè è € ð  ð  ñ !%  1ð 7×>Ò>Ø 5µs¸1±v´vñô ð ð  ð  ð  ð  ð  rÃ   éþÿÿÿc              3  ó.   •K  — | ]}‰j         › |› �V — Œd S r  r  ©r¿   r  r  s     €rÁ   r1  z@SQLCompiler._deliver_insertmanyvalues_batches.<locals>.<genexpr>3  sE   øè è € ð &ð &àð  Ô>ÐCÀÐCÐCð&ð &ð &ð &ð &ð &rÃ   ÚEXECMANY_INDEX__r©  c                ó,   •— i | ]}|› d ‰› �‰|         “ŒS )Ú__r½   )r¿   r0  r  Úparams     €€rÁ   r`  zASQLCompiler._deliver_insertmanyvalues_batches.<locals>.<dictcomp>T  s)   ø€ ÐNÐNÐN°s˜C˜˜ 1˜˜¨¨c¬
ÐNÐNÐNrÃ   c                ó&   •— g | ]} ‰|¦  «        ‘ŒS r½   r½   )r¿   rr  Ú_sentinel_from_paramss     €rÁ   r†  zASQLCompiler._deliver_insertmanyvalues_batches.<locals>.<listcomp>b  s%   ø€ ÐHÐHÐH°2Ð*Ð*¨2Ñ.Ô.ÐHÐHÐHrÃ   )3rA  rF  r?  r]  r²  r;  r¦  Úsupports_default_metavalueÚsupports_multivalues_insertrš  rD  rB  r  r   rä  rJ  Ú	functoolsÚpartialrŸ  r²  r<  rÒ  Úinsertmanyvalues_max_parametersr/  r>  Úminr‘  rc  rE  rp   rH  rx   r>  r  rx  r+  r\  r:  rR  rS  r5  r¯  Úranger@  r3  r¿  rÀ  Úfrom_iterablerr  r¾   r¤  );r  r&  r'  rŒ  rŽ  r�  rA  rœ  ÚimvÚ	lenparamsÚuse_row_at_a_timeÚ
downgradedrR  Úcompiled_paramÚimv_single_values_exprÚexecutemany_valuesÚ
max_paramsÚtotal_num_of_paramsÚnum_params_per_batchÚnum_params_outside_of_batchÚbatchesÚcompiled_batchesrN  rS  r>  Úall_keysÚimv_values_counterÚformatted_values_clauseÚkeys_to_replaceÚbase_parametersrÉ  r+  Úall_expand_positionsÚescapedrO  Úcompiled_batchrQ  Únum_ins_paramsÚextra_params_leftÚextra_params_rightÚbatch_iteratorÚexpanded_values_stringrƒ  rj   r§  rK  rL  Úreplaced_values_clausesÚfmvr³  r   rš  rE  rª  r¦  r§  r  r±  r–  s;   ` ` `                                            @@@@@@@@@@rÁ   Ú!_deliver_insertmanyvalues_batchesz-SQLCompiler._deliver_insertmanyvalues_batches  s
  øøøøøøøøøøøøøè è € ð Ô$ˆØˆˆˆàÔ&ð 	Ø$(Ð!Ð!å$,Ô$7ØÔ(ð%Ð!õ ˜
‘O”Oˆ	ØÔð 	 t¤|Ô'Nð 	ð !%ÐØˆJˆJØ”Ô9ð 	Ø#ð	àÔ$ð	ð Ô%Ð-°Ô1NÐ-ð
 !%ÐØˆJˆJà %ÐØˆJàð 	Ý5>ÝØaÝ˜
Ð$7Ñ8Ô8ñô ð ñ6ô 6ð ð Ñ1�Ñ1˜5 .õ -ØØØ)Ø�Gð 1ð Ð.Ð.¨~Ñ>Ô>Ð?Ð?ààØØØ+Øñô ð ð ð ð ð  ˆFàð 	ÝÔ#Ø”Ô7Ø%9ðñ ô ˆCˆCð
 ˆCà!$Ô!7ÐØð 	AØ%( SÐ)?Ñ%@Ô%@Ð"à:Ð!7Ð:Ð:Ð:ÐØ×%Ò%Ð&8Ð:NÑOÔOˆ	ð ”\ÔAˆ
Øð 	Ý"% d¤oÑ"6Ô"6ÐÝ#& sÔ'=Ñ#>Ô#>Ð à#Ð&:Ñ:ð (õ ØàÐ"=Ñ=Ø+ñ,ñô ˆJõ Ð,­d°:Ñ.>Ô.>Ñ?Ô?ˆÝØ!¥4Ð(;Ñ#<Ô#<ñ
ô 
Ðð HLÐØˆØ! ZÑ/Ø˜ZÑ'Ð.ˆAˆA¨Qñ
ˆð !Ô3ÐØ!Ð-Ð-Ð-àð 	ð"ð "ð "ð "à*<ð"ñ "ô "Ðð ;<Ð;ÐÐ!7àŒð M	ØÔ&ð (Ø%)Ô%<Ð"Ð"à%'Ð"å˜: aœ=Ñ)Ô)ˆHð!ð !ð !ð !ð !ð !ð Ô'ð (Ø%<Ð"Ð"à%'Ð"ð''¨D¯IªIð 6ð 6ð 6ð 6à2Dð6ñ 6ô 6ñ -ô -ð ''ð "ð''ð ''ð ''Ð#ð
 '×3Ò3ð 4ð 4ð 4ð 4à*<ð4ñ 4ô 4ñ ô ˆOð
ð ð ð à#×.Ò.¨Ñ?Ô?ðñ ô ˆOð *,Ð&Ð&à&(Ð#Ý!™eœeˆOØ ˆOàÔ'ð MàHÐ.ÐHÐHÐHð +Ð*ð .MÐ1GÐ-LÐ-LÐ-LÐ*å14±´Ð$ØÔ.ð 9ð 9�Ø(×/Ò/°°Q´Ñ8Ô8Ð8Ð8ð (ð Ø"Ô.�Ø"Ð.Ð.Ð.ð(ð (ð (ð (å%.¨{Ñ%;Ô%;ð(ñ (ô (Ð$õ
 *-Ð-AÑ)BÔ)BÐ&Ý),Ð-AÑ)BÔ)BÀQÑ)FÐ&åÐ,Ñ-Ô-Ø-Ð0FÑFòGð Gð Gð Gð Ô"ð Ýœ) DÔ$GÑHÔH�Ý-/¬VØÐ$Ð$Ð$ dÐ,Fñ.ô .Ð*ð ñ D	Ø˜A˜j˜LÔ)ˆEØ-¨a°
¨lÔ;ˆNà$&ˆG�A�j�LÑ!Ø-/Ð˜Q˜z˜\Ñ*àð 0Ø%/Ð"Ð"å%(¨¡Z¤ZÐ"à$ð ð+ð +ð/ð /ð /ð /å%*Ð+=Ñ%>Ô%>ð/ñ /ô /ð+ñ +ô +Ð'ð Œñ XØ!$Ô!B�ð "¥S¨¨q¬¡]¤]Ò2Ð2Ø=?Ð?Ð%Ð(:Ø%*�N�Nà(-¨a¬Ð1HÐ2HÐ1HÔ(IÐ%Ø).¨q¬Ð2HÐ2IÐ2IÔ)JÐ&ð&ð &ð &ð &ð &à!&ð&ñ &ô &�Nð
 Ô+ð àŸšð  ð  ð  ð  õ )2°%Ñ(8Ô(8ð	 ñ  ô  ñ ô ð �r�cô.Ð*Ð*ð 4Ð6HÑHØ�r�cô.Ð*ð Ô&ð P¨>¸AÒ+=Ð+=ð  2Ð1Ð1Ð1à2°QÑ6�EØ(Ð,>Ñ?À%ÑG�Cõ !&ð &ð &ð &ð &å!& u¨cÑ!2Ô!2ð&ñ &ô &ñ !ô !�Ið .DÀiÑ-OÐ*à%.×%6Ò%6Ø(Ð*@ñ&ô &Ð"õ ',Ý”O×1Ò1°.ÑAÔAñ'ô 'Ð#ð
 &Ø)ñ*à(ñ)ð $Ð#ð +-Ð'Ø&5×&:Ò&:Ñ&<Ô&<Ð#å )¨%Ñ 0Ô 0ð 
ð 
‘H�A�uØ1×9Ò9Ø*­C°©F¬Fñô �Cð Ô/ð IØ!ŸkškÐ*?ÅÀQÁÄÑHÔH˜à+×2Ò2°3Ñ7Ô7Ð7Ø'×.Ò.ØNÐNÐNÐNÐN¸oÐNÑNÔNñô ð ð ð &/×%6Ò%6Ø(Ø—I’IÐ5Ñ6Ô6ñ&ô &Ð"õ
 )Ø"Ø#Ø'Øð -ðÐHÐHÐHÐH¸ÐHÑHÔHÐHàà"ØØØ'Øñô ð ð ð ð  ˜‰MˆHðI ñ D	ð D	ð D	ð D	ð D	rÃ   c                óx  ‡ —  |j         |‰ fi |¤Ž}|j        }|�||d<   d}n‰ j         }|r#d‰ _        ‰ j        s|‰ _        ‰ j        s|‰ _        ‰ j                             t          ¦   «         t          ¦   «         |dœ¦  «         d}d }‰ j        r|€g }t          j
        ‰ |||fd|i|¤Ž}‰ j        r7|�5t          |¦  «        }‰ j        r‰ j        �‰ xj        |z  c_        n|‰ _        |j        }	|	sE‰ j        j        s9‰ j        j        s-‰ j        j        s!t'          j        d‰ j        j        z  ¦  «        ‚|j        r^‰ j        j        s!t'          j        d‰ j        j        z  ¦  «        ‚‰ j        s|j        r|j        rt'          j        d	¦  «        ‚|j        }	n|j        }	‰ j        }
‰ j        j        }d
}|j        r| ‰ j        ||j        fi |¤Žz  }|dz  }|
                     |j        ¦  «        }|j         r‰  !                    ||¦  «        \  }}|j"        r‰  #                    ||¦  «         ||z  }|	s|s%|dd $                    d„ |	D ¦   «         ¦  «        z  z  }|j%        }d }d }d}‰ j        p|j        }|rÜ|j&        }|�«|sJ ‚d„ |	D ¦   «         }g }|D ]B}||vrd } n9‰  '                    |¦  «        }|||         vrd } n|                     |¦  «         ŒC|€3‰ j        j(        tR          j*        z  rd}n|d         j+        r
J d¦   «         ‚tY          |¦  «        tY          |¦  «        z   }‰  -                    |||¬¦  «        }‰ j.        r|d|z   z  }nd }|j/        �w ‰ j0        ‰ j        d         d         fddi|¤Ž}‰ j1        rE‰ j        j2        r9|st          ‰ j        ¦  «        nd }|d‰  3                    |d¬¦  «        ›|›�z  }�n×|d|z  z  }�nÍ|	s]|r[|dz  }|rRti          d‰ j        j5        tm          d|	¦  «        ||j        |j7        d u||rt          |¦  «        nd|¬¦	  «	        ‰ _8        �nn|j        r,|dd $                    d„ |j9        D ¦   «         ¦  «        ›�z  }�n;d $                    d„ tm          d|	¦  «        D ¦   «         ¦  «        }|�r|rª‰ j        j(        tR          j:        z  r‘|j;        sŠd}‰ j        j(        tR          j<        z  }d $                    d„ t{          |	¦  «        D ¦   «         ¦  «        }|r/d $                    ˆ fd„t{          |	¦  «        D ¦   «         ¦  «        }n|}|d |› d!|› d"|› d#�z  }nd}|d$|› d%�z  }ti          d|tm          d|	¦  «        ||j        |j7        d u||rt          |¦  «        nd|||¬&¦  «        ‰ _8        n	|d$|› d%�z  }|j7        � ‰ j0        |j7        fi |¤Ž}|r|d|z   z  }|r‰ j.        s|d|z   z  }‰ j1        r>‰ j        j2        s2|st          ‰ j        ¦  «        nd }‰  3                    |d¬¦  «        |z   }‰ j         >                    d¦  «         |S )'Nr{  FTrä  r   ri  zWThe '%s' dialect with current database version settings does not support empty inserts.zcThe '%s' dialect with current database version settings does not support in-place multirow inserts.zcRETURNING cannot be determinstically sorted when using an INSERT which includes multi-row values().zINSERT zINTO ú (%s)rÐ   c                ó   — g | ]	\  }}}}|‘Œ
S r½   r½   )r¿   r  r  s      rÁ   r†  z,SQLCompiler.visit_insert.<locals>.<listcomp>å  s    € Ð>Ð>Ð>™-˜!˜T 1 a�Ð>Ð>Ð>rÃ   c                ó   — i | ]
\  }}}}||“ŒS r½   r½   )r¿   rù  r  Úparam_namess       rÁ   r`  z,SQLCompiler.visit_insert.<locals>.<dictcomp>ý  s2   € ð "ð "ð "á.˜˜Q  ;ð ˜ð"ð "ð "rÃ   zTsentinel selection rules should have prevented us from getting here for this dialect©rñ  r!  rŒ  r"  r  rq  rµ  z DEFAULT VALUESr=  )rA  rB  rD  rE  rG  z VALUES c              3  óZ   K  — | ]&}d d                      d„ |D ¦   «         ¦  «        z  V — Œ'dS )r  rÐ   c              3  ó$   K  — | ]\  }}}}|V — Œd S r  r½   ©r¿   r  rÌ  s      rÁ   r1  z5SQLCompiler.visit_insert.<locals>.<genexpr>.<genexpr>f  s*   è è € Ð LÐ L©>¨1¨a°¸ Ð LÐ LÐ LÐ LÐ LÐ LrÃ   Nr  )r¿   Úcrud_param_sets     rÁ   r1  z+SQLCompiler.visit_insert.<locals>.<genexpr>d  s\   è è € ð ð ð 'ð Ø—y’yÐ LÐ L¸^Ð LÑ LÔ LÑLÔLñNðð ð ð ð ð rÃ   c                ó   — g | ]	\  }}}}|‘Œ
S r½   r½   rá  s      rÁ   r†  z,SQLCompiler.visit_insert.<locals>.<listcomp>l  s0   € ð ð ð á&˜˜1˜e Qð ðð ð rÃ   c              3  ó&   K  — | ]\  }}d |› �V — ŒdS ©ÚpNr½   )r¿   r  r  s      rÁ   r1  z+SQLCompiler.visit_insert.<locals>.<genexpr>‹  s=   è è € ð )ð )Ù$( A q˜˜A˜˜ð)ð )ð )ð )ð )ð )rÃ   c              3  óš   •K  — | ]E\  }^}}‰                      |j        |j                             ‰j        ¦  «        d |› �¦  «        V — ŒFdS rå  )rÎ  rý   rñ  r¦  )r¿   r  rù  r  r  s       €rÁ   r1  z+SQLCompiler.visit_insert.<locals>.<genexpr>—  st   øè è € ð 4ð 4ñ !-  9 C¨!ð !×1Ò1Ø #¤Ø #¤× @Ò @ÀÄÑ NÔ NØ ' A  ñô ð4ð 4ð 4ð 4ð 4ð 4rÃ   z SELECT z FROM (VALUES (z)) AS imp_sen(z#, sen_counter) ORDER BY sen_counterz	 VALUES (r  )r;  r<  r>  r@  rA  rB  rD  rE  rF  rG  rH  )?rs  r&  r†  r&  r¡  r  r¤  rp   rc  r   Ú_get_crud_paramsr²  r:  rG  Úsingle_paramsr¦  Úsupports_default_valuesr´  Úsupports_empty_insertr8   rã  rù   Ú_has_multi_parametersrµ  r,  Ú
_returningÚ_sort_by_parameter_orderrŸ  r“  r’  Úformat_tablerŽ   r  r~  rè  ré  rx   Úuse_insertmanyvaluesÚuse_sentinel_columnsr<  r€  rW  r`  Ú_insert_sentinelr‘  r`  r0  rš   r±  rJ  Úcte_follows_insertrì  r:  Údefault_metavalue_tokenr   Ú_post_values_clauserA  Úall_multi_paramsrb  Úis_default_metavalue_onlyrc  r  r|  ) r  Úinsert_stmtri  r{  rÉ  r  rï  Úcounted_bindparamÚcrud_params_structÚcrud_params_singlerŸ  rê  rÔ  r|  r  rð  Únamed_sentinel_paramsÚadd_sentinel_colsrG  rX  Ú_params_by_colÚ_add_sentinel_colÚ
param_namer`  Úselect_textræ  r�  Úembed_sentinel_valueÚrender_bind_castsÚcolnamesÚcolnames_w_castÚpost_values_clauses    `                               rÁ   Úvisit_insertzSQLCompiler.visit_insertn  sÅ	  ø€ ð ;˜Ô:Ø˜ð
ð 
Ø!#ð
ð 
ˆð $Ô-ˆàÐ#Ø!-ˆBˆ~ÑØˆHˆHàœ:�~ˆHàð 	3Ø ˆDŒMØÔ)ð 7Ø)6�Ô&ØÔ%ð 3Ø%2�Ô"àŒ
×Òå#&¡5¤5Ý #¡¤Ø)ðð ñ	
ô 	
ð 	
ð Ðð !Ðð Œ?ð 	#˜|Ð3ð
 !#Ðå!Ô2ØØØØð	
ð 
ð
 0ð
ð ð
ð 
Ðð Œ?ð 	?Ð0Ð<Ý #Ð$5Ñ 6Ô 6ÐØÔ"ð ?ØÔ)Ð5ØÐ*Ô*Ð.?Ñ?Ð*Ô*Ð*à->�DÔ*à/Ô=Ðð #ð
	à”LÔ8ð
	ð ”LÔ;ð
	ð ”LÔ6ð	
	õ Ô"ðà!œ\Ô.ñ/ñô ð ð Ô.ð 	BØ”<Ô;ð ÝÔ&ð1à37´<Ô3DñEñô ð ð Ô'ðØ+6Ô+AðàÔ6ðõ Ô&ðIñô ð ð "4Ô!AÐÐà!3Ô!AÐà”=ˆØ"&¤,Ô"FÐàˆàÔ ð 	ØÐ+�DÔ+Ø˜[Ô2ðð Ø68ðð ñ ˆDð 	�‰ˆØ×*Ò*¨;Ô+<Ñ=Ô=ˆ
àÔð 	LØ ×2Ò2°;À
ÑKÔK‰MˆAˆzàÔ(ð 	=Ø×+Ò+¨K¸Ñ<Ô<Ð<à�
Ñˆàð 	Ð%<ð 	Ø�G˜dŸišiØ>Ð>Ð+=Ð>Ñ>Ô>ñô ñ ñ ˆDð  2ÔFÐØ9=ÐØ ÐØ!ÐàÔ0ÐJ°KÔ4JˆØð H	$Ø 2Ô GÐØ Ð,Ø+Ð+Ð+Ð+ð"ð "à2Dð"ñ "ô "�ð )+Ð%Ø):ð 
=ð 
=Ð%Ø(°Ð>Ð>Ø04Ð-Ø˜Ø!%×!CÒ!CØ)ñ"ô "�Jð "¨Ð8IÔ)JÐJÐJØ04Ð-Ø˜Ø)×0Ò0°Ñ<Ô<Ð<Ð<à(Ð0ð œÔGÝ6ÔHñIðð -1Ð)Ð)ð $5°QÔ#7Ô#Hð ð ðDñô ÐHõ "& nÑ!5Ô!5½Ð=NÑ8OÔ8OÑ!O�à#×4Ò4ØØØ$,ð  5ñ  ô  Ðð Ô-ð /Ø˜Ð.Ñ.Ñ.�øð  $ÐàÔÐ)à&˜$œ,Ø”
˜2”Ð3Ô4ðð ØBFðØJLðð ˆKð Œyð 
,˜Tœ\Ô<ð 
,Ø7?Ð I¥ D¤J¡¤ ÀT�Ø�Ø×+Ò+Ø&3Ø04ð ,ñ ô ð ð  �Kðñ �‘ð ˜ Ñ+Ñ+�‘Ø#ð z	AÐ(?ð z	AØÐ%Ñ%ˆDØ#ð Ý):ØØ”LÔ8ÝØ9Ð;Mñô ð &à#Ô<ð $Ô7¸tÐCà%6à2CÐJ�Ð-Ñ.Ô.Ð.Èà&7ð#*ñ *ô *�Ô&ùð& Ô0ð d	AØˆDØ—	’	ð ð ð +=Ô*Mðñ ô ñ ô ð ðñ ˆD‰Dð )-¯	ª	ðð å*.Ø9Ø*ñ+ô +ðñ ô ñ)ô )Ð%ð $ñ QAà%ð6Eð œÔGÝ6ÔMñNð6Eð 0ÔIð6Eð ,0Ð(ð œÔGÝ6ÔNñOð &ð
  $Ÿyšyð )ð )Ý,5Ð6HÑ,IÔ,Ið)ñ )ô )ñ  ô  �Hð )ð 3ð +/¯)ª)ð 4ð 4ð 4ð 4õ 1:Ð:LÑ0MÔ0Mð4ñ 4ô 4ñ +ô +˜˜ð +3˜àð/ ?ð /ð /Ø$=ð/ð /à&.ð/ð /ð /ñ�D�Dð ,1Ð(ØÐDÐ(AÐDÐDÐDÑD�Då):Ø$)Ø'@Ý'+Ø9Ø*ñ(ô (ð 3Dà#Ô<ð $Ô7¸tÐCà%6à2CÐJ�Ð-Ñ.Ô.Ð.Èà(=Ø&7Ø)=ð)*ñ *ô *�Ô&Ð&ð0 Ð@Ð$=Ð@Ð@Ð@Ñ@�àÔ*Ð6Ø!- ¤ØÔ/ð"ð "Ø35ð"ð "Ðð "ð 1Ø˜Ð0Ñ0Ñ0�àð 	+ DÔ$Bð 	+Ø�CÐ*Ñ*Ñ*ˆDàŒ9ð 	˜Tœ\Ô<ð 	Ø3;ÐE�C ¤
™OœO˜OÀˆMà×'Ò'Ø"/Ø,0ð (ñ ô ð ñ	ð ð 	Œ
�Š�rÑÔÐàˆrÃ   c                ó   — dS )z3Provide a hook for MySQL to add LIMIT to the UPDATENr½   )r  Úupdate_stmts     rÁ   Úupdate_limit_clausezSQLCompiler.update_limit_clauseà  s   € àˆtrÃ   c                ó,   — d|d<    |j         | fddi|¤ŽS )z|Provide a hook to override the initial table clause
        in an UPDATE statement.

        MySQL overrides this.

        Trx  r±  rÒ  )r  r	  Ú
from_tableÚextra_fromsrÉ  s        rÁ   Úupdate_tables_clausez SQLCompiler.update_tables_clauseä  s-   € ð ˆˆ8‰Ø,ˆzÔ,¨TÐEÐE¸$ÐEÀ"ÐEÐEÐErÃ   c                ó    — t          d¦  «        ‚)z~Provide a hook to override the generation of an
        UPDATE..FROM clause.

        MySQL and MSSQL override this.

        zCThis backend does not support multiple-table criteria within UPDATErÌ  ©r  r	  r  r  Ú
from_hintsrÉ  s         rÁ   Úupdate_from_clausezSQLCompiler.update_from_clauseî  s   € õ "ð%ñ
ô 
ð 	
rÃ   c                ó€  ‡—  |j         || fi |¤Ž}|j        }|�||d<   d}n| j         }|r#d| _        | j        s|| _        | j        s|| _        | j        t          z  r5t          i t          ¦   «         ¦  «        }| j        t          z  }|r|| _        nd }d}|j        }t          |¦  «        }	|	rEt          t          |j        ¦  «        ¦  «        Šˆfd„|D ¦   «         }
‰                     |¦  «        }n
g }
|j        h}| j                             |||dœ¦  «         d}|j        r| | j        ||j        fi |¤Žz  } | j        ||j        |
fd|i|¤Ž}t+          j        | |||fi |¤Ž}|j        }|j        r|                      ||¦  «        \  }}nd }|j        r|                      ||¦  «         ||z  }|dz  }|d	                     d
„ t;          d|¦  «        D ¦   «         ¦  «        z  }| j        s|j        r1| j         r*|d|  !                    || j        p|j        |¬¦  «        z   z  }|r" | j"        ||j        |
|fd|i|¤Ž}|r|d|z   z  }|j#        r | j$        |j#        fd|i|¤Ž}|r|d|z   z  }|  %                    |¦  «        }|r|d|z   z  }| j        s|j        r1| j         s*|d|  !                    || j        p|j        |¬¦  «        z   z  }| j&        r1|stO          | j        ¦  «        nd }|  (                    |¬¦  «        |z   }|r|€J ‚| )                    d¬¦  «         | j         *                    d¦  «         |S )Nr{  FTc                ó   •— g | ]}|‰v¯|‘Œ	S r½   r½   )r¿   r2  Ú
main_fromss     €rÁ   r†  z,SQLCompiler.visit_update.<locals>.<listcomp>  s*   ø€ ð "ð "ð "Ø¨!°:Ð*=Ð*=�Ð*=Ð*=Ð*=rÃ   rä  zUPDATE rÛ  z SET rÐ   c              3  ó0   K  — | ]\  }}}}|d z   |z   V — ŒdS )ú=Nr½   )r¿   r  r  rÌ  s       rÁ   r1  z+SQLCompiler.visit_update.<locals>.<genexpr>N  sG   è è € ð 
ð 
á!��4˜ ð �3‰J˜Ñð
ð 
ð 
ð 
ð 
ð 
rÃ   zList[Tuple[Any, str, str, Any]]r!  rÞ  ú WHERE rå  ÚUPDATE©rŽ  rŒ  )+rs  r&  r†  r'  r¡  r  rX  rl  rp  rp   rm  rÛ  Ú_extra_fromsr  r+   rŽ   r�   r¤  r“  r’  r  r   rè  ré  r  r~  rè  ré  rx   r   r,  rí  r0  r`  r  r6  r  r
  rJ  r²  rì  r�  r|  )r  r	  r{  rÉ  r  rï  rÛ  r<  r  Úis_multitableÚrender_extra_fromsr  rÔ  r|  rú  Úcrud_paramsr}  Úextra_from_textr=  r‚  ræ  r  s                        @rÁ   Úvisit_updatezSQLCompiler.visit_updateü  s   ø€ Ø:˜Ô:Ø˜ð
ð 
Ø!#ð
ð 
ˆð $Ô-ˆàÐ#Ø!-ˆBˆ~ÑØˆHˆHàœ:�~ˆHàð 	3Ø ˆDŒMØÔ)ð 7Ø)6�Ô&ØÔ%ð 3Ø%2�Ô"àŒ<Õ4Ñ4ð 	!Ý$ R­©¬Ñ/Ô/ˆKØœ<­,Ñ6ˆLØð /Ø#.�Ô øàˆKØ ˆLà#Ô0ˆÝ˜[Ñ)Ô)ˆàð 		2å�]¨;Ô+<Ñ=Ô=Ñ>Ô>ˆJð"ð "ð "ð "Ø&ð"ñ "ô "Ðð )×.Ò.¨{Ñ;Ô;ˆOˆOà!#ÐØ*Ô0Ð1ˆOàŒ
×Òà#2Ø /Ø)ðð ñ	
ô 	
ð 	
ð ˆàÔ ð 	ØÐ+�DÔ+Ø˜[Ô2ðð Ø68ðð ñ ˆDð /�TÔ.ØØÔØð
ð 
ð $ð	
ð
 ð
ð 
ˆ
õ "Ô2Ø�+˜}¨hð
ð 
Ø:<ð
ð 
Ðð )Ô6ˆàÔð 	!Ø(,×(>Ò(>Ø˜Zñ)ô )Ñ%ˆM˜:˜:ð !ˆMàÔ(ð 	=Ø×+Ò+¨K¸Ñ<Ô<Ð<à�
Ñˆà�‰ˆØ�—	’	ð 
ð 
å%)Ø1°;ñ&ô &ð
ñ 
ô 
ñ 
ô 
ñ 	
ˆð Ô"ð 	 kÔ&<ð 	ØÔ-ð Ø˜˜d×3Ò3ØØÔ+ÐE¨{Ô/EØ(0ð 4ñ ô ñ ñ �ð ð 
	.Ø5˜dÔ5ØØÔ!Ø"Øð	ð ð
 (ðð ðð ˆOð ð .Ø˜˜oÑ-Ñ-�àÔ&ð 	&Ø1�Ô1ØÔ+ðð Ø9DðØHJðð ˆAð ð &Ø˜	 A™Ñ%�à×/Ò/°Ñ<Ô<ˆØð 	'Ø�C˜,Ñ&Ñ&ˆDð Ô#ð	Ø'2Ô'=ð	àÔ0ð	ð �C˜$×/Ò/ØØÔ'ÐA¨;Ô+AØ$,ð 0ñ ô ñ ñ ˆDð Œ9ð 	OØ3;ÐE�C ¤
™OœO˜OÀˆMØ×*Ò*¸Ð*ÑGÔGÈ$ÑNˆDàð 	1ØÐ*Ð*Ð*Ø×Ò xÐÑ0Ô0Ð0àŒ
�Š�rÑÔÐàˆrÃ   c                ó    — t          d¦  «        ‚)zÀProvide a hook to override the generation of an
        DELETE..FROM clause.

        This can be used to implement DELETE..USING for example.

        MySQL and MSSQL override this.

        zCThis backend does not support multiple-table criteria within DELETErÌ  r  s         rÁ   Údelete_extra_from_clausez$SQLCompiler.delete_extra_from_clause‰  s   € õ "ð%ñ
ô 
ð 	
rÃ   c                ó$   —  |j         | fdddœ|¤ŽS )NT)rx  r±  rÒ  )r  Údelete_stmtr  r  rÉ  s        rÁ   Údelete_table_clausezSQLCompiler.delete_table_clause™  s3   € Ø,ˆzÔ,Øð
Ø dð
ð 
Ø.0ð
ð 
ð 	
rÃ   c                óî  —  |j         || fi |¤Ž}|j        }|�||d<   d}n| j         }|r#d| _        | j        s|| _        | j        s|| _        | j        t          z  r5t          i t          ¦   «         ¦  «        }| j        t          z  }|r|| _        nd }d}|j        }|j        h                     |¦  «        }	| j                             |	|	|dœ¦  «         d}
|j        r|
 | j        ||j        fi |¤Žz  }
|
dz  }
	 |                      ||j        ||¬¦  «        }nJ# t&          $ r= |                      ||j        |¦  «        }|r|                      |j        |¬¦  «        }Y nw xY wt+          j        | |||fi |¤Ž |j        r|                      ||¦  «        \  }}nd }|j        r|                      ||¦  «         |
|z  }
| j        s|j        r1| j        r*|
d|                      || j        p|j        |¬	¦  «        z   z  }
|r" | j        ||j        ||fd
|i|¤Ž}|r|
d|z   z  }
|j         r | j!        |j         fd
|i|¤Ž}|r|
d|z   z  }
| j        s|j        r1| j        s*|
d|                      || j        p|j        |¬	¦  «        z   z  }
| j"        r1|stG          | j        ¦  «        nd }|  $                    |¬¦  «        |
z   }
|r|€J ‚| %                    d¬¦  «         | j         &                    d¦  «         |
S )Nr{  FTrä  zDELETE úFROM )rÛ  r!  rÞ  rÛ  r  rå  ÚDELETEr  rŒ  )'rs  r&  r†  r%  r¡  r  rX  rl  rp  rp   rm  rÛ  r  rŽ   r�   r¤  r“  r’  r%  Ú	TypeErrorr±  r   rè  r  r~  rè  ré  r,  rí  r0  r`  r"  r6  r  rJ  r²  rì  r�  r|  )r  r$  r{  rÉ  r  rï  rÛ  r<  r  r  rÔ  r|  r  r}  r  r=  ræ  s                    rÁ   Úvisit_deletezSQLCompiler.visit_deletež  sy  € Ø:˜Ô:Ø˜ð
ð 
Ø!#ð
ð 
ˆð $Ô-ˆàÐ#Ø!-ˆBˆ~ÑØˆHˆHàœ:�~ˆHàð 	3Ø ˆDŒMØÔ)ð 7Ø)6�Ô&ØÔ%ð 3Ø%2�Ô"àŒ<Õ4Ñ4ð 	!Ý$ R­©¬Ñ/Ô/ˆKØœ<­,Ñ6ˆLØð /Ø#.�Ô øàˆKØ ˆLà#Ô0ˆà&Ô,Ð-×3Ò3°KÑ@Ô@ˆØŒ
×Òà#2Ø /Ø)ðð ñ	
ô 	
ð 	
ð ˆàÔ ð 	ØÐ+�DÔ+Ø˜[Ô2ðð Ø68ðð ñ ˆDð 	�‰ˆð	MØ×1Ò1ØØÔ!ØØ'ð	 2ñ ô ˆJˆJøõ ð 	Mð 	Mð 	Mð ×1Ò1Ø˜[Ô.°ñô ˆJð ð MØ—L’L Ô!2À�LÑLÔL�øøð	Møøøõ 	Ô˜d K°ÀÐOÐOÈBÐOÐOÐOàÔð 	!Ø(,×(>Ò(>Ø˜Zñ)ô )Ñ%ˆM˜:˜:ð !ˆMàÔ(ð 	=Ø×+Ò+¨K¸Ñ<Ô<Ð<à�
Ñˆð Ô#ð	Ø'2Ô'=ð	àÔ,ð	ð �C˜$×/Ò/ØØÔ'ÐA¨;Ô+AØ$,ð 0ñ ô ñ ñ ˆDð ð 
	.Ø;˜dÔ;ØØÔ!ØØð	ð ð
 (ðð ðð ˆOð ð .Ø˜˜oÑ-Ñ-�àÔ&ð 	&Ø1�Ô1ØÔ+ðð Ø9DðØHJðð ˆAð ð &Ø˜	 A™Ñ%�ð Ô#ð	Ø'2Ô'=ð	àÔ0ð	ð �C˜$×/Ò/ØØÔ'ÐA¨;Ô+AØ$,ð 0ñ ô ñ ñ ˆDð Œ9ð 	OØ3;ÐE�C ¤
™OœO˜OÀˆMØ×*Ò*¸Ð*ÑGÔGÈ$ÑNˆDàð 	1ØÐ*Ð*Ð*Ø×Ò xÐÑ0Ô0Ð0àŒ
�Š�rÑÔÐàˆs   Ã<D ÄAE"Å!E"c                ó<   — d| j                              |¦  «        z  S )NzSAVEPOINT %s©rŸ  Úformat_savepoint©r  Úsavepoint_stmtrÉ  s      rÁ   Úvisit_savepointzSQLCompiler.visit_savepoint  s   € Ø ¤× >Ò >¸~Ñ NÔ NÑNÐNrÃ   c                ó<   — d| j                              |¦  «        z  S )NzROLLBACK TO SAVEPOINT %sr,  r.  s      rÁ   Úvisit_rollback_to_savepointz'SQLCompiler.visit_rollback_to_savepoint   s&   € Ø)¨D¬M×,JÒ,JØñ-
ô -
ñ 
ð 	
rÃ   c                ó<   — d| j                              |¦  «        z  S )NzRELEASE SAVEPOINT %sr,  r.  s      rÁ   Úvisit_release_savepointz#SQLCompiler.visit_release_savepoint%  s&   € Ø%¨¬×(FÒ(FØñ)
ô )
ñ 
ð 	
rÃ   )r¦  r]   r&  r•  r£  r¢  rV  r*  rW  r  rX  rj  rY  rZ  rÐ  r   )r  r=  )r  r+  )r  r“  )r  r–  )r  rÉ  )NT)rÖ  r×  rÚ  r  r  r%  )NNTNTF)rÖ  r×  rØ  rÙ  rÚ  r  rÚ  rÛ  rÜ  r  rh  r  r  r\   ©F)r'  r\   ri  r  r  r%  )r  r9  )NFFNr½   )NTr½   N)r“   r©  r›  rª  r«  r  rœ  rú   r¬  r­  rÐ  r   r  r¾   r  )NF)rK  rZ  r›  rª  rÐ  r   r  r¾   )FN©Nr½   )NFNN)FFFFF)rX  r¾   rù   rE   r  r¾   )rù   r¾   r  r¾   )FFNNNN)rù   r¾   r8  r  r9  r  re  r=  r:  rf  rg  rh  ri  r?  rÉ  r   r  r¾   )rv  rN   rx  r  rx  r  ry  rz  r{  r|  rÛ  r}  rq  r~  rÐ  r   r  r=  )FFFNFFNN)
rø   r¾   rù   r¾   rû   rú   r  rü   r  r	  )NNNTFFT)FFNNNFN)rš   r!  r  r(  ©
rt  rC   rX  rY  rñ  r  rÉ  r   r  r¾   )NFF)FFFNTNN)rŽ   rK   r  rC  )r&  r¾   r'  rX   rŒ  r�  rŽ  rM  r�  r?  rA  r  rœ  r›  r  r�  rr  )ùrÿ   r   r  r  ÚEXTRACT_MAPrP  r&   ræ  r"  r  rã  ÚCOMPOUND_KEYWORDSrt  r%  r&  r'  r)  r*  r,  r-  r0  r1  r2  r6  r7  r8  r9  r:  r;  r<  r>  r@  rA  rB  Ú	frozensetrC  rD  rå  rE  rA  Úpostfetch_lastrowidrF  r+  rG  rH  rI  rR  rT  r"  rÃ  Úpatternr°  rç  r¶  rP  rk  r´  r8  r�  Úro_memoized_propertyrˆ  rŠ  r�  r’  Úmemoized_propertyr•  Úmemoized_instancemethodr™  Ú
contextlibÚcontextmanagerrž  r{  rz  rÔ  rÖ  rÎ  rÙ  rÞ  rý  rÖ  r|  Úpreload_moduler6  r<  rX  rf  rh  rs  ry  r|  r�  r“  r   r¤  r¨  r¼  rÁ  rÅ  rÇ  rÌ  rÕ  r²  râ  rò  r÷  rý  r   r	  r  r  r  r&  r-  r1  r5  r<  rF  rI  rN  rS  rY  rU  ri  rf  rc  r~  rz  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  r  rú  r   r  r  r(  r*  r.  r1  r3  rE  rÎ  r/   r  r  r=  r—  rd  rÛ  ré  r$   Ú_CTEOptsrŽ  r­  r¯  r¬  r½  r«  rÄ  rÍ  rÓ  rÕ  r–  rë  rÞ  rÜ  r¹  rõ  rð  rú  rý  rd  r   rç  r  r  r'  r  r  r  r’  rì  rG  r  rw  rx  r;  r`  r‚  r�  rs  ry  r~  r-   Ú
CLIENTSIDErW  ra  ÚSENTINEL_DEFAULTÚNONEr^  r_  r…  r�   r]  rƒ  r‹  rØ  r  r
  r  r  r   r"  r%  r*  r0  r2  r4  r½   rÃ   rÁ   r  r  	  s÷  € € € € € € ðð ð €Kð 	ˆÔàØØØØØØØð	ð 	ñ	
ô 	
ð ð ð ð ñ ðð: /Ð.Ð.Ñ.Ø6Ð6Ð6Ñ6à€Fà)Ðà€HÐÐÐÑØ€HÐÐÐÑØ€HÐÐÐÑðð
 +Ð*Ð*Ñ*ð%ð .0€OÐ/Ð/Ð/Ñ/ðð .0€OÐ/Ð/Ð/Ñ/ð$ð BFÐÐEÐEÐEÑEðð €KÐÐÐÑà(Ð(Ð(Ñ(ØIà-Ð-Ð-Ñ-ð6ð %Ð$Ð$Ñ$ð4ð ',ÐÐ+Ð+Ð+Ñ+ðð 5:Ð+Ð9Ð9Ð9Ñ9ðð
 "€OÐ!Ð!Ð!Ñ!ðð ÐÐÑØBà!Ð!Ð!Ñ!ðð (Ð'Ð'Ñ'ðð
 .Ð-Ð-Ñ-ðð
 &+ÐÐ*Ð*Ð*Ñ*ðð "€OÐ!Ð!Ð!Ñ!ðð "ÐÐ!Ð!Ð!Ñ!ðð ).ÐÐ-Ð-Ð-Ñ-ðð !€NÐ Ð Ð Ñ ðð !&ÐÐ%Ð%Ð%Ñ%ðð =AÐ Ð@Ð@Ð@Ñ@ðð +/ÐÐ.Ð.Ð.Ñ.ðð
 6:ÐÐ9Ð9Ð9Ñ9à59ÐÐ9Ð9Ð9Ñ9à=AÐÐAÐAÐAÑAà<E¸I¹K¼KÐÐGÐGÐGÑGðð
 :C¸¹¼ÐÐDÐDÐDÑDðð
 8<´ÐÐFÐFÐFÑFðð
 Ððð  Ðð%ð 	ð ð ð ð ñ ðð (,€KÐ+Ð+Ð+Ñ+ðð .2ÐÐ1Ð1Ð1Ñ1à.2ÐÐ2Ð2Ð2Ñ2à€FÐÐÐÑà,Ð,Ð,Ñ,ð 3Ð2Ð2Ñ2ð GÐFÐFÑFàÐÐÑà&˜BœJÐ'LÑMÔMÐØ"˜œ
Ð#4Ñ5Ô5ÐØ$˜"œ*ØÔ$ÐFÐFÐ'<Ô'DÐFÐFñô Ðð ð#ð #ñ „[ð#ð ðCð Cñ „[ðCð )-Ø/3Ø %Ø%Ø59ðPñ Pð Pð Pð Pðd ñ=ð =ð =ñ „Xð=ð$ 
Ôñð ð ñ Ôðð0 ð(ð (ñ „Xð(ð ð Mð  Mñ „Xð MðD ðGð Gñ „XðGð 
Ôñð ð ñ Ôðð 
Ô!ñð ð ñ "Ô!ðð. Ôðð ñ Ôðð.9ð 9ð 9ðvGð Gð GðR 
Ôñ
ð 
ð 
ñ Ôð
ð8#ð #ð #ð ðð ñ „Xðð
 6:Ø!ñ
ñ 
ð 
ð 
ð 
ð2 6:ØGKØ!Ø'+ØØ %ñ~ñ ~ð ~ð ~ð ~ð@ 
Ô!ð$ð $ñ "Ô!ð$ðL ð
3ð 
3ñ „Xð
3ð  %ñCñ Cð Cð Cð CðJ €TÔÐ3Ñ4Ô4ð
ð 
ñ 5Ô4ð
ð 4Ð3Ð3Ñ3à	Ôñð ð ñ Ôðð 
ÔØ€TÔÐ3Ñ4Ô4ðPð Pñ 5Ô4ñ ÔðPðd 
ÔØ€TÔÐ3Ñ4Ô4ð,ð ,ñ 5Ô4ñ Ôð,ð\ð ð ð>ð >ð >ñ@Oð Oð Oð OðOð Oð Oð .3ñ-
ð -
ð -
ð -
ð` .3ñ+ð +ð +ð +ð` Ø!Ø#Ø"Øñ/ð /ð /ð /ðb
ð 
ð 
ð
/ð /ð /ð ;?Ø"Ø.0ØEIñ9Oñ 9Oð 9Oð 9Oð 9OðvAð Að Aðð ð ðð ð ð
ð 
ð 
ðð ð ð
ð ð ñ

ð 
ð 
ð 
ð4 05ñ2ð 2ð 2ð 2ðhð ð ðð ð ðð ð ð
ð 
ð 
ðð ð ð"@ð @ð @ðLð Lð Lðð ð ð&ð ð ð&Kð Kð Kð
ð 
ð 
ð(
ð (
ð (
ðT
ð 
ð 
ð:
ð 
ð 
ð
ð 
ð 
ð
ð 
ð 
ð7ð 7ð 7ð ;?ñ,ñ ,ð ,ð ,ð ,ð\8ð 8ð 8ð
ð 
ð 
ðCð Cð Cð 04ñ?ð ?ð ?ð ?ðB3ð 3ð 3ð-ð -ð -ð ACñ$ð $ð $ð $ðLð ð ð6ð ð ð"Bð Bð BðBð Bð Bð
ð 
ð 
ð

ð 
ð 
ð4ð 4ð 4ð$
ð 
ð 
ð ;?ñH*ð H*ð H*ð H*ðTM1ð M1ð M1ðd ØØØ ñ6ð 6ð 6ð 6ðp8ð 8ð 8ðð ð ð
ð 
ð 
ð
ð 
ð 
ð

ð 
ð 
ð 05ñð ð ð ð*Gð Gð GðGð Gð Gð 
ÔðIð Iñ ÔðIðJð Jð JðAð Að AðEð Eð EðBð Bð BðFð Fð FðAð Að AðEð Eð EðBð Bð BðFð Fð FðAð Að AðEð Eð EðBð Bð BðFð Fð Fð

ð 

ð 

ð	
ð 	
ð 	
ðAð Að AðEð Eð Eð
ð 
ð 
ð
ð 
ð 
ð
ð 
ð 
ð
ð 
ð 
ð
ð 
ð 
ð $ØØ"ØØ ñcð cð cð cðJ$ð $ð $ð $Ø!%ð	Dð Dð Dð DðB#ð #ð #ðJð ð ñð ð ð ñ*$ð $ð $ð $ð #ØØ&*Ø48Ø48Ø15ñAñ Añ Að Að AñFCð Cð Cð ØØ.2Ø&*Ø,0Ø(;¨
Ô(;¸EÑ(BÔ(BðIñ Iñ Ið Ið IñV3ð 3ð 3ñ0ð 0ð 0ð ØØØØØØØñbñ bð bð bñH0ð 0ð 0ñ?ð ?ð ?ññ ð ð ñ"ð "ð "ñ$ñ $ð $ð $ñL9ð 9ð 9ñ(ð (ð (ñ
ñ 
ð 
ð 
ð4 EIñ
ñ 
ð 
ð 
ð8 ØØ Ø"Ø Ø %ØñbJñ bJð bJð bJñHð ð ñð ð ñð ð ñð ð ñ$ð $ð $ñ .Ð-Ñ-Ñ-àÔð 
Ø1˜tÔ1Ù  ¡¤Ð-±À	À	ÁÄÐ/LÐMñ 
ô  
Ðð
 ,1ññ ð ð ð: '+ÐÐ*Ð*Ñ*Ñ*ðð ØØØØØØñKñ Kð Kð KñZ
!ñ 
!ð 
!ð 
!ñ2ð 2ð 2ñh]ð ]ð ]ñ~ð ð ð Ø %ñ3ñ 3ð 3ð 3ñjð ð ñ7ð 7ð 7ñ 	ð 	ð 	ñ
ð 
ð 
ñð ð ñ1ñ 1ð 1ð 1ñ@ð ð ð ØØ+0ñ'ñ 'ð 'ð 'ðX ØØØØØØ!%ñ.ñ .ð .ð .ñ`
ñ 
ð 
ð 
ñ<
)ð 
)ð 
)ð" (: tÔ'9à,Ô7Ø,Ô>à,Ô=Ø,Ô>à,Ô1Ø,Ô>à,Ô5Ø,Ô5à,Ô5Ø,Ô5ð	
ñ(ô (Ð$ð& $D×#IÒ#Ià,Ô1Ø,Ô:ð	
ñ$ô $Ð ñ<ñ <ð <ð <ñ|Yñ Yð Yð Yðx
 AEñpñ pð pð pñdð ð ñFð Fð Fñ
ð 
ð 
ñKñ Kð Kð KñZ
ð 
ð 
ñ 
ð 
ð 
ñ
}ñ }ð }ð }ñ~Oð Oð Oñ
ð 
ð 
ñ

ð 
ð 
ð 
ð 
rÃ   r  c                  ó¤   ‡ — e Zd ZdZd„ Z ej        d¦  «        ˆ fd„¦   «         Zd„ Zd„ Z	d„ Z
d„ Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )ÚStrSQLCompilera“  A :class:`.SQLCompiler` subclass which allows a small selection
    of non-standard SQL features to render into a string value.

    The :class:`.StrSQLCompiler` is invoked whenever a Core expression
    element is directly stringified without calling upon the
    :meth:`_expression.ClauseElement.compile` method.
    It can render a limited set
    of non-standard SQL constructs to assist in basic stringification,
    however for more substantial custom or dialect-specific SQL constructs,
    it will be necessary to make use of
    :meth:`_expression.ClauseElement.compile`
    directly.

    .. seealso::

        :ref:`faq_sql_expression_string`

    c                ó   — dS )Nz<name unknown>r½   r£  s     rÁ   r¤  z$StrSQLCompiler._fallback_column_name?  s   € ØÐrÃ   zsqlalchemy.engine.urlc                óh  •— |j         dk    r…t          j        j        } |j                             |j         ¦  «                             ¦   «         ¦   «         }|                     |d | ¬¦  «        }t          |t          ¦  «        s |j
        |fi |¤ŽS t          ¦   «                              ||¦  «        S )Nr    )rY  )Ústringify_dialectr&   r2  Ú
engine_urlÚURLr”   Úget_dialectÚstatement_compilerr¯  rH  r±  r·  rÊ  )r  rÇ  rÈ  rÉ  Úurlr¦  Úcompilerrº  s          €rÁ   rÊ  z,StrSQLCompiler.visit_unsupported_compilationB  s¯   ø€ àÔ$¨	Ò1Ð1Ý”.Ô+ˆCØM�c”g—n’n WÔ%>Ñ?Ô?×KÒKÑMÔMÑOÔOˆGà×1Ò1Ø˜°4ð 2ñ ô ˆHõ ˜h­Ñ7Ô7ð 7Ø'�xÔ'¨Ð6Ð6°2Ð6Ð6Ð6å‰wŒw×4Ò4°W¸cÑBÔBÐBrÃ   c                óV   —  | j         |j        fi |¤Ž›d | j         |j        fi |¤Ž›d�S )Nr  r   )r±  ry   r�   r”  s       rÁ   Úvisit_getitem_binaryz#StrSQLCompiler.visit_getitem_binaryP  sJ   € àˆDŒL˜œÐ+Ð+¨Ð+Ð+Ð+Ð+ØˆDŒL˜œÐ,Ð,¨Ð,Ð,Ð,Ð,ð
ð 	
rÃ   c                ó    —  | j         ||fi |¤ŽS r  ©rS  r”  s       rÁ   Úvisit_json_getitem_op_binaryz+StrSQLCompiler.visit_json_getitem_op_binaryV  ó   € Ø(ˆtÔ(¨°Ð@Ð@¸RÐ@Ð@Ð@rÃ   c                ó    —  | j         ||fi |¤ŽS r  rU  r”  s       rÁ   Ú!visit_json_path_getitem_op_binaryz0StrSQLCompiler.visit_json_path_getitem_op_binaryY  rW  rÃ   c                ó>   — d| j                              |¦  «        › d�S )Nz<next sequence value: ú>)rŸ  Úformat_sequencerl  s      rÁ   rf  zStrSQLCompiler.visit_sequence\  s%   € àO T¤]×%BÒ%BÀ8Ñ%LÔ%LÐOÐOÐOð	
rÃ   rt  rC   rX  rY  rñ  r  rÉ  r   r  r¾   c               ót   ‡ — ˆ fd„t          j        |¦  «        D ¦   «         }dd                     |¦  «        z   S )Nc           	     óB   •— g | ]}‰                      d |ddi ¦  «        ‘ŒS )NTFrÛ  ©r¿   r…  r  s     €rÁ   r†  z3StrSQLCompiler.returning_clause.<locals>.<listcomp>i  s?   ø€ ð 
ð 
ð 
àð ×%Ò% d¨A¨t°U¸BÑ?Ô?ð
ð 
ð 
rÃ   r]  rÐ   )r   r^  rx   r_  s   `     rÁ   r`  zStrSQLCompiler.returning_clausea  sO   ø€ ð
ð 
ð 
ð 
åÔ+¨NÑ;Ô;ð
ñ 
ô 
ˆð ˜dŸiši¨Ñ0Ô0Ñ0Ð0rÃ   c                ó^   ‡ ‡‡— d‰d<   dd                      ˆˆˆ fd„|D ¦   «         ¦  «        z   S )NTrx  r'  rÐ   c              3  ó8   •K  — | ]} |j         ‰fd ‰i‰¤ŽV — ŒdS ©ry  NrÒ  ©r¿   r=  r  rÉ  r  s     €€€rÁ   r1  z4StrSQLCompiler.update_from_clause.<locals>.<genexpr>s  sQ   øè è € ð #
ð #
àð !ˆAÔ  ÐBÐB°ÐB¸rÐBÐBð#
ð #
ð #
ð #
ð #
ð #
rÃ   r  r  s   `   ``rÁ   r  z!StrSQLCompiler.update_from_clauseo  s]   øøø€ ð ˆˆ8‰Ø˜Ÿšð #
ð #
ð #
ð #
ð #
ð #
à ð#
ñ #
ô #
ñ 
ô 
ñ 
ð 	
rÃ   c                ó^   ‡ ‡‡— d‰d<   dd                      ˆˆˆ fd„|D ¦   «         ¦  «        z   S )NTrx  rÐ   c              3  ó8   •K  — | ]} |j         ‰fd ‰i‰¤ŽV — ŒdS rb  rÒ  rc  s     €€€rÁ   r1  z:StrSQLCompiler.delete_extra_from_clause.<locals>.<genexpr>|  sQ   øè è € ð  
ð  
àð !ˆAÔ  ÐBÐB°ÐB¸rÐBÐBð 
ð  
ð  
ð  
ð  
ð  
rÃ   r  r  s   `   ``rÁ   r"  z'StrSQLCompiler.delete_extra_from_clausex  s]   øøø€ ð ˆˆ8‰Ø�d—i’ið  
ð  
ð  
ð  
ð  
ð  
à ð 
ñ  
ô  
ñ 
ô 
ñ 
ð 	
rÃ   c                ó   — dS )NzSELECT 1 WHERE 1!=1r½   rµ  s      rÁ   r±  z#StrSQLCompiler.visit_empty_set_expr�  s   € Ø$Ð$rÃ   c                ó   — d|z  S )Nz[%s]r½   rø  s      rÁ   rð  z!StrSQLCompiler.get_from_hint_text„  s   € Ø˜‰}ÐrÃ   c                ó    —  | j         |dfi |¤ŽS )Nz
 <regexp> ©r§  r”  s       rÁ   r.  z+StrSQLCompiler.visit_regexp_match_op_binary‡  s   € Ø,ˆtÔ,¨V°\ÐHÐHÀRÐHÐHÐHrÃ   c                ó    —  | j         |dfi |¤ŽS )Nz <not regexp> ri  r”  s       rÁ   r1  z/StrSQLCompiler.visit_not_regexp_match_op_binaryŠ  s    € Ø,ˆtÔ,¨VÐ5EÐLÐLÈÐLÐLÐLrÃ   c                óX   — d |j         j        | fi |¤Ž›d |j        j        | fi |¤Ž›d�S )Nz<regexp replace>(rÐ   r  )ry   rÓ  r�   r”  s       rÁ   r3  z-StrSQLCompiler.visit_regexp_replace_op_binary�  sN   € € à*ˆFŒKÔ*¨4Ð6Ð6°2Ð6Ð6Ð6Ð6Ø+ˆFŒLÔ+¨DÐ7Ð7°BÐ7Ð7Ð7Ð7ð
ð 	
rÃ   c                óX   — d |j         j        | fi |¤Ž›d |j        j        | fi |¤Ž›d�S )Nz	TRY_CAST(rÒ   r  )r+  rÓ  rË  )r  r   rÐ  s      rÁ   Úvisit_try_castzStrSQLCompiler.visit_try_cast“  sN   € € à*ˆDŒKÔ*¨4Ð:Ð:°6Ð:Ð:Ð:Ð:Ø.ˆDŒOÔ.¨tÐ>Ð>°vÐ>Ð>Ð>Ð>ð
ð 	
rÃ   r7  )rÿ   r   r  r  r¤  r&   rB  rÊ  rS  rV  rY  rf  r`  r  r"  r±  rð  r.  r1  r3  rm  rè  ré  s   @rÁ   rH  rH  +  sE  ø€ € € € € ðð ð& ð  ð  ð €TÔÐ0Ñ1Ô1ðCð Cð Cð Cñ 2Ô1ðCð
ð 
ð 
ðAð Að AðAð Að Að
ð 
ð 
ð
1ð 1ð 1ð 1ð
ð 
ð 
ð
ð 
ð 
ð%ð %ð %ðð ð ðIð Ið IðMð Mð Mð
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð 
ð 
rÃ   rH  c                  óz  — e Zd ZdZer	 	 	 dCdDd„Zej        d„ ¦   «         Zej        d„ ¦   «         Z		 	 	 dEdFd„Z
d„ Zd„ Zd„ Zd„ ZdGd„Z	 dHd„Zd „ Zd!„ Zd"„ Z	 dId#„Zd$„ ZdGd%„Zd&„ Zd'„ Zd(„ Zd)„ Zd*„ Zd+„ Zd,„ Zd-„ ZdHd.„Zd/„ Z d0„ Z!d1„ Z"d2„ Z#d3„ Z$d4„ Z%d5„ Z&d6„ Z'd7„ Z(d8„ Z)d9„ Z*d:„ Z+d;„ Z,d<„ Z-d=„ Z.d>„ Z/d?„ Z0d@„ Z1dA„ Z2dB„ Z3dS )JÚDDLCompilerT.r¦  r]   r&  rA   rœ  r›  r§  r  r¨  r©  c                ó   — d S r  r½   r³  s         rÁ   r´  zDDLCompiler.__init__Ÿ  s	   € ð ˆ3rÃ   c                óP   — | j                              | j         d | j        ¬¦  «        S )Nr’  )r¦  rO  rœ  r4  s    rÁ   rÎ  zDDLCompiler.sql_compiler¨  s-   € àŒ|×.Ò.ØŒL˜$°TÔ5Nð /ñ 
ô 
ð 	
rÃ   c                ó   — | j         j        S r  )r¦  rÊ  r4  s    rÁ   Útype_compilerzDDLCompiler.type_compiler®  s   € àŒ|Ô2Ð2rÃ   NrÖ  r×  rØ  rÙ  rÚ  r  rÛ  c                ó   — d S r  r½   rÝ  s       rÁ   rÞ  zDDLCompiler.construct_params²  s	   € ð ˆtrÃ   c                ó  — |j         }t          |j        t          j        ¦  «        r½|                     ¦   «         }| j        }|                     |j        ¦  «        }t          |¦  «        dk    r|d         d}}n|d         |d         }}| 	                    d|¦  «         | 	                    d|¦  «         | 	                    d| 
                    |j        ¦  «        ¦  «         | j                             |j        |z  ¦  «        S )Nr   r   r–  rŒ  rŽ   r#   rp  )Úcontextr¯  Útargetr#   rK   rr  rŸ  Úformat_table_seqr²  rÊ  rï  rÎ  rÕ  r&  )r  ÚddlrÐ  rv  rŸ  ÚpathrŽ   Úschs           rÁ   Ú	visit_ddlzDDLCompiler.visit_ddlº  sè   € à”+ˆÝ�c”j¥&¤,Ñ/Ô/ð 	NØ—l’l‘n”nˆGà”}ˆHØ×,Ò,¨S¬ZÑ8Ô8ˆDÝ�4‰yŒy˜AŠ~ˆ~Ø! !œW b�s��à! "œX t¨A¤w�s�à×Ò˜w¨Ñ.Ô.Ð.Ø×Ò˜x¨Ñ-Ô-Ð-Ø×Ò˜z¨8×+@Ò+@ÀÄÑ+LÔ+LÑMÔMÐMàÔ ×2Ò2°3´=À7Ñ3JÑKÔKÐKrÃ   c                ób   — d}|j         r|dz  }|| j                             |j        ¦  «        z   S )NzCREATE SCHEMA úIF NOT EXISTS )Úif_not_existsrŸ  Úformat_schemarÇ  )r  r”   rÉ  rÔ  s       rÁ   Úvisit_create_schemazDDLCompiler.visit_create_schemaÍ  s:   € ØˆØÔð 	%ØÐ$Ñ$ˆDØ�d”m×1Ò1°&´.ÑAÔAÑAÐArÃ   c                ó~   — d}|j         r|dz  }|| j                             |j        ¦  «        z  }|j        r|dz  }|S )NzDROP SCHEMA ú
IF EXISTS ú CASCADE)Ú	if_existsrŸ  r€  rÇ  Úcascade©r  ÚdroprÉ  rÔ  s       rÁ   Úvisit_drop_schemazDDLCompiler.visit_drop_schemaÓ  sP   € ØˆØŒ>ð 	!Ø�LÑ ˆDØ�”×+Ò+¨D¬LÑ9Ô9Ñ9ˆØŒ<ð 	Ø�JÑˆDØˆrÃ   c                óÎ  — |j         }| j        }d}|j        r |d                     |j        ¦  «        dz   z  }|dz  }|j        r|dz  }||                     |¦  «        dz   z  }|                      |¦  «        }|r||dz   z  }|dz  }d}d}|j        D ]�}	|	j         }
	 |                      |	|
j	        o| ¬¦  «        }|�||z  }d	}|d
|z   z  }|
j	        rd}ŒD# t          j        $ r8}t          j        d|j        ›d|
j        ›d|j        d         ›�¦  «        |‚d }~ww xY w|                      ||j        ¬¦  «        }|r||d
z   |z   z  }|d|                      |¦  «        z  z  }|S )Nz
CREATE r!  zTABLE r~  r  ú
F©Úfirst_pkrC  ú	Tz(in table 'z', column 'z'): r   )Ú _include_foreign_key_constraintsz
)%s

)rÇ  rŸ  r“  rx   r  rï  Úcreate_table_suffixrÒ  r±  rS  r8   rã  Údescriptionrù   ÚargsÚcreate_table_constraintsÚinclude_foreign_key_constraintsÚpost_create_table)r  r”   rÉ  rŽ   rŸ  rÔ  r�  r  r�  Úcreate_columnr“   Ú	processedÚceÚconsts                 rÁ   Úvisit_create_tablezDDLCompiler.visit_create_tableÜ  sþ  € Ø”ˆØ”=ˆàˆØŒ?ð 	4Ø�C—H’H˜Uœ_Ñ-Ô-°Ñ3Ñ3ˆDà�ÑˆØÔð 	%ØÐ$Ñ$ˆDà�×%Ò% eÑ,Ô,¨sÑ2Ñ2ˆà"×6Ò6°uÑ=Ô=ÐØð 	.ØÐ'¨#Ñ-Ñ-ˆDà�‰ˆàˆ	ð ˆØ#œ^ð 	ð 	ˆMØ"Ô*ˆFðØ ŸLšLØ!¨FÔ,>Ð,OÀxÀ<ð )ñ ô �	ð Ð(Ø˜IÑ%�DØ &�IØ˜D 9Ñ,Ñ,�DØÔ%ð $Ø#�HøøÝÔ#ð ð ð ÝÔ&Ð&àÔ(Ð(Ð(¨&¬+¨+¨+°r´w¸q´z°zðCñô ð ðøøøøðøøøð ×-Ò-ØØ-3Ô-Sð .ñ 
ô 
ˆð ð 	-Ø�I Ñ$ uÑ,Ñ,ˆDà�˜d×4Ò4°UÑ;Ô;Ñ;Ñ;ˆØˆs   Â9CÃDÃ&3DÄDFc                ó¶   ‡ — |j         }|j        rd S ‰                      ||¬¦  «        }d                     ˆ fd„|j        D ¦   «         ¦  «        }|r|d|z   z  }|S )NrŒ  r!  c              3  óB   •K  — | ]}‰                      |¦  «        V — Œd S r  )r±  ©r¿   r±   r  s     €rÁ   r1  z2DDLCompiler.visit_create_column.<locals>.<genexpr>  s@   øè è € ð 
ð 
Ø)3ˆD�LŠL˜Ñ$Ô$ð
ð 
ð 
ð 
ð 
ð 
rÃ   )rÇ  ÚsystemÚget_column_specificationrx   Úconstraints)r  r”   r�  rÉ  r“   rÔ  r™  s   `      rÁ   Úvisit_create_columnzDDLCompiler.visit_create_column  sŠ   ø€ Ø”ˆàŒ=ð 	Ø�4à×,Ò,¨V¸hÐ,ÑGÔGˆØ—’ð 
ð 
ð 
ð 
Ø7=Ô7Ið
ñ 
ô 
ñ 
ô 
ˆð ð 	 Ø�C˜%‘KÑˆDàˆrÃ   c                óL  ‡ ‡‡— g }‰j         r|                     ‰j         ¦  «         ‰j        }|�|                     |¦  «        Šnt	          ¦   «         Š|                     ˆˆfd„‰j        D ¦   «         ¦  «         d                     d„ ˆ fd„|D ¦   «         D ¦   «         ¦  «        S )Nc                ó.   •— g | ]}|‰j         u¯|‰v¯|‘ŒS r½   )rS  )r¿   r…  Ú	omit_fkcsrŽ   s     €€rÁ   r†  z8DDLCompiler.create_table_constraints.<locals>.<listcomp>/  s;   ø€ ð ð ð àØ˜EÔ-Ð-Ð-°!¸9Ð2DÐ2Dð à2DÐ2DÐ2DrÃ   z, 
	c              3  ó   K  — | ]}|®|V — Œ	d S r  r½   )r¿   ræ  s     rÁ   r1  z7DDLCompiler.create_table_constraints.<locals>.<genexpr>6  s4   è è € ð 
ð 
àð ˆ}ð ð ˆ}ˆ}ˆ}ð
ð 
rÃ   c              3  ó¦   •K  — | ]K}|                      ‰¦  «        ¯‰j        j        rt          |d d¦  «        °4‰                     |¦  «        V — ŒLdS )Ú	use_alterFN)Ú_should_create_for_compilerr¦  Úsupports_alterr^  r±  r�  s     €rÁ   r1  z7DDLCompiler.create_table_constraints.<locals>.<genexpr>8  s|   øè è € ð ð àØ×:Ò:¸4Ñ@Ô@ðð
 œÔ3ðõ # :¨{¸EÑBÔBðØ—’˜ZÑ(Ô(ðð ð ð ð ð rÃ   )rS  r¤  Úforeign_key_constraintsr  rp   r!  Ú_sorted_constraintsrx   )r  rŽ   r�  rÉ  r   Úall_fkcsr¤  s   ``    @rÁ   r“  z$DDLCompiler.create_table_constraints  sø   øøø€ ð
 ˆØÔð 	2Ø×Ò˜uÔ0Ñ1Ô1Ð1àÔ0ˆØ+Ð7Ø ×+Ò+Ð,LÑMÔMˆIˆIå™œˆIà×Òðð ð ð ð àÔ2ðñ ô ñ	
ô 	
ð 	
ð �}Š}ð 
ð 
ðð ð ð à"-ðñ ô ð
ñ 
ô 
ñ 
ô 
ð 	
rÃ   c                ób   — d}|j         r|dz  }|| j                             |j        ¦  «        z   S )Nz
DROP TABLE rƒ  )r…  rŸ  rï  rÇ  r‡  s       rÁ   Úvisit_drop_tablezDDLCompiler.visit_drop_tableD  s8   € ØˆØŒ>ð 	!Ø�LÑ ˆDØ�d”m×0Ò0°´Ñ>Ô>Ñ>Ð>rÃ   c                óF   — d| j                              |j        ¦  «        z   S )Nz
DROP VIEW ©rŸ  rï  rÇ  ©r  rˆ  rÉ  s      rÁ   Úvisit_drop_viewzDDLCompiler.visit_drop_viewJ  s   € Ø ¤× :Ò :¸4¼<Ñ HÔ HÑHÐHrÃ   c                óL   — |j         €t          j        d|j        z  ¦  «        ‚d S )Nz,Index '%s' is not associated with any table.)rŽ   r8   rã  rù   ©r  rx  s     rÁ   Ú_verify_index_tablezDDLCompiler._verify_index_tableM  s1   € ØŒ;ÐÝÔ"Ø>ÀÄÑKñô ð ð ÐrÃ   c           	     ó„  ‡ — |j         }‰                      |¦  «         ‰ j        }d}|j        r|dz  }|j        €t          j        d¦  «        ‚|dz  }|j        r|dz  }|‰                      ||¬¦  «        ›d| 	                    |j
        |¬¦  «        ›d	d
                     ˆ fd„|j        D ¦   «         ¦  «        ›d�z  }|S )NzCREATE úUNIQUE z0CREATE INDEX requires that the index have a namezINDEX r~  ©Úinclude_schemaru  ©rq  rÏ  rÐ   c              3  óR   •K  — | ]!}‰j                              |d d¬¦  «        V — Œ"dS )FT©r«  r6  N)rÎ  r±  )r¿   r  r  s     €rÁ   r1  z1DDLCompiler.visit_create_index.<locals>.<genexpr>j  sX   øè è € ð ð ð ð Ô!×)Ò)Ø¨¸Tð *ñ ô ðð ð ð ð ð rÃ   r  )rÇ  rµ  rŸ  r›   rù   r8   rã  r  Ú_prepared_index_namerï  rŽ   rx   Úexpressions)r  r”   r¹  Úinclude_table_schemarÉ  rx  rŸ  rÔ  s   `       rÁ   Úvisit_create_indexzDDLCompiler.visit_create_indexS  s&  ø€ ð ”ˆØ× Ò  Ñ'Ô'Ð'Ø”=ˆØˆØŒ<ð 	Ø�IÑˆDØŒ:ÐÝÔ"ØBñô ð ð 	�ÑˆØÔð 	%ØÐ$Ñ$ˆDàØ×%Ò% e¸NÐ%ÑKÔKÐKÐKØ×!Ò!Ø”Ð(<ð "ñ ô ð ð ð �IŠIð ð ð ð ð "Ô-ð	ñ ô ñ ô ð ð ð
ñ 	
ˆð ˆrÃ   c                ó–   — |j         }|j        €t          j        d¦  «        ‚d}|j        r|dz  }||                      |d¬¦  «        z   S )Nz.DROP INDEX requires that the index have a namez
DROP INDEX rƒ  Tr¸  )rÇ  rù   r8   rã  r…  r½  )r  rˆ  rÉ  rx  rÔ  s        rÁ   Úvisit_drop_indexzDDLCompiler.visit_drop_indexs  sb   € Ø”ˆàŒ:ÐÝÔ"Ø@ñô ð ð ˆØŒ>ð 	!Ø�LÑ ˆDà�d×/Ò/°ÀdÐ/ÑKÔKÑKÐKrÃ   c                óâ   — |j         � | j                             |j         ¦  «        }nd }|r|r| j                             |¦  «        }nd }| j                             |¦  «        }|r|dz   |z   }|S ©Nr  )rŽ   rŸ  rµ  r¶  Úformat_index)r  rx  r¹  r¹  Úschema_nameÚ
index_names         rÁ   r½  z DDLCompiler._prepared_index_name€  sŠ   € ØŒ;Ð"Ø#œ}×>Ò>¸u¼{ÑKÔKÐÐà#ÐØð 	Ð.ð 	Øœ-×4Ò4Ð5EÑFÔFˆKˆKàˆKà”]×/Ò/°Ñ6Ô6ˆ
àð 	8Ø$ sÑ*¨ZÑ7ˆJØÐrÃ   c                ó†   — d| j                              |j        j        ¦  «        ›d|                      |j        ¦  «        ›�S )NúALTER TABLE z ADD )rŸ  rï  rÇ  rŽ   r±  ©r  r”   rÉ  s      rÁ   Úvisit_add_constraintz DDLCompiler.visit_add_constraint�  s@   € € àŒM×&Ò& v¤~Ô';Ñ<Ô<Ð<Ð<Ø�LŠL˜œÑ(Ô(Ð(ð
ð 	
rÃ   c                ó´   — d| j                              |j        ¦  «        ›d| j                             |j        j        t          j        ¦   «         ¦  «        ›�S )NzCOMMENT ON TABLE rÓ   )rŸ  rï  rÇ  rÎ  r  Úcommentr%   ÚStringrÊ  s      rÁ   Úvisit_set_table_commentz#DDLCompiler.visit_set_table_comment–  sV   € € àŒM×&Ò& v¤~Ñ6Ô6Ð6Ð6ØÔ×2Ò2Ø”Ô&­¬Ñ(9Ô(9ñô ð ð
ð 	
rÃ   c                óF   — d| j                              |j        ¦  «        z  S )NzCOMMENT ON TABLE %s IS NULLr°  r±  s      rÁ   Úvisit_drop_table_commentz$DDLCompiler.visit_drop_table_commentž  s(   € Ø,¨t¬}×/IÒ/IØŒLñ0
ô 0
ñ 
ð 	
rÃ   c                óº   — d| j                              |j        dd¬¦  «        ›d| j                             |j        j        t          j        ¦   «         ¦  «        ›�S )NzCOMMENT ON COLUMN T)Ú	use_tablerq  rÓ   )rŸ  Úformat_columnrÇ  rÎ  r  rÍ  r%   rÎ  rÊ  s      rÁ   Úvisit_set_column_commentz$DDLCompiler.visit_set_column_comment£  sj   € € àŒM×'Ò'Ø”¨$¸4ð (ñ ô ð ð ð Ô×2Ò2Ø”Ô&­¬Ñ(9Ô(9ñô ð ð	
ð 	
rÃ   c                óJ   — d| j                              |j        d¬¦  «        z  S )NzCOMMENT ON COLUMN %s IS NULLT)rÓ  )rŸ  rÔ  rÇ  r±  s      rÁ   Úvisit_drop_column_commentz%DDLCompiler.visit_drop_column_comment­  s0   € Ø-°´×0KÒ0KØŒL Dð 1Lñ 1
ô 1
ñ 
ð 	
rÃ   c                óF   — t          j        | t          |¦  «        ¦  «        ‚r  rÄ  rÊ  s      rÁ   Úvisit_set_constraint_commentz(DDLCompiler.visit_set_constraint_comment²  s   € ÝÔ-¨dµD¸±L´LÑAÔAÐArÃ   c                óF   — t          j        | t          |¦  «        ¦  «        ‚r  rÄ  r±  s      rÁ   Úvisit_drop_constraint_commentz)DDLCompiler.visit_drop_constraint_commentµ  s   € ÝÔ-¨dµD¸±J´JÑ?Ô?Ð?rÃ   c                óR  — g }|j         �|                     d|j         z  ¦  «         |j        �|                     d|j        z  ¦  «         |j        �|                     d|j        z  ¦  «         |j        �|                     d|j        z  ¦  «         |j        �|                     d¦  «         |j        �|                     d¦  «         |j        �|                     d|j        z  ¦  «         |j        �|                     |j        rdnd	¦  «         d
 	                    |¦  «        S )NzINCREMENT BY %dzSTART WITH %dzMINVALUE %dzMAXVALUE %dzNO MINVALUEzNO MAXVALUEzCACHE %dÚCYCLEzNO CYCLEr!  )
Ú	incrementr¤  rƒ  ÚminvalueÚmaxvalueÚ
nominvalueÚ
nomaxvalueÚcacheÚcyclerx   )r  Úidentity_optionsrÔ  s      rÁ   Úget_identity_optionsz DDLCompiler.get_identity_options¸  s*  € ØˆØÔ%Ð1Ø�KŠKÐ)Ð,<Ô,FÑFÑGÔGÐGØÔ!Ð-Ø�KŠK˜Ð*:Ô*@Ñ@ÑAÔAÐAØÔ$Ð0Ø�KŠK˜Ð(8Ô(AÑAÑBÔBÐBØÔ$Ð0Ø�KŠK˜Ð(8Ô(AÑAÑBÔBÐBØÔ&Ð2Ø�KŠK˜Ñ&Ô&Ð&ØÔ&Ð2Ø�KŠK˜Ñ&Ô&Ð&ØÔ!Ð-Ø�KŠK˜
Ð%5Ô%;Ñ;Ñ<Ô<Ð<ØÔ!Ð-Ø�KŠKÐ#3Ô#9ÐI˜˜¸zÑJÔJÐJØ�xŠx˜‰~Œ~ÐrÃ   c                ó¼   — d}|j         r|dz  }|| j                             |j        ¦  «        z  }|r||z  }|                      |j        ¦  «        }|r|d|z   z  }|S )NzCREATE SEQUENCE r~  r!  )r  rŸ  r\  rÇ  ræ  )r  r”   r@  rÉ  rÔ  Úoptionss         rÁ   Úvisit_create_sequencez!DDLCompiler.visit_create_sequenceÌ  sz   € Ø!ˆØÔð 	%ØÐ$Ñ$ˆDØ�”×-Ò-¨f¬nÑ=Ô=Ñ=ˆàð 	Ø�F‰NˆDØ×+Ò+¨F¬NÑ;Ô;ˆØð 	"Ø�C˜'‘MÑ!ˆDØˆrÃ   c                ób   — d}|j         r|dz  }|| j                             |j        ¦  «        z   S )NzDROP SEQUENCE rƒ  )r…  rŸ  r\  rÇ  r‡  s       rÁ   Úvisit_drop_sequencezDDLCompiler.visit_drop_sequenceÙ  s8   € ØˆØŒ>ð 	!Ø�LÑ ˆDØ�d”m×3Ò3°D´LÑAÔAÑAÐArÃ   c                ó  — |j         }|j        �| j                             |¦  «        }nd }|€t	          j        d|j         z  ¦  «        ‚d| j                             |j         j        ¦  «        ›d|j        rdnd›|›|j	        rdnd›�S )Nz<Can't emit DROP CONSTRAINT for constraint %r; it has no namerÉ  z DROP CONSTRAINT rƒ  r–  r„  )
rÇ  rù   rŸ  Úformat_constraintr8   rã  rï  rŽ   r…  r†  )r  rˆ  rÉ  r±   Úformatted_names        rÁ   Úvisit_drop_constraintz!DDLCompiler.visit_drop_constraintß  s­   € Ø”\ˆ
ØŒ?Ð&Ø!œ]×<Ò<¸ZÑHÔHˆNˆNà!ˆNàÐ!ÝÔ"ð!Ø#'¤<ñ0ñô ð ð "ð ŒM×&Ò& t¤|Ô'9Ñ:Ô:Ð:Ð:Ø œNÐ2ˆLˆL°Ð2ØˆNØœ,Ð.ˆJˆJ¨BÐ.ð	
ð 	
rÃ   c                ó¾  — | j                              |¦  «        dz   | j        j                             |j        |¬¦  «        z   }|                      |¦  «        }|�|d|z   z  }|j        � |d|                      |j        ¦  «        z   z  }|j        �,| j        j	        r |d|                      |j        ¦  «        z   z  }|j
        s|j        r| j        j	        s|dz  }|S )Nr!  )rÉ  z	 DEFAULT z	 NOT NULL)rŸ  rÔ  r¦  rÊ  r±  rý   Úget_column_default_stringÚcomputedÚidentityÚsupports_identity_columnsÚnullable)r  r“   rÐ  Úcolspecr    s        rÁ   rŸ  z$DDLCompiler.get_column_specificationò  s  € àŒM×'Ò'¨Ñ/Ô/ØñàŒlÔ1×9Ò9Ø”¨Vð :ñ ô ñð 	ð ×0Ò0°Ñ8Ô8ˆØÐØ�{ WÑ,Ñ,ˆGàŒ?Ð&Ø�s˜TŸ\š\¨&¬/Ñ:Ô:Ñ:Ñ:ˆGð ŒOÐ'Ø”Ô6ð (ð �s˜TŸ\š\¨&¬/Ñ:Ô:Ñ:Ñ:ˆGàŒð 	#Ø”ð	#Ø'+¤|Ô'Mð	#ð �{Ñ"ˆGØˆrÃ   c                ó   — dS ©Nr–  r½   ©r  rŽ   s     rÁ   r�  zDDLCompiler.create_table_suffix  ó   € ØˆrrÃ   c                ó   — dS rø  r½   rù  s     rÁ   r•  zDDLCompiler.post_create_table  rú  rÃ   c                ó‚   — t          |j        t          j        ¦  «        r|                      |j        j        ¦  «        S d S r  )r¯  Úserver_defaultr#   ÚDefaultClauseÚrender_default_stringÚargr£  s     rÁ   rñ  z%DDLCompiler.get_column_default_string  s9   € Ý�fÔ+­VÔ-AÑBÔBð 	Ø×-Ò-¨fÔ.CÔ.GÑHÔHÐHà�4rÃ   c                ó®   — t          |t          ¦  «        r%| j                             |t          j        ¦  «        S | j                             |d¬¦  «        S )NT)r6  )r¯  r¾   rÎ  r  r%   rò  r±  )r  r    s     rÁ   rÿ  z!DDLCompiler.render_default_string  sV   € Ý�g�sÑ#Ô#ð 	JØÔ$×9Ò9Ø�Ô,ñô ð ð Ô$×,Ò,¨WÀDÐ,ÑIÔIÐIrÃ   c                ód   — |j         r|                      |¦  «        S |                      |¦  «        S r  )Úis_column_levelÚvisit_column_check_constraintÚvisit_check_constraint©r  r±   rÉ  s      rÁ   Ú&visit_table_or_column_check_constraintz2DDLCompiler.visit_table_or_column_check_constraint!  s5   € ØÔ%ð 	;Ø×5Ò5°jÑAÔAÐAà×.Ò.¨zÑ:Ô:Ð:rÃ   c                óà   — d}|j         �$| j                             |¦  «        }|�|d|z  z  }|d| j                             |j        dd¬¦  «        z  z  }||                      |¦  «        z  }|S ©Nr–  úCONSTRAINT %s z
CHECK (%s)FTr¼  ©rù   rŸ  rí  rÎ  r±  ro  Údefine_constraint_deferrability©r  r±   rÉ  rÔ  rî  s        rÁ   r  z"DDLCompiler.visit_check_constraint'  óŽ   € ØˆØŒ?Ð&Ø!œ]×<Ò<¸ZÑHÔHˆNØÐ)ØÐ(¨>Ñ9Ñ9�Ø�˜tÔ0×8Ò8ØÔ¨eÀ4ð  9ñ  
ô  
ñ 
ñ 	
ˆð 	�×4Ò4°ZÑ@Ô@Ñ@ˆØˆrÃ   c                óà   — d}|j         �$| j                             |¦  «        }|�|d|z  z  }|d| j                             |j        dd¬¦  «        z  z  }||                      |¦  «        z  }|S r	  r  r  s        rÁ   r  z)DDLCompiler.visit_column_check_constraint3  r  rÃ   c                ó:  ‡ — t          |¦  «        dk    rdS d}|j        �$‰ j                             |¦  «        }|�|d|z  z  }|dz  }|dd                     ˆ fd„|j        r|j        n|j        D ¦   «         ¦  «        z  z  }|‰                      |¦  «        z  }|S )Nr   r–  r
  zPRIMARY KEY r  rÐ   c              3  óV   •K  — | ]#}‰j                              |j        ¦  «        V — Œ$d S r  ©rŸ  r³  rù   r_  s     €rÁ   r1  z;DDLCompiler.visit_primary_key_constraint.<locals>.<genexpr>H  sI   øè è € ð #
ð #
àð ŒM×Ò ¤Ñ'Ô'ð#
ð #
ð #
ð #
ð #
ð #
rÃ   )	r²  rù   rŸ  rí  rx   Ú_implicit_generatedÚcolumns_autoinc_firstrÒ  r  r  s   `    rÁ   Úvisit_primary_key_constraintz(DDLCompiler.visit_primary_key_constraint?  sÙ   ø€ Ýˆz‰?Œ?˜aÒÐØ�2ØˆØŒ?Ð&Ø!œ]×<Ò<¸ZÑHÔHˆNØÐ)ØÐ(¨>Ñ9Ñ9�Ø�ÑˆØ�˜Ÿšð #
ð #
ð #
ð #
ð Ô1ð(�
Ô0Ð0àÔ'ð#
ñ #
ô #
ñ 
ô 
ñ 
ñ 	
ˆð 	�×4Ò4°ZÑ@Ô@Ñ@ˆØˆrÃ   c           
     ó   ‡— | j         Šd}|j        �$| j                              |¦  «        }|�|d|z  z  }t          |j        ¦  «        d         j        j        }|dd                     ˆfd„|j        D ¦   «         ¦  «        ›d|                      ||‰¦  «        ›dd                     ˆfd	„|j        D ¦   «         ¦  «        ›d
�z  }||  	                    |¦  «        z  }||  
                    |¦  «        z  }||                      |¦  «        z  }|S )Nr–  r
  r   zFOREIGN KEY(rÐ   c              3  óV   •K  — | ]#}‰                      |j        j        ¦  «        V — Œ$d S r  )r³  Úparentrù   ©r¿   r2  rŸ  s     €rÁ   r1  z;DDLCompiler.visit_foreign_key_constraint.<locals>.<genexpr>\  óD   øè è € ð ð Ø23�—’˜qœxœ}Ñ-Ô-ðð ð ð ð ð rÃ   z) REFERENCES rÏ  c              3  óV   •K  — | ]#}‰                      |j        j        ¦  «        V — Œ$d S r  )r³  r“   rù   r  s     €rÁ   r1  z;DDLCompiler.visit_foreign_key_constraint.<locals>.<genexpr>b  r  rÃ   r  )rŸ  rù   rí  r‘  r   r“   rŽ   rx   Údefine_constraint_remote_tableÚdefine_constraint_matchÚdefine_constraint_cascadesr  )r  r±   rÉ  rÔ  rî  Úremote_tablerŸ  s         @rÁ   Úvisit_foreign_key_constraintz(DDLCompiler.visit_foreign_key_constraintS  sm  ø€ Ø”=ˆØˆØŒ?Ð&Ø!œ]×<Ò<¸ZÑHÔHˆNØÐ)ØÐ(¨>Ñ9Ñ9�Ý˜JÔ/Ñ0Ô0°Ô3Ô:Ô@ˆØˆØ�IŠIð ð ð ð Ø7AÔ7Jðñ ô ñ ô ð ð ð ×/Ò/Ø˜L¨(ñô ð ð ð �IŠIð ð ð ð Ø7AÔ7Jðñ ô ñ ô ð ð ð

ñ 
	
ˆð 	�×,Ò,¨ZÑ8Ô8Ñ8ˆØ�×/Ò/°
Ñ;Ô;Ñ;ˆØ�×4Ò4°ZÑ@Ô@Ñ@ˆØˆrÃ   c                ó,   — |                      |¦  «        S )z=Format the remote table clause of a CREATE CONSTRAINT clause.)rï  )r  r±   rŽ   rŸ  s       rÁ   r  z*DDLCompiler.define_constraint_remote_tablek  s   € ð ×$Ò$ UÑ+Ô+Ð+rÃ   c                ó*  ‡ — t          |¦  «        dk    rdS d}|j        �$‰ j                             |¦  «        }|�|d|z  z  }|d ‰ j        |fi |¤Ž›dd                     ˆ fd„|D ¦   «         ¦  «        ›d�z  }|‰                      |¦  «        z  }|S )	Nr   r–  r
  r·  r  rÐ   c              3  óV   •K  — | ]#}‰j                              |j        ¦  «        V — Œ$d S r  r  r_  s     €rÁ   r1  z6DDLCompiler.visit_unique_constraint.<locals>.<genexpr>z  s5   øè è € ÐFÐF°a�d”m×)Ò)¨!¬&Ñ1Ô1ÐFÐFÐFÐFÐFÐFrÃ   r  )r²  rù   rŸ  rí  Ú!define_unique_constraint_distinctrx   r  r  s   `    rÁ   Úvisit_unique_constraintz#DDLCompiler.visit_unique_constraintp  sÉ   ø€ Ýˆz‰?Œ?˜aÒÐØ�2ØˆØŒ?Ð&Ø!œ]×<Ò<¸ZÑHÔHˆNØÐ)ØÐ(¨>Ñ9Ñ9�ØˆØ2ˆDÔ2°:ÐDÐDÀÐDÐDÐDÐDØ�IŠIÐFÐFÐFÐF¸:ÐFÑFÔFÑFÔFÐFÐFð
ñ 	
ˆð 	�×4Ò4°ZÑ@Ô@Ñ@ˆØˆrÃ   c                ó   — dS rø  r½   r  s      rÁ   r$  z-DDLCompiler.define_unique_constraint_distinct  rú  rÃ   c                óÒ   — d}|j         �+|d| j                             |j         t          ¦  «        z  z  }|j        �+|d| j                             |j        t
          ¦  «        z  z  }|S )Nr–  z ON DELETE %sz ON UPDATE %s)ÚondeleterŸ  Úvalidate_sql_phraseÚFK_ON_DELETEÚonupdateÚFK_ON_UPDATE©r  r±   rÔ  s      rÁ   r  z&DDLCompiler.define_constraint_cascades‚  s|   € ØˆØÔÐ*Ø�O d¤m×&GÒ&GØÔ#¥\ñ'ô 'ñ ñ ˆDð ÔÐ*Ø�O d¤m×&GÒ&GØÔ#¥\ñ'ô 'ñ ñ ˆDð ˆrÃ   c                ó    — d}|j         �|j         r|dz  }n|dz  }|j        �+|d| j                             |j        t          ¦  «        z  z  }|S )Nr–  z DEFERRABLEz NOT DEFERRABLEz INITIALLY %s)r²   r¬   rŸ  r)  ÚFK_INITIALLYr-  s      rÁ   r  z+DDLCompiler.define_constraint_deferrabilityŽ  so   € ØˆØÔ Ð,ØÔ$ð *Ø˜Ñ%��àÐ)Ñ)�ØÔÐ+Ø�O d¤m×&GÒ&GØÔ$¥lñ'ô 'ñ ñ ˆDð ˆrÃ   c                ó2   — d}|j         �|d|j         z  z  }|S )Nr–  z	 MATCH %s)r3  r-  s      rÁ   r  z#DDLCompiler.define_constraint_match›  s'   € ØˆØÔÐ'Ø�K *Ô"2Ñ2Ñ2ˆDØˆrÃ   c                óŠ   — d| j                              |j        dd¬¦  «        z  }|j        du r|dz  }n|j        du r|dz  }|S )NzGENERATED ALWAYS AS (%s)FTr¼  z STOREDz VIRTUAL)rÎ  r±  ro  Ú	persisted)r  Ú	generatedrÉ  rÔ  s       rÁ   Úvisit_computed_columnz!DDLCompiler.visit_computed_column¡  sj   € Ø)¨DÔ,=×,EÒ,EØÔ¨UÀ$ð -Fñ -
ô -
ñ 
ˆð Ô $Ð&Ð&Ø�IÑˆDˆDØÔ  EÐ)Ð)Ø�JÑˆDØˆrÃ   c                ób   — d|j         rdnd›d�}|                      |¦  «        }|r|d|z  z  }|S )Nz
GENERATED ÚALWAYSz
BY DEFAULTz AS IDENTITYrÚ  )Úalwaysræ  )r  ró  rÉ  rÔ  rè  s        rÁ   Úvisit_identity_columnz!DDLCompiler.visit_identity_column«  sP   € € à œÐ9ˆHˆH¨\Ð9Ð9ð
ˆð ×+Ò+¨HÑ5Ô5ˆØð 	&Ø�G˜gÑ%Ñ%ˆDØˆrÃ   )...)
r¦  r]   r&  rA   rœ  r›  r§  r  r¨  r©  rá  râ  r5  r  )FT)4rÿ   r   r  rä  r   r´  r&   r>  rÎ  rs  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   r  r%  r$  r  r  r  r4  r8  r½   rÃ   rÁ   ro  ro  š  sP  € € € € € Ø€Fàð 	ð FIØ,/Ø03ð	ð 	ð 	ð 	ð 	ð 
Ôð
ð 
ñ Ôð
ð
 
Ôð3ð 3ñ Ôð3ð
 6:ØGKØ!ð	ð ð ð ð ðLð Lð Lð&Bð Bð Bðð ð ð2ð 2ð 2ðhð ð ð ð  7;ð#
ð #
ð #
ð #
ðJ?ð ?ð ?ðIð Ið Iðð ð ð BFðð ð ð ð@Lð Lð Lðð ð ð ð 
ð 
ð 
ð
ð 
ð 
ð
ð 
ð 
ð

ð 
ð 
ð
ð 
ð 
ð
Bð Bð Bð@ð @ð @ðð ð ð(ð ð ð ðBð Bð Bð
ð 
ð 
ð&ð ð ð6ð ð ðð ð ðð ð ðJð Jð Jð;ð ;ð ;ð
ð 
ð 
ð
ð 
ð 
ðð ð ð(ð ð ð0,ð ,ð ,ð
ð ð ðð ð ð
ð 
ð 
ðð ð ðð ð ðð ð ðð ð ð ð rÃ   ro  c                  ó*  — e 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d„ Zd„ Zd1d„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 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.d.„ Z/d/„ Z0d0„ Z1dS )2ÚGenericTypeCompilerc                ó   — dS )NÚFLOATr½   rï  s      rÁ   Úvisit_FLOATzGenericTypeCompiler.visit_FLOAT¶  ó   € ØˆwrÃ   c                ó   — dS )NÚDOUBLEr½   rï  s      rÁ   Úvisit_DOUBLEz GenericTypeCompiler.visit_DOUBLE¹  ó   € ØˆxrÃ   c                ó   — dS )NzDOUBLE PRECISIONr½   rï  s      rÁ   Úvisit_DOUBLE_PRECISIONz*GenericTypeCompiler.visit_DOUBLE_PRECISION¼  s   € Ø!Ð!rÃ   c                ó   — dS )NÚREALr½   rï  s      rÁ   Ú
visit_REALzGenericTypeCompiler.visit_REAL¿  rø  rÃ   c                ó^   — |j         €dS |j        €dd|j         iz  S d|j         |j        dœz  S )NÚNUMERICzNUMERIC(%(precision)s)Ú	precisionz!NUMERIC(%(precision)s, %(scale)s)©rJ  ÚscalerK  rï  s      rÁ   Úvisit_NUMERICz!GenericTypeCompiler.visit_NUMERICÂ  óJ   € ØŒ?Ð"Ø�9ØŒ[Ð Ø+¨{¸E¼OÐ.LÑLÐLà6Ø"œ_Øœð:ð :ñ ð rÃ   c                ó^   — |j         €dS |j        €dd|j         iz  S d|j         |j        dœz  S )NÚDECIMALzDECIMAL(%(precision)s)rJ  z!DECIMAL(%(precision)s, %(scale)s)rK  rK  rï  s      rÁ   Úvisit_DECIMALz!GenericTypeCompiler.visit_DECIMALÍ  rN  rÃ   c                ó   — dS )NÚINTEGERr½   rï  s      rÁ   Úvisit_INTEGERz!GenericTypeCompiler.visit_INTEGERØ  ó   € ØˆyrÃ   c                ó   — dS )NÚSMALLINTr½   rï  s      rÁ   Úvisit_SMALLINTz"GenericTypeCompiler.visit_SMALLINTÛ  ó   € ØˆzrÃ   c                ó   — dS )NÚBIGINTr½   rï  s      rÁ   Úvisit_BIGINTz GenericTypeCompiler.visit_BIGINTÞ  rB  rÃ   c                ó   — dS )NÚ	TIMESTAMPr½   rï  s      rÁ   Úvisit_TIMESTAMPz#GenericTypeCompiler.visit_TIMESTAMPá  s   € Øˆ{rÃ   c                ó   — dS )NÚDATETIMEr½   rï  s      rÁ   Úvisit_DATETIMEz"GenericTypeCompiler.visit_DATETIMEä  rY  rÃ   c                ó   — dS )NÚDATEr½   rï  s      rÁ   Ú
visit_DATEzGenericTypeCompiler.visit_DATEç  rø  rÃ   c                ó   — dS )NÚTIMEr½   rï  s      rÁ   Ú
visit_TIMEzGenericTypeCompiler.visit_TIMEê  rø  rÃ   c                ó   — dS )NÚCLOBr½   rï  s      rÁ   Ú
visit_CLOBzGenericTypeCompiler.visit_CLOBí  rø  rÃ   c                ó   — dS )NÚNCLOBr½   rï  s      rÁ   Úvisit_NCLOBzGenericTypeCompiler.visit_NCLOBð  r>  rÃ   Nc                óp   — |}|r	|d|z  z  }n|j         r|d|j         z  z  }|j        r|d|j        z  z  }|S )Nú(%d)z COLLATE "%s")Úlengthr¿  )r  r  rù   Úlength_overriderÔ  s        rÁ   Ú_render_string_typez'GenericTypeCompiler._render_string_typeó  s[   € ØˆØð 	*Ø�F˜_Ñ,Ñ,ˆDˆDØŒ\ð 	*Ø�F˜Uœ\Ñ)Ñ)ˆDØŒ?ð 	6Ø�O e¤oÑ5Ñ5ˆDØˆrÃ   c                ó.   — |                       |d¦  «        S )NÚCHAR©rs  rï  s      rÁ   Ú
visit_CHARzGenericTypeCompiler.visit_CHARý  ó   € Ø×'Ò'¨¨vÑ6Ô6Ð6rÃ   c                ó.   — |                       |d¦  «        S )NÚNCHARrv  rï  s      rÁ   Úvisit_NCHARzGenericTypeCompiler.visit_NCHAR   s   € Ø×'Ò'¨¨wÑ7Ô7Ð7rÃ   c                ó.   — |                       |d¦  «        S )NÚVARCHARrv  rï  s      rÁ   Úvisit_VARCHARz!GenericTypeCompiler.visit_VARCHAR  s   € Ø×'Ò'¨¨yÑ9Ô9Ð9rÃ   c                ó.   — |                       |d¦  «        S )NÚNVARCHARrv  rï  s      rÁ   Úvisit_NVARCHARz"GenericTypeCompiler.visit_NVARCHAR  s   € Ø×'Ò'¨¨zÑ:Ô:Ð:rÃ   c                ó.   — |                       |d¦  «        S )NÚTEXTrv  rï  s      rÁ   Ú
visit_TEXTzGenericTypeCompiler.visit_TEXT	  rx  rÃ   c                ó   — dS )NÚUUIDr½   rï  s      rÁ   Ú
visit_UUIDzGenericTypeCompiler.visit_UUID  rø  rÃ   c                ó   — dS )NÚBLOBr½   rï  s      rÁ   Ú
visit_BLOBzGenericTypeCompiler.visit_BLOB  rø  rÃ   c                ó.   — d|j         r
d|j         z  pdz   S )NÚBINARYrp  r–  ©rq  rï  s      rÁ   Úvisit_BINARYz GenericTypeCompiler.visit_BINARY  s    € Ø˜5œ<ÐA¨F°U´\Ñ,AÐGÀRÑHÐHrÃ   c                ó.   — d|j         r
d|j         z  pdz   S )NÚ	VARBINARYrp  r–  r�  rï  s      rÁ   Úvisit_VARBINARYz#GenericTypeCompiler.visit_VARBINARY  s    € Ø˜eœlÐD¨v¸¼Ñ/DÐJÈÑKÐKrÃ   c                ó   — dS )NÚBOOLEANr½   rï  s      rÁ   Úvisit_BOOLEANz!GenericTypeCompiler.visit_BOOLEAN  rU  rÃ   c                ót   — |j         r| j        j        s|                      |dd¬¦  «        S  | j        |fi |¤ŽS )Nru  é    )rr  )Únative_uuidr¦  Úsupports_native_uuidrs  r‡  rï  s      rÁ   Ú
visit_uuidzGenericTypeCompiler.visit_uuid  sN   € ØÔ ð 	0¨¬Ô(Ið 	0Ø×+Ò+¨E°6È2Ð+ÑNÔNÐNà"�4”? 5Ð/Ð/¨BÐ/Ð/Ð/rÃ   c                ó   —  | j         |fi |¤ŽS r  )rŠ  rï  s      rÁ   Úvisit_large_binaryz&GenericTypeCompiler.visit_large_binary!  ó   € ØˆtŒ˜uÐ+Ð+¨Ð+Ð+Ð+rÃ   c                ó   —  | j         |fi |¤ŽS r  )r”  rï  s      rÁ   Úvisit_booleanz!GenericTypeCompiler.visit_boolean$  ó   € Ø!ˆtÔ! %Ð.Ð.¨2Ð.Ð.Ð.rÃ   c                ó   —  | j         |fi |¤ŽS r  )rh  rï  s      rÁ   Ú
visit_timezGenericTypeCompiler.visit_time'  rœ  rÃ   c                ó   —  | j         |fi |¤ŽS r  )rb  rï  s      rÁ   Úvisit_datetimez"GenericTypeCompiler.visit_datetime*  ó   € Ø"ˆtÔ" 5Ð/Ð/¨BÐ/Ð/Ð/rÃ   c                ó   —  | j         |fi |¤ŽS r  )re  rï  s      rÁ   Ú
visit_datezGenericTypeCompiler.visit_date-  rœ  rÃ   c                ó   —  | j         |fi |¤ŽS r  )r\  rï  s      rÁ   Úvisit_big_integerz%GenericTypeCompiler.visit_big_integer0  ó   € Ø ˆtÔ  Ð-Ð-¨"Ð-Ð-Ð-rÃ   c                ó   —  | j         |fi |¤ŽS r  )rX  rï  s      rÁ   Úvisit_small_integerz'GenericTypeCompiler.visit_small_integer3  r¤  rÃ   c                ó   —  | j         |fi |¤ŽS r  )rT  rï  s      rÁ   Úvisit_integerz!GenericTypeCompiler.visit_integer6  rŸ  rÃ   c                ó   —  | j         |fi |¤ŽS r  )rG  rï  s      rÁ   Ú
visit_realzGenericTypeCompiler.visit_real9  rœ  rÃ   c                ó   —  | j         |fi |¤ŽS r  )r=  rï  s      rÁ   Úvisit_floatzGenericTypeCompiler.visit_float<  s   € ØˆtÔ Ð,Ð,¨Ð,Ð,Ð,rÃ   c                ó   —  | j         |fi |¤ŽS r  )rA  rï  s      rÁ   Úvisit_doublez GenericTypeCompiler.visit_double?  r©  rÃ   c                ó   —  | j         |fi |¤ŽS r  )rM  rï  s      rÁ   Úvisit_numericz!GenericTypeCompiler.visit_numericB  rŸ  rÃ   c                ó   —  | j         |fi |¤ŽS r  ©r~  rï  s      rÁ   Úvisit_stringz GenericTypeCompiler.visit_stringE  rŸ  rÃ   c                ó   —  | j         |fi |¤ŽS r  r·  rï  s      rÁ   Úvisit_unicodez!GenericTypeCompiler.visit_unicodeH  rŸ  rÃ   c                ó   —  | j         |fi |¤ŽS r  ©r„  rï  s      rÁ   Ú
visit_textzGenericTypeCompiler.visit_textK  rœ  rÃ   c                ó   —  | j         |fi |¤ŽS r  r¼  rï  s      rÁ   Úvisit_unicode_textz&GenericTypeCompiler.visit_unicode_textN  rœ  rÃ   c                ó   —  | j         |fi |¤ŽS r  r·  rï  s      rÁ   Ú
visit_enumzGenericTypeCompiler.visit_enumQ  rŸ  rÃ   c                ó0   — t          j        d|z  ¦  «        ‚)NzKCan't generate DDL for %r; did you forget to specify a type on this Column?r¢  rï  s      rÁ   r÷  zGenericTypeCompiler.visit_nullT  s$   € ÝÔð#à%*ñ+ñ
ô 
ð 	
rÃ   c                óN   —  | j         |                     | j        ¦  «        fi |¤ŽS r  )r±  Útype_enginer¦  rï  s      rÁ   Úvisit_type_decoratorz(GenericTypeCompiler.visit_type_decorator[  s,   € ØˆtŒ|˜E×-Ò-¨d¬lÑ;Ô;ÐBÐB¸rÐBÐBÐBrÃ   c                ó   —  |j         di |¤ŽS r6  )Úget_col_specrï  s      rÁ   Úvisit_user_definedz&GenericTypeCompiler.visit_user_defined^  s   € Ø!ˆuÔ!Ð'Ð' BÐ'Ð'Ð'rÃ   r  )2rÿ   r   r  r=  rA  rD  rG  rM  rQ  rT  rX  r\  r_  rb  re  rh  rk  rn  rs  rw  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:  r:  µ  sã  € € € € € ðð ð ðð ð ð"ð "ð "ðð ð ð	ð 	ð 	ð	ð 	ð 	ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð ð7ð 7ð 7ð8ð 8ð 8ð:ð :ð :ð;ð ;ð ;ð7ð 7ð 7ðð ð ðð ð ðIð Ið IðLð Lð Lðð ð ð0ð 0ð 0ð,ð ,ð ,ð/ð /ð /ð,ð ,ð ,ð0ð 0ð 0ð,ð ,ð ,ð.ð .ð .ð0ð 0ð 0ð/ð /ð /ð,ð ,ð ,ð-ð -ð -ð.ð .ð .ð/ð /ð /ð/ð /ð /ð/ð /ð /ð,ð ,ð ,ð,ð ,ð ,ð/ð /ð /ð
ð 
ð 
ðCð Cð Cð(ð (ð (ð (ð (rÃ   r:  c                  ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚStrSQLTypeCompilerc                ó`   — 	 |j         } || fi |¤ŽS # t          $ r  | j        |fi |¤ŽcY S w xY wr  )rÓ  ÚAttributeErrorÚ_visit_unknown)r  r  rÉ  rÓ  s       rÁ   r±  zStrSQLTypeCompiler.processc  si   € ð	2Ø!&Ô!9Ðð &Ð% dÐ1Ð1¨bÐ1Ð1Ð1øõ ð 	4ð 	4ð 	4Ø&�4Ô& uÐ3Ð3°Ð3Ð3Ð3Ð3Ð3ð	4øøøs   ‚ ’-¬-c                óX   — |                      d¦  «        r| j        S t          |¦  «        ‚)Nr„  )rl  rÍ  rÌ  )r  r0  s     rÁ   Ú__getattr__zStrSQLTypeCompiler.__getattr__k  s-   € Ø�>Š>˜(Ñ#Ô#ð 	&ØÔ&Ð&å  Ñ%Ô%Ð%rÃ   c                ó�   — |j         j        |j         j                             ¦   «         k    r|j         j        S t          |¦  «        S r  )rº  rÿ   ÚupperÚreprrï  s      rÁ   rÍ  z!StrSQLTypeCompiler._visit_unknownq  s:   € ØŒ?Ô# u¤Ô'?×'EÒ'EÑ'GÔ'GÒGÐGØ”?Ô+Ð+å˜‘;”;ÐrÃ   c                ó   — dS rô  r½   rï  s      rÁ   r÷  zStrSQLTypeCompiler.visit_nullw  rø  rÃ   c                ó`   — 	 |j         } |di |¤ŽS # t          $ r t          |¦  «        cY S w xY wr6  )rÇ  rÌ  rÒ  )r  r  rÉ  rÇ  s       rÁ   rÈ  z%StrSQLTypeCompiler.visit_user_definedz  sV   € ð	&Ø Ô-ˆLð  �<Ð%Ð% "Ð%Ð%Ð%øõ ð 	ð 	ð 	Ý˜‘;”;ÐÐÐð	øøøs   ‚ ‘-¬-N)rÿ   r   r  r±  rÏ  rÍ  r÷  rÈ  r½   rÃ   rÁ   rÊ  rÊ  b  s_   € € € € € ð2ð 2ð 2ð&ð &ð &ðð ð ðð ð ð&ð &ð &ð &ð &rÃ   rÊ  c                  ó   — e Zd Zdd„ZdS )Ú_SchemaForObjectCallableÚ_SchemaForObjectCallable__objr   r  r¾   c                ó   — d S r  r½   )r  r×  s     rÁ   r  z!_SchemaForObjectCallable.__call__„  ó   € € € rÃ   N)r×  r   r  r¾   r  r½   rÃ   rÁ   rÖ  rÖ  ƒ  s   € € € € € Ø.Ð.Ð.Ð.Ð.Ð.rÃ   rÖ  c                  ó   — e Zd Zdd„ZdS )r7  rù  r©  r  r¾   c                ó   — d S r  r½   )r  rù  s     rÁ   r  z _BindNameForColProtocol.__call__ˆ  rÙ  rÃ   N)rù  r©  r  r¾   r  r½   rÃ   rÁ   r7  r7  ‡  s   € € € € € Ø:Ð:Ð:Ð:Ð:Ð:rÃ   r7  c                  ó¬  — e Zd ZU dZeZeZeZ	de
d<   de
d<   de
d<    ej        d¦  «        Zde
d	<   	 d
Zde
d<   	 	 	 	 	 d8d„Zd„ Zd„ Zd9d„Zd9d„Zd„ Zd9d„Zd:d„Zd„ Zd;d<d„Zd;d=d„Zd „ Zd>d!„Z	 d;d?d&„Z	 d;d@d)„Zd;d*„Z ej         d+¦  «        d>d,„¦   «         Z!d>d-„Z"d>d.„Z#d/„ Z$d0„ Z%dAd1„Z&d2„ Z'	 d;d3„Z(	 	 	 	 	 dBd4„Z)d>d5„Z*ej+        d6„ ¦   «         Z,d7„ Z-dS )Crž  z@Handle quoting and case-folding of identifiers based on options.r¾   Úinitial_quoteÚfinal_quotezMutableMapping[str, str]Ú_stringsr#   rÖ  rµ  Fr  Ú_includes_none_schema_translaterŒ  NTc                óº   — || _         || _        |p| j        | _        || _        | j        dz  | _        || _        || _        i | _        | j         j        dv | _	        dS )as  Construct a new ``IdentifierPreparer`` object.

        initial_quote
          Character that begins a delimited identifier.

        final_quote
          Character that ends a delimited identifier. Defaults to
          `initial_quote`.

        omit_schema
          Prevent prepending schema name. Useful for databases that do
          not support schemae.
        r7   )rÉ   rÇ   N)
r¦  rÝ  rÞ  Úescape_quoteÚescape_to_quoteÚomit_schemaÚquote_case_sensitive_collationsrß  rk  rÑ  )r  r¦  rÝ  rÞ  râ  rå  rä  s          rÁ   r´  zIdentifierPreparer.__init__§  so   € ð. ˆŒØ*ˆÔØ&Ð<¨$Ô*<ˆÔØ(ˆÔØ#Ô0°1Ñ4ˆÔØ&ˆÔØ/NˆÔ,ØˆŒØ $¤Ô 7ð <
ð !
ˆÔÐÐrÃ   c                ó²   ‡— | j                              | j         ¦  «        }|j                             | j        ¦  «         d |v Šˆfd„}||_        ‰|_        |S )Nc                ó¤   •— | j         }| j        r;|€‰r7|�d|v sd|v rt          j        d|z  ¦  «        ‚t	          d|pdz  d¬¦  «        S | j         S )Nr  r   zJSquare bracket characters ([]) not supported in schema translate name '%s'z__[SCHEMA_%s]Ú_noneF©r³  )r#   Ú_use_schema_mapr8   rã  r1   )rÏ  rù   Úincludes_nones     €rÁ   Úsymbol_getterz@IdentifierPreparer._with_schema_translate.<locals>.symbol_getterÑ  sˆ   ø€ Ø”:ˆDØÔ"ð 
"¨Ð(8¸MÐ(8ØÐ#¨°¨¨¸¸t¸¸ÝÔ*ð8Ø:>ñ?ñô ð õ #Ø# t ¨wÑ7¸uðñ ô ð ð ”zÐ!rÃ   )rº  Ú__new__rw  rx  rµ  rà  )r  rœ  Úpreprì  rë  s       @rÁ   r¬  z)IdentifierPreparer._with_schema_translateË  sm   ø€ ØŒ~×%Ò% d¤nÑ5Ô5ˆØŒ×Ò˜Tœ]Ñ+Ô+Ð+àÐ 4Ð4ˆð	"ð 	"ð 	"ð 	"ð 	"ð "/ˆÔØ/<ˆÔ,ØˆrÃ   c                ó–   ‡ ‡— |Šd ‰v r&‰ j         st          j        d¦  «        ‚‰d          ‰d<   ˆˆ fd„}t          j        d||¦  «        S )Nzâschema translate map which previously did not have `None` present as a key now has `None` present; compiled statement may lack adequate placeholders.  Please use consistent keys in successive schema_translate_map dictionaries.rè  c                óî   •— |                       d¦  «        }|‰v r	‰|         }n|dv rt          j        d¦  «        ‚|}|s"‰j        j        }|st          j        d¦  «        ‚‰                     |¦  «        S )Nr7   )Nrè  zâschema translate map which previously had `None` present as a key now no longer has it present; don't know how to apply schema for compiled statement. Please use consistent keys in successive schema_translate_map dictionaries.zLDialect has no default schema name; can't use None as dynamic schema target.)r‡   r8   r2  r¦  Údefault_schema_namerã  r¶  )r¡  rù   r¹  Údr  s      €€rÁ   rÒ  z=IdentifierPreparer._render_schema_translates.<locals>.replaceñ  s¡   ø€ Ø—7’7˜1‘:”:ˆDØ�qˆyˆyØ#$ T¤7Ð Ð à˜?Ð*Ð*ÝÔ1ð=ñô ð ð $(Ð à#ð Ø#'¤<Ô#CÐ Ø'ð åÔ*ð=ñô ð ð ×$Ò$Ð%5Ñ6Ô6Ð6rÃ   z(__\[SCHEMA_([^\]]+)\]))rà  r8   r2  rR  r¯  )r  r&  rœ  rÒ  rò  s   `   @rÁ   r²  z,IdentifierPreparer._render_schema_translatesã  s{   øø€ Ø ˆØ�1ˆ9ˆ9ØÔ7ð ÝÔ-ð9ñô ð ð ˜4œˆAˆg‰Jð	7ð 	7ð 	7ð 	7ð 	7ð 	7õ2 ŒvÐ0°'¸9ÑEÔEÐErÃ   rÌ  r  c                ó€   — |                      | j        | j        ¦  «        }| j        r|                      dd¦  «        }|S )z€Escape an identifier.

        Subclasses should override this to provide database-dependent
        escaping behavior.
        r  rÏ  )rÒ  râ  rã  rÑ  ©r  rÌ  s     rÁ   Ú_escape_identifierz%IdentifierPreparer._escape_identifier  s@   € ð —’˜dÔ/°Ô1EÑFÔFˆØÔ ð 	-Ø—M’M # tÑ,Ô,ˆEØˆrÃ   c                óB   — |                      | j        | j        ¦  «        S )z±Canonicalize an escaped identifier.

        Subclasses should override this to provide database-dependent
        unescaping behavior that reverses _escape_identifier.
        )rÒ  rã  râ  rô  s     rÁ   Ú_unescape_identifierz'IdentifierPreparer._unescape_identifier  s   € ð �}Š}˜TÔ1°4Ô3DÑEÔEÐErÃ   c                ót   — |�5|                      |¦  «        s t          j        d|›d|j        ›d�¦  «        ‚|S )zýkeyword sequence filter.

        a filter for elements that are intended to represent keyword sequences,
        such as "INITIALLY", "INITIALLY DEFERRED", etc.   no special characters
        should be present.

        .. versionadded:: 1.3

        NzUnexpected SQL phrase: z (matching against r  )r3  r8   rã  r<  )r  rÇ  rU  s      rÁ   r)  z&IdentifierPreparer.validate_sql_phrase!  sN   € ð Ð s§y¢y°Ñ'9Ô'9ÐÝÔ"Ð"à�7�7˜CœK˜K˜Kð)ñô ð ð ˆrÃ   c                óL   — | j         |                      |¦  «        z   | j        z   S )z~Quote an identifier.

        Subclasses should override this to provide database-dependent
        quoting behavior.
        )rÝ  rõ  rÞ  rô  s     rÁ   Úquote_identifierz#IdentifierPreparer.quote_identifier3  s0   € ð ÔØ×%Ò% eÑ,Ô,ñ-àÔñð	
rÃ   c                ó¶   — |                      ¦   «         }|| j        v p<|d         | j        v p-| j                             t          |¦  «        ¦  «         p||k    S )z5Return True if the given identifier requires quoting.r   )r_  Úreserved_wordsÚillegal_initial_charactersÚlegal_charactersr3  r¾   )r  rÌ  Úlc_values      rÁ   r•  z#IdentifierPreparer._requires_quotes@  sd   € à—;’;‘=”=ˆà˜Ô+Ð+ð #Ø�QŒx˜4Ô:Ð:ð#àÔ(×.Ò.­s°5©z¬zÑ:Ô:Ð:ð#ð ˜EÒ!ð		
rÃ   c                óR   — | j                              t          |¦  «        ¦  «         S )zjReturn True if the given identifier requires quoting, but
        not taking case convention into account.)rþ  r3  r¾   rô  s     rÁ   r]  z1IdentifierPreparer._requires_quotes_illegal_charsJ  s$   € ð Ô(×.Ò.­s°5©z¬zÑ:Ô:Ð:Ð:rÃ   Úforcer   c                ó\   — |�t          j        dd¬¦  «         |                      |¦  «        S )a  Conditionally quote a schema name.


        The name is quoted if it is a reserved word, contains quote-necessary
        characters, or is an instance of :class:`.quoted_name` which includes
        ``quote`` set to ``True``.

        Subclasses can override this to provide database-dependent
        quoting behavior for schema names.

        :param schema: string schema name
        :param force: unused

            .. deprecated:: 0.9

                The :paramref:`.IdentifierPreparer.quote_schema.force`
                parameter is deprecated and will be removed in a future
                release.  This flag has no effect on the behavior of the
                :meth:`.IdentifierPreparer.quote` method; please refer to
                :class:`.quoted_name`.

        NzÚThe IdentifierPreparer.quote_schema.force parameter is deprecated and will be removed in a future release.  This flag has no effect on the behavior of the IdentifierPreparer.quote method; please refer to quoted_name().ú0.9rM  )r&   rP  r³  )r  r#   r	  s      rÁ   r¶  zIdentifierPreparer.quote_schemaO  sD   € ð. Ðõ Ô ð!ð ðñ ô ð ð �zŠz˜&Ñ!Ô!Ð!rÃ   r†  c                óJ  — |�t          j        dd¬¦  «         t          |dd¦  «        }|€`|| j        v r| j        |         S |                      |¦  «        r|                      |¦  «        | j        |<   n
|| j        |<   | j        |         S |r|                      |¦  «        S |S )a  Conditionally quote an identifier.

        The identifier is quoted if it is a reserved word, contains
        quote-necessary characters, or is an instance of
        :class:`.quoted_name` which includes ``quote`` set to ``True``.

        Subclasses can override this to provide database-dependent
        quoting behavior for identifier names.

        :param ident: string identifier
        :param force: unused

            .. deprecated:: 0.9

                The :paramref:`.IdentifierPreparer.quote.force`
                parameter is deprecated and will be removed in a future
                release.  This flag has no effect on the behavior of the
                :meth:`.IdentifierPreparer.quote` method; please refer to
                :class:`.quoted_name`.

        NzÓThe IdentifierPreparer.quote.force parameter is deprecated and will be removed in a future release.  This flag has no effect on the behavior of the IdentifierPreparer.quote method; please refer to quoted_name().r	  rM  r³  )r&   rP  r^  rß  r•  rú  )r  r†  r	  s      rÁ   r³  zIdentifierPreparer.quotev  sÏ   € ð, Ðõ Ô ð!ð ðñ ô ð õ ˜˜w¨Ñ-Ô-ˆàˆ=Ø˜œÐ%Ð%Ø”} UÔ+Ð+à×(Ò(¨Ñ/Ô/ð 1Ø+/×+@Ò+@ÀÑ+GÔ+G�D”M %Ñ(Ð(à+0�D”M %Ñ(Ø”} UÔ+Ð+Øð 	Ø×(Ò(¨Ñ/Ô/Ð/àˆLrÃ   c                ó>   — | j         r|                      |¦  «        S |S r  )rå  r³  )r  Úcollation_names     rÁ   r¾  z#IdentifierPreparer.format_collationª  s%   € ØÔ/ð 	"Ø—:’:˜nÑ-Ô-Ð-à!Ð!rÃ   c                ó°   — |                       |j        ¦  «        }|                      |¦  «        }| j        s|r|�|                      |¦  «        dz   |z   }|S rÄ  )r³  rù   rµ  rä  r¶  )r  rg  rq  rù   r¹  s        rÁ   r\  z"IdentifierPreparer.format_sequence°  sk   € Ø�zŠz˜(œ-Ñ(Ô(ˆà×1Ò1°(Ñ;Ô;Ðð Ô ð	Dàð	Dð !Ð,à×$Ò$Ð%5Ñ6Ô6¸Ñ<¸tÑCˆDØˆrÃ   rõ  ú
Label[Any]rù   r=  c                ó:   — |                       |p|j        ¦  «        S r  ©r³  rù   )r  rõ  rù   s      rÁ   rš  zIdentifierPreparer.format_label½  s   € ð �zŠz˜$Ð, %¤*Ñ-Ô-Ð-rÃ   r¯  úOptional[AliasedReturnsRows]c                ól   — |€|€J ‚|                       |j        ¦  «        S |                       |¦  «        S r  r
	  )r  r¯  rù   s      rÁ   r�  zIdentifierPreparer.format_aliasÂ  s;   € ð ˆ<ØÐ$Ð$Ð$Ø—:’:˜eœjÑ)Ô)Ð)à—:’:˜dÑ#Ô#Ð#rÃ   c                ól   — |p|j         }|                      |¦  «        r|                      |¦  «        }|S r  )r†  r•  rú  )r  Ú	savepointrù   r†  s       rÁ   r-  z#IdentifierPreparer.format_savepointË  s>   € ð Ð'˜	œˆØ× Ò  Ñ'Ô'ð 	1Ø×)Ò)¨%Ñ0Ô0ˆEØˆrÃ   zsqlalchemy.sql.namingc                ó   — t           j        j        }|j        t          u r |                     ||j        ¦  «        }|€d S n|j        }|j        dk    r|                      ||¬¦  «        S |  	                    ||¬¦  «        S )Nrx  )Ú_alembic_quote)
r&   r2  Ú
sql_namingrù   r,   Ú_constraint_name_for_tablerŽ   r  Útruncate_and_render_index_nameÚ#truncate_and_render_constraint_name)r  r±   r	  Únamingrù   s        rÁ   rí  z$IdentifierPreparer.format_constraintÔ  s¤   € å”Ô*ˆàŒ?�jÐ(Ð(Ø×4Ò4Ø˜JÔ,ñô ˆDð ˆ|Ø�tð ð ”?ˆDàÔ$¨Ò/Ð/Ø×6Ò6Ø ^ð 7ñ ô ð ð ×;Ò;Ø ^ð <ñ ô ð rÃ   c                ó`   — | j         j        p| j         j        }|                      |||¦  «        S r  )r¦  Úmax_index_name_lengthrp  Ú _truncate_and_render_maxlen_name©r  rù   r	  Úmax_s       rÁ   r	  z1IdentifierPreparer.truncate_and_render_index_nameë  s?   € ð
 ŒLÔ.ð 2ØŒ|Ô1ð 	ð ×4Ò4Ø�$˜ñ
ô 
ð 	
rÃ   c                ó`   — | j         j        p| j         j        }|                      |||¦  «        S r  )r¦  Úmax_constraint_name_lengthrp  r	  r	  s       rÁ   r	  z6IdentifierPreparer.truncate_and_render_constraint_name÷  s?   € ð
 ŒLÔ3ð 2ØŒ|Ô1ð 	ð ×4Ò4Ø�$˜ñ
ô 
ð 	
rÃ   c                ó  — t          |t          j        ¦  «        rAt          |¦  «        |k    r-|d|dz
  …         dz   t	          j        |¦  «        dd …         z   }n| j                             |¦  «         |s|S |                      |¦  «        S )Nr   rY  r  éüÿÿÿ)	r¯  r   rE   r²  r&   Úmd5_hexr¦  Úvalidate_identifierr³  )r  rù   r	  r	  s       rÁ   r	  z3IdentifierPreparer._truncate_and_render_maxlen_name  s�   € Ý�d�HÔ5Ñ6Ô6ð 	3Ý�4‰yŒy˜4ÒÐØ˜A  q¡˜LÔ)¨CÑ/µ$´,¸tÑ2DÔ2DÀRÀSÀSÔ2IÑI�øàŒL×,Ò,¨TÑ2Ô2Ð2àð 	$ØˆKà—:’:˜dÑ#Ô#Ð#rÃ   c                ó,   — |                       |¦  «        S r  )rí  r´  s     rÁ   rÅ  zIdentifierPreparer.format_index  s   € Ø×%Ò% eÑ,Ô,Ð,rÃ   c                ó¸   — |€|j         }|                      |¦  «        }|                      |¦  «        }| j        s|r|r|                      |¦  «        dz   |z   }|S )z'Prepare a quoted table and schema name.Nr  )rù   r³  rµ  rä  r¶  )r  rŽ   rq  rù   rW  r¹  s         rÁ   rï  zIdentifierPreparer.format_table  su   € ð ˆ<Ø”:ˆDà—’˜DÑ!Ô!ˆà×1Ò1°%Ñ8Ô8ÐàÔð 	H Jð 	HÐ3Cð 	HØ×&Ò&Ð'7Ñ8Ô8¸3Ñ>ÀÑGˆFØˆrÃ   c                ó,   — |                       |¦  «        S )zPrepare a quoted schema name.ré  rc  s     rÁ   r€  z IdentifierPreparer.format_schema   s   € ð �zŠz˜$ÑÔÐrÃ   c                óŽ   — |�/t          |t          j        ¦  «        r|                     |¦  «        }|                      |¦  «        S )úPrepare a quoted column name.)r¯  r   rE   r[  r³  )r  rù   rq  s      rÁ   r…  z$IdentifierPreparer.format_label_name%  sF   € ð Ð¥JØ•(Ô+ñ%
ô %
Ðð —>’> (Ñ+Ô+ˆDà�zŠz˜$ÑÔÐrÃ   c                ó€  — |€|j         }|�/t          |t          j        ¦  «        r|                     |¦  «        }t          |dd¦  «        sM|r6|                      |j        ||¬¦  «        dz   |                      |¦  «        z   S |                      |¦  «        S |r#|                      |j        ||¬¦  «        dz   |z   S |S )r%	  Nr°  F)rq  rù   r  )	rù   r¯  r   rE   r[  r^  rï  rŽ   r³  )r  r“   rÓ  rù   Ú
table_namerq  rq  s          rÁ   rÔ  z IdentifierPreparer.format_column3  s  € ð ˆ<Ø”;ˆDàÐ¥JØ•(Ô+ñ%
ô %
Ðð —>’> (Ñ+Ô+ˆDå�v˜|¨UÑ3Ô3ð 	Øð 	(à×%Ò%Øœ°À*ð &ñ ô ð ñð —j’j Ñ&Ô&ñ	'ðð —z’z $Ñ'Ô'Ð'ð
 ð 	à×%Ò%Øœ°À*ð &ñ ô ð ñð ñ	ðð �rÃ   c                óÊ   — |                       |¦  «        }| j        s0|r.|r,|                      |¦  «        |                      |d¬¦  «        fS |                      |d¬¦  «        fS )z(Format table name and schema as a tuple.Frº  )rµ  rä  r¶  rï  )r  rŽ   rq  r¹  s       rÁ   rx  z#IdentifierPreparer.format_table_seq`  s…   € ð  ×1Ò1°%Ñ8Ô8ÐàÔð 	A Jð 	AÐ3Cð 	Aà×!Ò!Ð"2Ñ3Ô3Ø×!Ò! %°EÐ!Ñ:Ô:ðð ð
 ×%Ò% e¸Ð%Ñ>Ô>Ð@Ð@rÃ   c                ó¦   — d„ | j         | j        |                      | j        ¦  «        fD ¦   «         \  }}}t          j        d|||dœz  ¦  «        }|S )Nc              3  ó>   K  — | ]}t          j        |¦  «        V — Œd S r  )rR  rS  r  s     rÁ   r1  z4IdentifierPreparer._r_identifiers.<locals>.<genexpr>s  s>   è è € ð )
ð )
àõ ŒI�a‰LŒLð)
ð )
ð )
ð )
ð )
ð )
rÃ   zM(?:(?:%(initial)s((?:%(escaped)s|[^%(final)s])+)%(final)s|([^\.]+))(?=\.|$))+)ÚinitialÚfinalrÏ  )rÝ  rÞ  rõ  rR  rT  )r  r+	  r,	  Úescaped_finalÚrs        rÁ   Ú_r_identifiersz!IdentifierPreparer._r_identifiersq  s   € ð)
ð )
ð Ô"ØÔ Ø×'Ò'¨Ô(8Ñ9Ô9ðð)
ñ )
ô )
Ñ%ˆ�˜õ ŒJð$ð "¨E¸mÐLÐLñMñ
ô 
ˆð ˆrÃ   c                óh   ‡ — ‰ j         }ˆ fd„d„ |                     |¦  «        D ¦   «         D ¦   «         S )z:Unpack 'schema.table.column'-like strings into components.c                ó:   •— g | ]}‰                      |¦  «        ‘ŒS r½   )r÷  r­  s     €rÁ   r†  z;IdentifierPreparer.unformat_identifiers.<locals>.<listcomp>‡  s7   ø€ ð 
ð 
ð 
àð ×%Ò% aÑ(Ô(ð
ð 
ð 
rÃ   c                ó   — g | ]	\  }}|p|‘Œ
S r½   r½   )r¿   Úar_  s      rÁ   r†  z;IdentifierPreparer.unformat_identifiers.<locals>.<listcomp>‰  s    € Ð@Ð@Ð@¡  A�a�f˜1Ð@Ð@Ð@rÃ   )r/	  Úfindall)r  Úidentifiersr.	  s   `  rÁ   Úunformat_identifiersz'IdentifierPreparer.unformat_identifiersƒ  sR   ø€ ð Ôˆð
ð 
ð 
ð 
à@Ð@¨¯ª°;Ñ)?Ô)?Ð@Ñ@Ô@ð
ñ 
ô 
ð 	
rÃ   )rŒ  NrŒ  TF)rÌ  r¾   r  r¾   )rÌ  r¾   r  r  r  )r#   r¾   r	  r   r  r¾   )r†  r¾   r	  r   r  r¾   )T)rõ  r	  rù   r=  r  r¾   )r¯  r	  rù   r=  r  r¾   )TN)FNNFN).rÿ   r   r  r  ÚRESERVED_WORDSrü  ÚLEGAL_CHARACTERSrþ  ÚILLEGAL_INITIAL_CHARACTERSrý  r  r?  Ú
attrgetterrµ  rà  r´  r¬  r²  rõ  r÷  r)  rú  r•  r]  r¶  r³  r¾  r\  rš  r�  r-  r&   rB  rí  r	  r	  r	  rÅ  rï  r€  r…  rÔ  rx  r>  r/	  r6	  r½   rÃ   rÁ   rž  rž  ‹  s	  € € € € € € ØJÐJà#€Nà'Ðà!;ÐàÐÐÑàÐÐÑà&Ð&Ð&Ñ&à2E°(Ô2EÀhÑ2OÔ2OÐÐOÐOÐOÑOðð -2Ð#Ð1Ð1Ð1Ñ1ð
 ØØØ(,Øð"
ð "
ð "
ð "
ðHð ð ð0'Fð 'Fð 'FðR
ð 
ð 
ð 
ðFð Fð Fð Fðð ð ð$
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð;ð ;ð ;ð
%"ð %"ð %"ð %"ð %"ðN2ð 2ð 2ð 2ð 2ðh"ð "ð "ðð ð ð ð 8<ð.ð .ð .ð .ð .ð JNð$ð $ð $ð $ð $ðð ð ð ð €TÔÐ0Ñ1Ô1ðð ð ñ 2Ô1ðð,

ð 

ð 

ð 

ð

ð 

ð 

ð 

ð
$ð 
$ð 
$ð-ð -ð -ðð ð ð ð ð  ð  ð ð ð  ð  ð  ð" ØØØØð+ð +ð +ð +ðZAð Að Að Að" 
Ôðð ñ Ôðð"
ð 
ð 
ð 
ð 
rÃ   rž  )ìr  Ú
__future__r   r}  Úcollections.abcÚabcrÂ  r@  Úenumr   r¶  r¿  r?  rR  Útimer   rd  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&   rS  Ú_typingr(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   Útype_apir4   Úvisitorsr5   r6   r8   r9   Úutil.typingr:   r;   r<   Ú
annotationr=   r>   r?   r£  r@   ry  rA   ÚdmlrB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   Úengine.cursorrU   Úengine.interfacesrV   rW   rX   rY   rZ   r[   r\   r]   r^   r¾   Ú_FromHintsTyper7	  rT  ÚIr8	  ÚLEGAL_CHARACTERS_PLUS_SPACErº  r�   r9	  r*  r,  r/  ÚUNICODErá  rà  rm  rn  r  Úor_rl  Úmulr¯  ÚmodÚnegÚltÚleÚneÚgtÚgeÚeqÚis_distinct_fromÚis_not_distinct_fromÚ	concat_opr¤  Únot_match_opr°  r¯  rT  r�  r™  rI  rJ  rŸ   ÚexistsÚdistinct_opÚinvÚany_opÚall_opÚdesc_opÚasc_opÚnulls_first_opÚnulls_last_opÚbitwise_xor_opÚbitwise_or_opÚbitwise_and_opÚbitwise_not_opÚbitwise_lshift_opÚbitwise_rshift_opr˜  rÖ   r´   r¶   r»   r·   r®   rº   rÝ   rÞ   r¸   r€   ÚcubeÚrollupÚgrouping_setsrã   r  r8  Ú_CompoundSelectKeywordró   Ú	UNION_ALLrô   Ú
EXCEPT_ALLrõ   ÚINTERSECT_ALLr9  r÷   r  r  r  r  r  r  r  r%  r:  rJ  rW  re  rj  r3  rk  rl  rm  rn  Ú
namedtuplerp  r”  ÚEnsureKWArgrë  ÚBinaryElementRoleÚCompilerColumnElementrô  r	  r  rH  ro  r:  rÊ  rÖ  r7  rž  r½   rÃ   rÁ   ú<module>rt	     s  ððð ð ð" #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø "Ð "Ð "Ð "Ð "Ð "Ø #Ð #Ð #Ð #Ð #Ð #à	Ôð ";Ø+Ð+Ð+Ð+Ð+Ð+Ø,Ð,Ð,Ð,Ð,Ð,Ø"Ð"Ð"Ð"Ð"Ð"Ø#Ð#Ð#Ð#Ð#Ð#Ø)Ð)Ð)Ð)Ð)Ð)ØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ*Ð*Ð*Ð*Ð*Ð*Ø'Ð'Ð'Ð'Ð'Ð'Ø&Ð&Ð&Ð&Ð&Ð&Ø'Ð'Ð'Ð'Ð'Ð'ØÐÐÐÐÐØ#Ð#Ð#Ð#Ð#Ð#ØÐÐÐÐÐØ.Ð.Ð.Ð.Ð.Ð.Ø/Ð/Ð/Ð/Ð/Ð/ØÐÐÐÐÐØ&Ð&Ð&Ð&Ð&Ð&Ø+Ð+Ð+Ð+Ð+Ð+Ø'Ð'Ð'Ð'Ð'Ð'Ø"Ð"Ð"Ð"Ð"Ð"Ø'Ð'Ð'Ð'Ð'Ð'Ø,Ð,Ð,Ð,Ð,Ð,Ø4Ð4Ð4Ð4Ð4Ð4Ø<Ð<Ð<Ð<Ð<Ð<Ø:Ð:Ð:Ð:Ð:Ð:Ø<Ð<Ð<Ð<Ð<Ð<Ø=Ð=Ð=Ð=Ð=Ð=Ø3Ð3Ð3Ð3Ð3Ð3Ø=Ð=Ð=Ð=Ð=Ð=ØCÐCÐCÐCÐCÐCØ+Ð+Ð+Ð+Ð+Ð+Ø:Ð:Ð:Ð:Ð:Ð:à�l CÐ'Ô(€ð_ð _ð _€ðB �2”:Ð.°´Ñ5Ô5Ð Ø(˜bœjÐ):¸B¼DÑAÔAÐ Ø;Ð;¨e¨e°A°r©l¬lÐ;Ñ;Ô;×AÒAÀ3À%ÑHÔHÐ àˆrŒzØ<¸b¼dñô €ð ˆrŒzØ<¸b¼dñô €ð ˆrŒzÐ5°r´tÑ<Ô<€ØˆbŒjÐAÀ2Ä:ÑNÔN€Ø�"”*Ð9¸2¼:ÑFÔF€à$Ð à"ØØØØ$Øðð €ð.à„N�Gð.ð „M�6ð.ð „M�5ð	.ð
 „M�5ð.ð „M�5ð.ð „M�5ð.ð „M�3ð.ð „L�%ð.ð „L�&ð.ð „L�&ð.ð „L�%ð.ð „L�&ð.ð „L�%ð.ð ÔÐ 4ð.ð  Ô"Ð$<ð!.ð" Ô˜ð#.ð$ Ô˜	ð%.ð .ð& Ô˜Mð'.ð( „O�Vð).ð* Ô˜ð+.ð, Ô˜ð-.ð. „O�Xð/.ð0 „M�6ð1.ð2 „M�6ð3.ð4 Ô�jð5.ð6 Ô�{ð7.ð: Ô�ið;.ð< Ô˜;ð=.ð> „M�6ð?.ð@ Ô�fðA.ðB Ô�fðC.ðF Ô�wðG.ðH Ô�fðI.ðJ Ô˜nðK.ð .ðL Ô˜]àÔ˜eØÔ˜UØÔ˜eØÔ˜cØÔ ØÔ ð[.ð .€	ðb Ô˜
ØÔ˜NØÔ˜NØÔÐ!4ØÔ˜NØÔ˜ØÔÐ.ØÔ�hØÔ�yØÔ˜NØ„N�FØ„N�FØÔ�hØÔ˜_ð-€	ð ð ð ñ ð& ØØØØØØØØØØØ"Ø"Ø$Ø(ðð €ð& Ô%Ô+¨WØÔ%Ô/°ØÔ%Ô,¨hØÔ%Ô0°,ØÔ%Ô/°ØÔ%Ô3°_ðÐ ðð ð ð ð ˜ñ ô ð ð>ð ð ð ð ˜ñ ô ð ð  !Ð Ð  Ð  Ð  Ñ  Ø€Ð Ð Ð Ñ Ø€
Ð Ð Ð Ñ Ø€Ð Ð Ð Ñ ðð ð ð ð ˜iñ ô ð ð$ð $ð $ð $ð $Ð1¸ð $ñ $ô $ð $ð:ð :ð :ð :ð :�Jñ :ô :ð :ðztð tð tð tð t˜
ñ tô tð tðnð ð ð ð ˜Zñ ô ð ð2!ð !ð !ð !ð ! ;ñ !ô !ð !ð$ð ð ð ð �Gñ ô ð ð ð ð ð ð ˆgñ ô ð ð. FKÀUØñFô FÑ B€
Ð&¨°lð
?#ð ?#ð ?#ð ?#ð ?#Ð'�Ô'¨°wÀÐ6HÑIÔIñ ?#ô ?#ð ?#ðDH'ð H'ð H'ð H'ð H'ñ H'ô H'ð H'ðVFð Fð Fð Fð F�4Ô#ñ Fô Fð Fð0ð ð ð ð Ø	Ô˜CÔ  (Ô"@ñô ð ð2#
ð #
ð #
ð #
ð #
Ø	Ô˜CÔ  (Ô"@ñ#
ô #
ð #
ðL_T
ð _T
ð _T
ð _T
ð _T
�(ñ _T
ô _T
ð _T
ðDil
ð l
ð l
ð l
ð l
�[ñ l
ô l
ð l
ð^Xð Xð Xð Xð X�(ñ Xô Xð Xðvj(ð j(ð j(ð j(ð j(˜,ñ j(ô j(ð j(ðZ&ð &ð &ð &ð &Ð,ñ &ô &ð &ðB/ð /ð /ð /ð /˜xñ /ô /ð /ð;ð ;ð ;ð ;ð ;˜hñ ;ô ;ð ;ð
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
rÃ   