bga ddlmZddlmZddlmZddlZddlmZddlm Z ddlm Z ddlm Z dd lm Z dd lm Z dd lmZdd lmZdd lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZer~ddlm Z ddlm!Z!ddlm"Z"ddl#m$Z$ddl#m%Z%ddl#m&Z&ddl#m'Z'ddl#m(Z(ddl#m)Z)dd l#m*Z*dd!l#m+Z+dd"l#m,Z,dd#l#m-Z-dd$l.m/Z/dd%l0m1Z1dd&l2m3Z3dd'l4m5Z5dd(l6m7Z7dd)l6m8Z8dd*l9m:Z:dd+l9m;Z;d,Zdd<Z?ej@xZAZBdd?ZCddCZDddDZEeBFej8ddFZGeBFejHddHZIeBFejJddJZKeBFejLddLZMeBFejNddNZOeBFejPddPZQeBFejRddRZSeBFejTddTZUeBFejVddVZWeBFejXdWZYeBFejZdXZ[eBFej\ddZZ]eBFej^dd\Z_eBFej`dd^ZaeBFejbdd`ZcGdadbZdddeZe dddmZfddpZgddtZhduZiddvZjddwZkdd{Zldd~ZmddZn dddZoddZpddZqddZr dddZsddZtddZu dddZvej@ZwddZxewFej,ddZyddZzddZ{ewFej)ddZ|ewFej-ddZ}ewFej$ddZ~eBFejddZeAZBdS)) annotations) OrderedDict)StringION)Any)cast)Dict)List)Optional)Tuple) TYPE_CHECKING)Union) PythonPrinter)schema)sql)types)conv) quoted_name)util)ops) sqla_compat)Literal) ColumnElement) TextClause)CheckConstraint)Column) Constraint) FetchedValue) ForeignKey)ForeignKeyConstraint)Index)MetaData)PrimaryKeyConstraint)UniqueConstraint)ARRAY) TypeEngine)AutogenContext)Config)MigrationScript)ModifyTableOps)Computed)Identityautogen_contextr'namesqla_compat._ConstraintNamereturn*Optional[Union[quoted_name, str, _f_name]]ct|trtt||St j|SN) isinstancer_f_name_alembic_autogenerate_prefixrconstraint_name_or_none)r.r/s R/opt/cloudlinux/venv/lib64/python3.11/site-packages/alembic/autogenerate/render.py_render_gen_namer:7s@$93ODDdKKK24888textstrctjdtjd|}tjdtjd|}|S)N^ z +$)recompileMsubstrip)r<s r9_indentrGAsY :dBD ! ! % %fd 3 3 9 9 ; ;D :fbd # # ' 'D 1 1D Kr;migration_scriptr) template_argsDict[str, Union[str, Config]]Nonec2|j}t|j|jD]O\}}t t ||||j<t t ||||j<Pdt||d<dS)N imports) rNzipupgrade_ops_listdowngrade_ops_listrG_render_cmd_body upgrade_tokendowngrade_tokenjoinsorted)r.rHrIrN upgrade_ops downgrade_opss r9 _render_python_into_templatevarsrYGs %G&))+;+N''  " ]4; [/ : :4 4 k/08? ]O < <8 8 m344 $yy99M)r; op_containerops.OpContainerctt}t|}|dd}|jD]=}t ||}|pt |}|D]}||>|s|d|d|S)Nz=# ### commands auto generated by Alembic - please adjust! ###Fpassz# ### end Alembic commands ###)rr writeliner render_opboolgetvalue)rZr.bufprinter has_linesoplineslines r9rRrR]s **CC  G GI$$/2..,e  $ $D   d # # # # $ "&!!! 6777 <<>>r;reops.MigrateOperation List[str]cvt|}tj|||}|Sr4) renderersdispatchrto_list)r.rerendererrfs r9r_r_ys7!!"%%H L/266 7 7E Lr;cHdt||S)NrM)rUr_r.res r9render_op_textrqs  99Y33 4 44r;r*c|j}|dd}|jrg}|r|5|d|jd|jd|jD]'}t||}||(|ddddn #1swxYwYn/|jD]'}t||}||(|SgS)Nrender_as_batchFzwith op.batch_alter_table(z , schema=z) as batch_op:rA) optsgetr _within_batchappend table_namerr_extend)r.rertrsrft_opt_liness r9_render_modify_tabler|sW  Dhh0%88O v  & ..00 ! ! }}}biii1F**D'>>GLL)))) R    ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! & &#OT:: W%%%%  sA+B44B8;B8ops.CreateTableCommentOpcd}|t||j|j d|jznd|j d|jznd|j d|jznddS)Nz{prefix}create_table_comment( {indent}'{tname}', {indent}{comment}, {indent}existing_comment={existing}, {indent}schema={schema} )%r'%s'r@)prefixtnamecommentexistingrindent)formatr7rxrexisting_commentrr.retempls r9_render_create_table_commentrs    <<+O<<m%'Z%;rz!!  *+++ %'Y%:v !!    r;ops.DropTableCommentOpcd}|t||j|j d|jznd|j d|jznddS)Nzm{prefix}drop_table_comment( {indent}'{tname}', {indent}existing_comment={existing}, {indent}schema={schema} )rrr@)rrrrr)rr7rxrrrs r9_render_drop_table_commentrsn    <<+O<<m  *+++ %'Y%:v !!   r;ops.CreateTableOpc}dfd|jDDtdfd|jDDz}t |t krdd|zdz}nd|}dtjt|d z}j r|d tj zz }|j }|r|d t|zz }tj D],}|d| d d dj |z }-|jr,dd|jD}|d|zz }|dz }|S)Ncg|]}||Sr.0cols r9 z_add_table..s0           r;c0g|]}t|Sr)_render_column)rrr.s r9rz_add_table..s0   58N3 0 0   r;cg|]}||Sr4r)rrconss r9rz_add_table..s,    !  r;c<g|]}t|jSr)_render_constraint_namespace_metadata)rconsr.res r9rz_add_table..s?#/2+Ar;z*[, ]z.%(prefix)screate_table(%(tablename)r, %(args)s) tablenamerargsz , schema=%rz , comment=%r _=, c3 K|] }d|zV dS)rNr)rps r9 z_add_table..s&AAAVaZAAAAAAr;z, prefixes=[%s]z ))to_tablecolumnsrV constraintslenMAX_PYTHON_ARGSrU_identrxr7rrkwreplace _prefixes) r.retablerargs_strr<rkprefixess `` r9 _add_tablers KKMME      .2I!Sss23HHHJr;)rr/rruniquerkwargs)to_index _has_batchrr7r:r/rrU_get_index_rendered_expressionsrrrritemsr.reindex has_batchtmplr<s` r9 _add_indexrsI KKMME*I   +   5 ; " " " .?? %*== ())99 +E? C C  ,'% ; =6%+*<#=#===  u|    ii%*L$6$6$8$8  - D0 Kr;ops.DropIndexOpc |}j}|rd}nd}|tt|jt |j|jrdt |jzndt|j r;dd fd|j Dznddz}|S)Nz(%(prefix)sdrop_index(%(name)r%(kwargs)s)zM%(prefix)sdrop_index(%(name)r, table_name=%(table_name)r%(schema)s%(kwargs)s)rrArc@g|]\}}|dt|Srrrs r9rz_drop_index..Urr;)rr/rxrr) rrr7r: index_namerrxrrrrUrrs` r9 _drop_indexr?s KKMME*I 9 = .?? "-@@R]++:<)KMF29$5$555 u|    ii%*L$6$6$8$8  ! D$ Kr;ops.CreateUniqueConstraintOpcJt||dgS)NT)_uq_constraint to_constraintrps r9_add_unique_constraintrbs% 2++-- E E FFr;ops.CreateForeignKeyOpctt||jg}|js4|tt |j|tt |jtd|j Dtd|j Dggd}|js| dd|D]4}||j vr)|j |}|||d|5dt|d|d zS) Nc,g|]}t|Srrrs r9rz&_add_fk_constraint..us777#&++777r;c,g|]}t|Srrrs r9rz&_add_fk_constraint..vs888#&++888r;)referent_schemaonupdateondelete initially deferrable use_alterr source_schemarz&%(prefix)screate_foreign_key(%(args)s)rrr)reprr:constraint_namerrwr source_tableryreferent_table local_cols remote_colsinsertrr7rU)r.rerrrvalues r9_add_fk_constraintrisd !/23EFF G G HD  %3 D0011222KK )** + + 77777 8 8 88888 9 9 F  %* a))) 22 ::E!HE  qqq%%0111 3.?? $77 r;ctr4NotImplementedError constraintr.s r9_add_pk_constraintr   r;ctr4rrs r9_add_check_constraintrrr;ops.DropConstraintOpc |jrd}nd}|t|t||jt |j|j|jrdt |jznddz}|S)Nz3%(prefix)sdrop_constraint(%(name)r, type_=%(type)r)zO%(prefix)sdrop_constraint(%(name)r, '%(table_name)s'%(schema)s, type_=%(type)r)rrA)rr/rxtyper)rr7r:rrrxconstraint_typer)r.retemplater<s r9_drop_constraintrs ! K E  .?? "2DEER]++"9;J=6")#4#444  D Kr;ops.AddColumnOpc|j|j|j}}}|jrd}nd}|r|dz }|dz }|t ||t |||dz}|S)Nz %(prefix)sadd_column(%(column)s)z*%(prefix)sadd_column(%(tname)r, %(column)s, schema=%(schema)rr)rrcolumnr)rrxrrr7r)r.rerrrrr<s r9 _add_columnrsIr}bi6EF!5?  . - -HC .?? 99  D Kr;ops.DropColumnOpc|j|j|j}}}|jrd}nd}|r|dz }|dz }|t |t |t |t |dz}|S)Nz %(prefix)sdrop_column(%(cname)r)z*%(prefix)sdrop_column(%(tname)r, %(cname)rrr)rrcnamer)rrx column_namerr7r)r.rerrrrr<s r9 _drop_columnr s"$BM2>;EF!5?  . - -HC .?? $$..  D Kr;ops.AlterColumnOpc|j}|j}|j}|j}|j}|j}|jdd}|j} |j } |j } |j } |j } d}|j rd}nd}|t|||dz}| |d|dt| |z }|durt!||}|d|d |z }||d|d t||z }| |d|d |z }|dur |d|d |z }| |d|d | z }| | |d|d| z }| |d|d|z }|dur| rt!| |}|d|d|z }| r|j s |d|d| z }|dz }|S)N autoincrementz z %(prefix)salter_column(%(cname)rz+%(prefix)salter_column(%(tname)r, %(cname)r)rrrrzexisting_type=Fzserver_default=ztype_=z nullable=zcomment=zexisting_comment=zexisting_nullable=zautoincrement=zexisting_server_default=zschema=r)rxrmodify_server_default modify_typemodify_nullablemodify_commentrru existing_typeexisting_nullablerexisting_server_defaultrrr7 _repr_type_render_server_default)r.rerrserver_defaulttype_nullablerr rrrrrrrr<rendereds r9 _alter_columnrsR ME NE-N NE!HGEIIot44M$M,* 8 YF F!A5@ .?? D    FF }o 6 6 6  U"")./JJ FFFHH==  666:e_+M+M+MNN fffhh77e VVVWW55# fff6F6FGG-9 vvv7H7HII  666==AA#:) #_   VVVXXFF 4o04 FFFFF33CKD Kr;ceZdZd dZd dZd S) r6rr=r/rr1rKc"||_||_dSr4)rr/)selfrr/s r9__init__z_f_name.__init__s  r;c@|jdt|jdS)Nzf(r)rrr/)rs r9__repr__z_f_name.__repr__s# KKK ):):):):;;r;N)rr=r/rr1rK)r1r=)__name__ __module__ __qualname__rr rr;r9r6r6s<<<<<<.Msk     c9+ , , :VGC.. / /000 #C 9 9   r;) expressions)r0r.s `r9rrJs2    ?    r;rr$altercg}|j}|jr)|dt|jf|jr)|dt|jf|s<|r:|jjr.|dt|jjf|s1|jr*|dt||jf|rtt||jg}|s*|tt|jjgz }|td|j D| d|Ddt|d|d zSd |j D}| d |Dd t|d|d zS) Nrrrr/c6g|]}t|jSr)rr/rs r9rz"_uq_constraint..ms"IIIs&**IIIr;c"g|] \}}|d| Srrrrvs r9rz"_uq_constraint..n'777$!Q11%777r;z,%(prefix)screate_unique_constraint(%(args)s)rrcPg|]#}tt|j$Sr)rrr/rs r9rz"_uq_constraint..ts*EEE3VCH%%&&EEEr;c"g|] \}}|d| Srrr;s r9rz"_uq_constraint..ur=r;z$%(prefix)sUniqueConstraint(%(args)s))rrrwr=rrrrr/r:rrryr7rUr,)rr.r7rtrrs r9rrUs% #%D*I@ \3z'<#=#=>???> [#j&:";";<=== AA:#3#:A Xvj&6&=>>?@@@  Z_  %ozGG H     %ozGGHHI : T&!1!677889 9D DIIj6HIIIJJKKK 77$777888=2?CCIIdOOA A   FE*2DEEE 77$77788855oFFIIdOO9 9   r;c8|jd}| d|jzS|S)Nuser_module_prefixz%s.)rtr")r.targetrs r9_user_autogenerate_prefixrC|s(  !"6 7F ~v((( r;c |jdpdS)Nsqlalchemy_module_prefixrArtr.s r9r,r,s   : ; ArAr;c2|jrdS|jdpdS)Nz batch_op.alembic_module_prefixrA)rrtrGs r9r7r7s'!C{#$;<BBr;robject_Union[str, Literal[False]]c\d|jvr"|jd}|r||||}|dur|SdS)N render_itemFrF)rrJr.renderrs r9_user_defined_renderrOsO,,, %m4  veWo>>Hu$$ 5r;r Column[Any]c td|}|dur|Sg}g}|jrXt|j}|rAt|jr||n|d|f|j1|jt jkr|d|jf|j|d|jf|j r|d|j f|j }|r|dd|zfd tt|j t|j|r"d d |Dd znd d d |Dfdt j|DzdzS)NrFrr rsystemrrz8%(prefix)sColumn(%(name)r, %(type)s, %(args)s%(kwargs)s)rc,g|]}t|Sr)r=)rargs r9rz"_render_column..s4443s88444r;rAc"g|] \}}|d| Srrrkwnamers r9rz"_render_column..'AAA[VSFFFCC(AAAr;c@g|]\}}|dt|Srrrs r9rz"_render_column..sI!Sss23HHHJr;)rr/rrr)rOrr*_should_render_server_default_positionallyrwr rAUTOINCREMENT_DEFAULTrrRrr,rr/rrrU_column_kwargsr)rr.rrrtrs ` r9rrs$HfoFFHuD"$D  :)  !?    :9% : H%%%% -x8999 (  K$E E E _f&:;<<< " Z1222 }/ Xv}-...nG1 Yw/000 F1/BBv{##6;88@DL 44t44455<<" IIAADAAA%0$>v$F$F$L$L$N$N   II r;rcRtj|ptj|Sr4)r_server_default_is_computed_server_default_is_identity)rs r9rZrZs/  2   A  0 @ @Ar;defaultBOptional[Union[FetchedValue, str, TextClause, ColumnElement[Any]]]repr_c<td||}|dur|Stj|rtt d||Stj|rt t d||St|tj r9t|j tr|j }nt|j |dSt|tr%|r#ttjdd|}t t|S) NrFr+r,Tr*z^'|'$rA)rOrr^_render_computedrr__render_identityr5r3 DefaultClauserTr=rrrBrE)r`r.rbrs r9rrs$$4gOOHu.w77 Z 9 9?KKK  0 9 9Z 9 9?KKK GY4 5 5 gk3 ' ' kGG) _ '36E6rvhG4455 W  r;computedr+ct|j|d}i}|j |j|d<dt||dd|DdzS)NFr' persistedz(%(prefix)sComputed(%(text)s, %(kwargs)s)rc3 K|] }d|zV dSz%s=%sNrrpairs r9rz#_render_computed..&GGWt^GGGGGGr;)rr<r)rsqltextrjr,rUr)rgr.r<rs r9rdrds "/   DF%&0{ 51/BB99GG GGGGG99 r;identityr,ct|j}|j |j|d<|t |dt |dd|DdzS)N)alwayson_nullz%(prefix)sIdentity(%(kwargs)s)rc3 K|] }d|zV dSrlrrms r9rz#_render_identity..ror;)rr)rrsrtupdate_get_identity_optionsr,rUr)rqr.rs r9rere s 0 0 0F#$,y MM'11222 +1/BB99GG GGGGG// r;identity_optionsrcpt}tjD]}t||d}||||<|Sr4)rr_identity_options_attrsr4)rxrattrrs r9rwrwsD ]]F3!!($55   F4L Mr;r&_skip_variantsctd||}|dur|St|jdr!|jj||}nd}t |j}|j}|drStj d|}|J| d}|| d|z|r|S|d|S|r|S|s$tj|rt||S|d rUd |jzt#vr(t#d |jz} | ||St%|} | |St'||} | |S) NrFr.sqlalchemy.dialectssqlalchemy\.dialects\.(\w+)z"from sqlalchemy.dialects import %s.z sqlalchemy.z_render_%s_type)rOhasattrr-r. render_typerr"rN startswithrBmatchgroupaddr_type_has_variants_render_Variant_type__visit_name__globalsr,rC) rr.r|rimpl_rtmodrNrdnamefnrs r9rr!s $FE?CCHu0&99!38DD ?   u++ C%G ~~+,,(7==    A   KKu E E (#E?;;;  & & ( u3 3wyy @ @,u/CCDB2e_-- -4_EEF#VUU+ +*?EBB''r;r%c Lttt||ddS)N item_typez(.+?\())rr=_render_type_w_subtype)rr.s r9_render_ARRAY_typerMs-   ?K    r;ctj|\}}t||d}||dusJt|D]&}||}|dt||dd|dz }'|S)NT)r|Fz.with_variant(rr)r_get_variant_mappingrrV)rr. base_typevariant_mappingbasedialecttyps r9rrVs"-!A%!H!HI i F F FD  E 1 1 1 1/**  g&  sOD A A A A A GG   Kr;attrnameregexpr$Union[Optional[str], Literal[False]]c,t|}t||d}|dSt|}tjdd|}t t|||}tj||zd|z|} |r|| St |j} | dr5tjd| } | J| d} | d| S| d rt|}|| SdS) NFz([\(\)])z\\\1z\1%sr~rrr sqlalchemy) rr4rBrErrr"rrrr,) rr.rrr outer_repr inner_type inner_reprsub_type outer_typerrrs r9rres.eJ$//Juj!!J Wj99J'%22ODDH+Wx-?LLJ -,, u++ C ~~+,, 7==    A%%,,  % %0AA,,tr;rnamespace_metadataOptional[MetaData]c t|}||||S#t$rtjd|zd|zcYSwxYw)Nz(No renderer is established for object %rz[Unknown Python object %r])_constraint_renderersrl ValueErrorrwarn)rr.rrns r9rrsv I(11*== x O5GHHH 999 .s 6 6 6aT!&\\ 6 6 6r;c"g|] \}}|d| SrrrVs r9rz'_render_primary_key..s'???;63&&&##&???r;r)rOrr/rwrr:r,rUrr.rrrts r9_render_primary_keyrs $M:OOHu  t D  T*?JOLLMM N    61/BB 6 6:#5 6 6 6??$??? @  99 r;fkrmetadata_schemar"c|}|d}|dd\}}|t|dkr|d|}nd|dd}|jsW|jP|jjD||jvr;|j|j |}|t|j }|d|}|S)zxImplement a 'safe' version of ForeignKey._get_colspec() that won't fail if the remote table can't be resolved. rNrr) _get_colspecsplitrrU link_to_nameparentrtablesrrurr/) rrrcolspectokensrcolnametable_fullnamers r9 _fk_colspecrsooG ]]3  FBCC[NE7"s6{{a'7'7$3OOUU;&2,// O + I ! IO ' /6 6 6$+N;=AA'JJC **'1G Nr;r rtList[Tuple[str, str]]c|jr)|dt|jf|jr)|dt|jf|jr)|dt|jf|jr)|dt|jf|jr+|dt|jfdSdS)Nrrrrr)rrwrrrrr)rrts r9_populate_render_fk_optsrs= Zj&9!:!:;<<<= Zj&9!:!:;<<<? [$z';"<"<=>>>A \4 (=#>#>?@@@? [$z';"<"<=>>>>>??r;c td||}|dur|Sg}|jr7|dtt ||jft ||jdt|dd|j Ddfd|j Ddd|Dd zS) N foreign_keyFr/zC%(prefix)sForeignKeyConstraint([%(cols)s], [%(refcols)s], %(args)s)rc3jK|].}dttd|jjzV/dS)rrN)rrrr/)rfs r9rz&_render_foreign_key..sRvd8QX66;<<<r;c3TK|]"}tt|V#dSr4)rr)rrapply_metadata_schemars r9rz&_render_foreign_key..sM!![$9;MNNOO!!!!!!r;c"g|] \}}|d| SrrrVs r9rz'_render_foreign_key.. rXr;)rcolsrefcolsr) rOr/rwrr:rrr,rUelements)rr.rrrtrs ` @r9_render_foreign_keyrs? $M:OOHu D  T*?JOLLMM N   Z....5 #6oFFII#,yy!!!!!#,!!!IIAADAAA  r;cRtd||}|dur|St||dS)NrF)rOr)rr.rrs r9_render_unique_constraintrs7 $Hj/JJHu *ou = ==r;rc td||}|dur|S|jr;t|jdr&t|jjt jrdSg}|jr7|dtt||jfdt||r"dd d|Dzndt|j|d d zS) NcheckFrBr/z.%(prefix)sCheckConstraint(%(sqltext)s%(opts)s)rc3*K|]\}}|d|VdS)rNrr;s r9rz+_render_check_constraint..<s1!D!Dtq!QQQ"2!D!D!D!D!D!Dr;rAri)rrtrp)rO _create_rulerr5rBsqltypesr&r/rwrr:r,rUrrprs r9_render_check_constraintrs( $GZIIHu     #X      # *    t D  T*?JOLLMM N    <1/BB  !D!Dt!D!D!DDDEE )  e   ?? r;ops.ExecuteSQLOpcht|jtstdd|jzS)NznAutogenerate rendering of SQL Expression language constructs not supported here; please use a plain SQL stringzop.execute(%r))r5rpr=rrps r9 _execute_sqlrEs= bj# & & ! @    bj ((r;)r.r'r/r0r1r2)r<r=r1r=)r.r'rHr)rIrJr1rK)rZr[r.r'r1r=)r.r'rerhr1ri)r.r'rerhr1r=)r.r'rer*r1ri)r.r'rer}r1r=)r.r'rerr1r=)r.r'rerr1r=)r.r'rerr1r=)r.r'rerr1r=)r.r'rerr1r=)r.r'rerr1ri)r.r'rerr1r=)r.r'rerr1r=)r.r'rerr1r=)r.r'rerr1r=)r.r'rer r1r=)r/r$r1r%)TF) rrr.r'r'r`r(r`r1r=)r0r!r.r'r1ri)rr$r.r'r7r`r1r=)r.r'r1r=)rr=rJrr.r'r1rK)rrPr.r'r1r=)rrr1r`)T)r`rar.r'rbr`r1r%)rgr+r.r'r1r=)rqr,r.r'r1r=)rxr,r1r)F)rr&r.r'r|r`r1r=)rr%r.r'r1r=)rr&r.r'r1r=r4) rr&r.r'rr=rr=rr%r1r)rrr.r'rrr1r%)rr#r.r'rrr1r%)rrrr%rr"r1r=)rr rtrr1rK)rr r.r'rr"r1r%)rr$r.r'rrr1r=)rrr.r'rrr1r%)r.r'rerr1r=) __future__r collectionsriorrBtypingrrrr r r r r mako.pygenrrrr3rrrsqlalchemy.sql.elementsrrrAr operationsrrrrrsqlalchemy.sql.schemarrrrrr r!r"r#r$sqlalchemy.sql.sqltypesr%sqlalchemy.sql.type_apir&alembic.autogenerate.apir'alembic.configr(alembic.operations.opsr)r*alembic.util.sqla_compatr+r,rr:rGrY Dispatcherdefault_renderersrkrRr_rq dispatch_forr|CreateTableCommentOprDropTableCommentOpr CreateTableOpr DropTableOpr CreateIndexOpr DropIndexOprCreateUniqueConstraintOprCreateForeignKeyOprCreatePrimaryKeyOprCreateCheckConstraintOprDropConstraintOpr AddColumnOpr DropColumnOpr  AlterColumnOprr6rrrrrCr,r7rOrrZrrdrerwrrrrrrrrrrrr ExecuteSQLOprbranchrr;r9rs """"""######  $$$$$$******((((((((((((//////2555555222222555555,,,,,,000000222222000000::::::++++++......::::::666666------222222777777%%%%%%6666665555551111111111119999 ::::&!0 1 11I85555  *++,+8 011210 .//0/, )**...+*.b (()( )**)))+*)X (()(D 455GGG65G  .//###0/#L .//  0/  344  54  ,--.-, (()(& ())*)* )**:::+*:z<<<<<<<<    &# 0$ $ $ $ NBBBBCCCC    7777tAAAA :"    !)()()()()(X    (! D()) I I I I##I$BCCDC4""""J ? ? ? ? ##I$BCC###DC#L##I$>?? > > >@? >##I$=>>%%%?>%P ()))))*))  $ $ & & r;