From 6e224d08a22b0d9e67059bae69087038f7ba7394 Mon Sep 17 00:00:00 2001 From: JieguangZhou Date: Tue, 22 Nov 2022 16:11:45 +0800 Subject: [PATCH] [fix] Python task can not pass the parameters to downstream task. (#12961) --- docs/docs/en/guide/parameter/context.md | 9 +++++++++ docs/docs/zh/guide/parameter/context.md | 8 ++++++++ .../dev/parameter/python_context_param.png | Bin 0 -> 39364 bytes .../plugin/task/python/PythonTask.java | 1 + 4 files changed, 18 insertions(+) create mode 100644 docs/img/new_ui/dev/parameter/python_context_param.png diff --git a/docs/docs/en/guide/parameter/context.md b/docs/docs/en/guide/parameter/context.md index 2869ae3347..9461969b64 100644 --- a/docs/docs/en/guide/parameter/context.md +++ b/docs/docs/en/guide/parameter/context.md @@ -13,6 +13,7 @@ DolphinScheduler allows parameter transfer between tasks. Currently, transfer di * [Shell](../task/shell.md) * [SQL](../task/sql.md) * [Procedure](../task/stored-procedure.md) +* [Python](../task/python.md) When defining an upstream node, if there is a need to transmit the result of that node to a dependency related downstream node. You need to set an `OUT` direction parameter to [Custom Parameters] of the [Current Node Settings]. At present, we mainly focus on the SQL and shell nodes to pass parameters downstream. @@ -76,3 +77,11 @@ The result of Node_mysql is as follows: Even though output is assigned a value of 1 in Node_A's script, the log still shows a value of 100. But according to the principle from [parameter priority](priority.md): `Local Parameter > Parameter Context > Global Parameter`, the output value in Node_B is 1. It proves that the output parameter is passed in the workflow with reference to the expected value, and the query operation is completed using this value in Node_mysql. But the output value 66 only shows in the Node_A, the reason is that the direction of value is selected as IN, and only when the direction is OUT will it be defined as a variable output. + +#### Pass parameter from Python task to downstream + +Use `print('${setValue(key=%s)}' % value)`, DolphinScheduler will capture the `${setValue(key=value}` in the output to capture the parameters and pass them downstream. + +For example + +![img.png](../../../../img/new_ui/dev/parameter/python_context_param.png) diff --git a/docs/docs/zh/guide/parameter/context.md b/docs/docs/zh/guide/parameter/context.md index bbbcd5201c..59315de550 100644 --- a/docs/docs/zh/guide/parameter/context.md +++ b/docs/docs/zh/guide/parameter/context.md @@ -13,6 +13,7 @@ DolphinScheduler 允许在任务间进行参数传递,目前传递方向仅支 * [Shell](../task/shell.md) * [SQL](../task/sql.md) * [Procedure](../task/stored-procedure.md) +* [Python](../task/python.md) 当定义上游节点时,如果有需要将该节点的结果传递给有依赖关系的下游节点,需要在【当前节点设置】的【自定义参数】设置一个方向是 OUT 的变量。目前我们主要针对 SQL 和 SHELL 节点做了可以向下传递参数的功能。 @@ -76,3 +77,10 @@ Node_mysql 运行结果如下: 虽然在 Node_A 的脚本中为 output 赋值为 1,但日志中显示的值仍然为 100。但根据[参数优先级](priority.md)的原则:`本地参数 > 上游任务传递的参数 > 全局参数`,在 Node_B 中输出的值为 1。则证明 output 参数参照预期的值在该工作流中传递,并在 Node_mysql 中使用该值完成查询操作。 但是 value 的值却只有在 Node_A 中输出为 66,其原因为 value 的方向选择为 IN,只有当方向为 OUT 时才会被定义为变量输出。 + +#### Python 任务传递参数 + +使用 `print('${setValue(key=%s)}' % value)`,DolphinScheduler会捕捉输出中的 `${setValue(key=value}`来进行参数捕捉,从而传递到下游 + +如 +![img.png](../../../../img/new_ui/dev/parameter/python_context_param.png) diff --git a/docs/img/new_ui/dev/parameter/python_context_param.png b/docs/img/new_ui/dev/parameter/python_context_param.png new file mode 100644 index 0000000000000000000000000000000000000000..6c8a7e9944a43a1207dd13763bc2f2554e7a5035 GIT binary patch literal 39364 zcma&NbyQT}8^)`mlu9chog&@RN;eV$LnGZXbc-M%9S%b)-5^5^9g;&x#}FdjFmw#u zgWuo1>)wCvy=&oeILtX`pS|~a_xpU_XGgqKlYfd!fqU=Xy{C!_GMe}9Jx~Vzy~V}^ zj_5ESTHL$$>7Js@TWv4noeV5LlJ`^HCt4;5d#=Kl&)+=CWuR3eBxnx}|JrQ!*5T84 z5<;2HX3w|<-+l2PXKEV)Ap}GUQd0dFd#+a2h#jl;si%YMhiA$22Kl=?3)Vy8eDJl@ zR#rmz&_VSQTc?e5$Wk?((aW#dzz-*WdvaS=TR~ezTU}eL;rg*4T_VU!N1CHkbE=>9 z-&e{R+gsau+J-IMeKKxAR%V_Q6y$hb714L6zudxo?)UV1FhgzssLtZ~yZ*{q&lwU~ z4d6#N`j4xUu=wvseQwvI1nYXV|BjANFrQ~|Wf;FKR0(ScCF%M6Uo*;e+Rw(_eX>6h zv1QBT$lRSj-l}>a+0LMn-+mOz7ZdZ}MQ@+CV~Ot{E4P(PVJ^chj5I%Mn2(Au@=tz4VX5 zLgIwDxIgSS$gk1SiC-e0hgpFByC><(^PCr^5U?`#?WBQ^PeT-?fShqaSrrNEO?nc$ zmd@6Vp-Bu)ELgDFH2Q_4h7)|*3Dop3aA@^fNl7W;1Pb*J;cp;(gjade+D*vlfL?Ms4d~cGhX{s$~r<(_pKy|c)Vx@ zKN^h>dj6bqeJI0~%j6M^xi=Li-rJhIeWyR%bqh^x~D=R2JUF=#9@8UAec~B(50x?;p*{~Cd zvWa2I`#55~3fnSKaws)VeQH(Ys~#UK@vP{yrMD+5;&?|E_HW`PX%TWO(;;*}6Ws65 zsQA9Z)7JKcLQLCZe_^>iHcE`MD~pSXCQ#qVr03T!g-A$QwD+r5@jbE1Q%>S5H(}KA z0T`G{$9;(j2?_K|ONi(nKC|rBbBB6 zZ98QgjlX9XOx|&v%8}$eU#m()Oq^$Q6@&6i0bkDQKs(v#s>aKuGl&hV4k&K{E| zEEkDY4fCj4m#897HJ4U({ZUcrRz;@qA5!;M%0x~AM*LW@wLWnx6SJru+DhNeK#~*B zXPU5(#)*cLjiNF01rhLZ;TlsknXr;hxqe=^?W6n_L#ffz(C9QqIv$PL+HG1c9UobQ zgYX~`y>gj;o%@uubBmE`OX*>BODLhQNFZH`*s54O(|>((^fK29XXJbT`(mX{(tbp~ zYT5~&zzUs!^Nc>V-#L$YoQ~4m<`^(zl2-=niu+ppulSuer&p65}d`~t@;EKO5PhRAnyD~B9EiPfaN zhn?f`<3#x?$s*6rcJ^l+8k!QZPlnmpBD|wKk!;h;E?$u=sdGU{8YsMvbq%1 zs753C@pyx05R}U6p1QLDlTWNC^hOEl63mtx!{i_pdYiZD|Lexb+WFADf$^nId43`R zrw$qGXa8cVcCUL^3X@oJk=lHgKhdxMRsvpS-Sq!nsr+0QjHPbj>pidp`vMPWndubl~;&9 z9gp(#Yrog5tn0v81Vp@=jDn|0?1uI4nAJ1ckJbhgyCO;Zt}l)(`x3gWuA>tV4!BeJ ztZP}*Sc0+eA;8Dp&yOBgSKOk?A8Inb+Nz&ff7IY?W=7gwWvOgA-%w+hDpeMj!nCda z^^bZI0nju?e$%MvZ$TJXN;z^*^Ar=ANAr|P1+dt3%i}gSi0u+)t8E#?eNW>i%M4h7 z06NifgJ>io5O$$gvKmY+>i#&A{e|@5z(nzTHd_d1po1_Xf~z)tHH1Lw`sX*NZvDm9 zUk&qRnpOD6$pYwrtrU@0*)sIRV&!@o<6a9}4 zc$BZd_w)U<0RQ|H@lU2L0QYB6B{o+*}(5rvn@>_3Kv|=jhP4gzx z>6NwS`JV3ZkZ#CZUZ1;E`FTUt3^+`vIbR5t>W+PCVupsBb%yrM!CfsjN0}1h2r5>! z3e-l#3IyzR8jrGkjyLFtnN@y!z^n!n-0dfOzpC0>-VC`{O*VDc|84b8xj(3h&4b~L z627Qhl;Ps*1 zm+nrUw7i;f?(LTsQ*_>3_LHT&9y?^Zir-sq(ATSTPEy!#3c`rU$oIq{zjnK$Um&sq zZ&-PFSS;H=Ux2T@a;t5}^hG@P7=e*O9UBpQq3=ySTmx;<5qNFiXSQ0Fvnfm%_t zOWN@mOcN49Y?iJ)c4r91Pd;!jvDkvF+Kmf3FXSSZTcdx3TCs+NGcvL$FLv2mo*gEl z%oZawT{rT$mFWxAx)ge1sB$e4&v|{0UkW_@y*E!d`a{~cNUI>G+7T%i`h=X_#P9G+ zsZpcc_R=vH9;K<;Y&mMPAge!|u#<^nFtY#Anmo;qqm*Cf^5 z;djH~au1?zadO<eYU0GN+Nqb_UT6QVp9Pu8>7sFJo=V#&mOqOjFD!((4g|B(tlfExT1iy5gA%7o z_%|534ho=7kU=p?5e{C>HE#9+PZ@cVFKe4@(?YXE_v)p=tNoUjtv}>e8uwcg8RYS{YqbjxvQzVb z$uL8fA4){{6EQIcN4H$@+Ks=2A9km$06jlx*@8Yrj^@aFq7$0V|3=!`=-1dW$$ljn zai7+Td4x+6=eq~*ffhNt`&K#vFUVxW)11aHR>P@VUXW|r{#moyMgzW?pSGIexe$+ZZZ#5gsvbzYJtdavolvmqg~voy zB4@#q)|mXtDZldgmD@%SmZT?|rmb*XJJiKblG4S~Y%s5_`3EAbEmnrJOa^npX9 z?`{pRS%+6+A}1*_gpG*NYJa{__Xy_Hu*p0{S!)TAxIU2fk3L$ux!RwCJ41!YD53N( z#l#E;p=fF=g3y6Uwu&b9Z*02H9q=K-PIG$Xd{)(JtjsJ~?#UpqlO$b;p`#uj4z#8X z2H|cFwZ>oic^{hES%x|{>dtwzlg_+C2NG6otl_faeiwGbO?6jPoQoW7;E#@SX=>mJWA3XqVA#)*nKBY6?BD{JvmJyT4xYURl8#;JY@ zbEe7?HpyTYS|qp|pUFG}vrY!$S}NDE5^TP%sQvRnSC_;GHA<;QJSve5`$E~swLNp4 z`j2J;>E=B#-~M(*+JX-Mc3E!xrYoNu+GPoeD|tGijhX9MZ9k>P#qV;2ms!JaJw&NG zGTq=FNl`$~SDMb8`@ysu<3fQ(BCVAv72+GH^oQ?fI_RyQ7m?3(SG6sS3}zAsK{#Peh^O?6ryqPnEE+608)L?b=> zh0|lyckVBi>*^QI&a|br^_0S31(m30BUK0ZpR2iE`wI|q+X_Xet4=FlASK$VPc4R zXyeoPE6YAOI)nf$knr=sH&XPk7%pVYVoEqU5dIcM0{)wrz_jJo)HLr}s!j76q?WE2 z_sfE@?xJo`jQuH>{ZaB*yY1t% zmiIRJCIMKH`Y`atXn}jVGss27-Cnicx~{V~UpWbwfBO2uHOWEcL-xwB$s5=7?^0iI zN7)IbdS%DHlp`AFznr@C!(&^nlwl;AG7Uoptg<&7Y{D-*5?NljCtKg_ut+BxjNsj# zrUX6HkSZTBj}>R0G6`&Mk>lm<$mvz@puN358s7H3Zl)%Cg-IN1lAiaFUVhm^V zo>{*7Pk)Rhn*@NOF%vrWTdthUiFP(w)Q5=j;lTKfEj0VO!-ZYfv>AdMk=ID!p92F7 zv0{I%A*XxuIU2N3S_gcU!Dyj{jTm+_$z9vmP$u>qlh%Ms>bmL<8}YL_*M|Mqavo~q z4er}3Bl0vF7!j-z4i%QvV@%EqO+KWQ)O?@JznX_GKP0yLZ~SV^qJQ?j@95$QK)7HX z?g+yy8{vB5mH}L6Kz`Me9EOMxuwOYy7Y5sOyUmD$LnsBU82XPRc$a_u%u`lD+s#PY zCdhCa*fk5eZxCBPkvqOTNgxW8^N1xY_owfK^tr&wmzT`I77Jp+aF<}2v_<=BaZg@- z8qTOWR>QVs`WNP;dsf{^G_{1nn!OnvdV;2H_Z%Zl@6S%d%Wtl>W~@{52wYz>>*(x? zvv1>3zCXCs+v)NbIS#_OItlL3CRZbAk{hLRTJCXWjqAj~_$2uxeBH9m^bg_v8oP;6 zgX^iZL=ya`Nch;*Ln1Vy&#N4hp4H=Fk11-+pGYZ03`h$?q zvN^0AZHqd(1ist1gj!Rf!BU&Stm2OctkorHjRnDJ+C13jAC=Pc3^MJ=F-nezA; zWaZE{APsg)+MyQtMV1ODGP{`<{+`vcAmkLavw@V4Nqv0mDDK-k6oh8-*`zN4qZ#+3~HFi2-ezi*az6N%SXd!tU2}0)G4_%5S@%ZPcMK~n$Jsgp~$yflY@8q8Ph>ZJZ%Fb*a`0Hn4-5Noz~lKW@m zeKV6fmEip;AS#>?2MU7dvo%-#*t(9``L&t3Mt_|Wjb%YBK;341d5!4tSb77rJle*Q zw_DqeBHP-!R>$eBCn@5VO9IcbyJ57_CLt42eo74RZWawj<`}fQhFMR?_XP#G! zTcRT!J6fm9JFQE1=ltp4>+FP&^L`2_@gR4#p8PUJ9%Sjf;M)P^PG$NKQc(7nOThp< zNera+n+ZwuRRT&D2p5w%OO2pyH1;GW;x*w)^StCVFQsW(t-STM1ViP*`$ii`_zQy} zFmTQ951a1opZSmfeE`-k8Cq-dyT6vR+d!nE z%G`tth99AtSb!tF->`wCmr$5I>!m6SN5a>PP-VD>^vX8fm_-lIzT`b+;Hq(KkAbO9 zUv=|`$2$l4a#JwyTa-Rr*4RN(`;{9RGY?LL{{CXv-A$8)_?79HSeayh)|g&Nco#ac z%z#(wOMbQD-`$adL^t&AP7n&CLi)&~C?ee)ZL+CU2*23bY?Q*PM&{~ML>AbQ~I*f5e|1E?F+~HwyB{_V{0UbwKq3#WLQ@o z8_xf)Uy5vt5|Ta_cp$;GaJ_JVzscN*02==O7%I_XnuXA(+w+#mY}P~RkY?XAg;e3p zp@zVYrOq&;9@F4-G4fqqd`&H_)hUw~o1~oyfoTJOfy9pJnfqMDHLBfUs9^wWefNhn z*2&2XETYQSGbA_n;cd&ZYd3tK{j3)hKo?%^G_TLBnwndIPPRp8WkR8}HTF{wM`W$Y z)+m#>xGEq?%^^Y~6)^;0)*m2TI{FdozpFijuw1{ZADa1trsy#iuQz#2)>i{^xkin( zC_q3c1wD9V@uw|FU(juXfE84gI~RD19xc*h;W*m&6{h9&MlrH#=7y(>Jj>ZfBd@u_ zk9U#snSnRneF;pF$J5mV_$~pf)GpH(u$?>Cof5T9Q&!g;1(6Hb z$$4lN`YZdF16<17^8L+8~9flZ_=z(kNF8S?G8=Eeyp6R}5%;*I)x5Zrj z&vgNVoA6RYxaMB{G9IYLF0Z8yf!`&o9GSPA+flh_Dfdf1tD(A@fBv*?F#rK&C>iig zp%V2-N*8twIZtN^x#k02zwq98EtgTRjtAtmeu+;6nnt}tlI(?K)Vf)0ngg>2qz0ay zf%+gEY1MWUO4-@j$6uejlWlx3H=hXMx1Ur&`kWml?}O2+hMt84o3R(c=bZa>G#X_N;Bz`b5mdaYMZ^(HGc6itvua|Oe@pOm#yg2 zG{1v(EMD_&x3elOP0fLyI~B;;T1Nv`qlW71<1zJepAjyk=c0c}kLjPb`{k|%7PHkw zYtZW-+myT(mHZCV?q=84+HA#LrhmAuWP;~+1fx#j{jo7m1B`f zYs=1T&DcEtcH80h92|Dq4qr_Ps5w1Zj+LBT)@{CA?|#>kyBfYV2Q-j^?w57YZoA;L z$VbywVfg^QbsxTpBl1>47oVY~!|oT|=krc61{@cFY_|mT{+{4@RO{uIviEjbUGCdp zOe?s@aX)VqptipOIWhQ~9uh8jT7Rt1XKQjqDR6r1Rr z@jiC=0$>I>1m5%^h7>^Hd<4yzG4Me2pjm9)Hvh^&emzN-cKh7~XxvrUutXw25k$bw zGD=A=mjLp?ARqHP92e7pj9o?A3`BqeB=b5oRqxg$TJcW3_hm_Dtwni3mSik$uDvyD zw$kj{9Juv9e3VkttZX4>QH$HIXf^)&j4eNZ<3|{Eg1W?oUIDLZsIk|NsFl9No+m!7 z%H@Xel`c|5Bf~?o^F1JezBrjOS^cJK3<;wN&^yXCTP7Y(N-;dJ1xxUC#N#Wf)YU5Q_%>{(NPr!5sJj{=Q zOoGgu606#v*{5c5fBL7<@Y&gduWl>;e$!Fy&H0ReqenD_oO;Uov=k1j_3DzE2{~+q z2K4#W`{G>0aj#bFK9dAc^6-+UqFWh#1508ZC*xJkysQbcC_^fShB%Wb-|X_@kA&!4 z|KT**gKM6ap9v`|*r|<#W1wCGSkDPFnbiGVFacBBJsbIikI(R7E)uYi_ENJ>%+Y!m zb0O{zWZY#%?NL{1P;O%^RT)-VD9e-7`1qbX&M0D2Zqll@&8@KLcQi;r-u7M+6%U}s zAMQ9fhjtMCI;Xt-AErP(fcRL_bedXp z9Y-s`BoO_rB_>)t4->$BeV5c4m`KX5uCAi{pJ#$UmYP0HOiVoSM?g6E@t^kKb^ir` z*O+@789gf{;ae!B@{qaRE=H}8e9X>X)5~qI`GS1R&r6?v1e?7%#tIhcFGW{Jbz|Vq zRb&OppRPB{Nx}pj^&9O86x$EwM#Y}Ik&y|xiEA4`_6>yR|4Fa@V*4STjo^t$KC>eo z>J)|G+P1$YXrHFX#i2umEyuhptg9@=eP(>j8VtN^%(0R;^-ei;1Q(s_QLD%fiRr5d zAF{dmMo(moF?8|!O30Ieg!i$o_u;`h#{-Sj-e06A+GOQLhb5(Y^Mb5cwZbJ5X|Hn3 z^SY|@G!M=ss@RA;4d324@?qJFJcN@)J{PX=EAx4x0-Z#S(^Z(m#jbW>ngI2Po;6Lq zACHHfj}r_j1K3}QH?9+;bk*m^z5g!IW447+`%H`5{K2Dt@-DoV7B^HOQGC@xJ@UI4 z{fFdQgT~3PL~p`Tem57^duO$vj(~b4Lp@-y&eSPtiB^6ZlToW@DERp`seNmoPI~oT z2>=d-cz;i|iDRD8D-b+kMQNHgnfjQf$7NYQj*rg@D9))Mrodr-oF`XI z@WW>%Uj7(i2wM{p@we*po+~@sh%Ah7)aITK4)K)HJ@C%Pi>Fw5WM-h0e_BNGS@3nAygdGJmxR z@iTU{|C<1!L046^H2^*ChCB&}cI=qpPL2(`QVv-|B+mc%H?8MmfFtk+=VCPlZssKq@sa6yvy+{dA~(98sJvLMMLK=U5cTXmKU`*1 zhFs0d;oj0ygxHMVpsyz0u^VkgaGHJ$jj#Oj7I%b5Mc&(@j1)~!gQCIideRXrK(s<> zXf|qEdGIJAB4VVSWQ;$2=*?@L`3Coisqha#Wuv}DjuB_fx7HModjf|pq8@C?NNCVO zLYJ)&PT9e3rZh0cK5@*WytK6BQ_6ny!O`Aujx}TUg@j*WBUOwnP{eh<;ECY|j zj`i=VhKN_1i@%-(GLnyHb;;2*m=25W!B|aOG62HLU3=iISif{{%-lu@kn3e(AQW`Q zZBVgTtDv?e7<94RdhHlq%4}q$XZLjmUWN`*+3g*U0ub#T@MtFEn z5leAO0AnO$Vd56WKJWfUElV|lPqA+_uur5n)at z;YkjqE?V-&=BZM>ru^-cv9IbPL(ubJB5-mHjU?w6+-KuraYsP)jSriJ45j99K<)YP zQL7O$)kB)|DLpqq{&()0@V9>3lY`yA=XT12XWEV*58&iSR&psYht@jGlw#EI&3?Kr z1upzPvAa1jf-tW`JNef95j*S{K<<|*OfncdMcmlIqP6oe?2mYrJwEVf3)PoVg+A*c zy$Z5b$M&x@WD9&{L|h(8!dkk1Mrxuh84Ds3$eYF!_WH=aKAgoRH1{#s zclL2USr6t2FLuNcbfN0(8Daj_9^&r;jj~RLBg8bc32}%KJV!5+`5j>Oh?*(mZDJ5O zm1$-EZFuHtU!uX(W36=Yt7WI<7|NXO^2Q;5YZetE343Jjtkn2UUNU>IW#25POwaEC z#B+qhjJv{GZO;4GLLYO2sCI)t?$JL$R@)ML(xegNxKyEk(Ro)claBgr>IwTW%Oz;; zy3T*yS!%RYr}D`%d5xu%%$Xy^bUyjNS4+lXZ&Dm((YdEtbwbN(=~boSdEwsiKscFV zHtba<4T7ESRWLpx!C8FIujA8GEmM5WUWSedUZP@`0y40$DKqU8?RqwBNmOAc$#Z(z zOoQ?aH!K`G3L^@C@=Fm8l&Fyl{DYg@-1m?R{BcJ#e239;rG*yvvq6(T zaldT7dKNPXCXsu!3Gc7dt}r%YHEya${C=yG1>|tH76Y~r?#d1sGmyd_r(u2En(prO zPwDNffJ@uv68z7g4sGiEV_Lr=0;b@LU&o}UV?&^?F)@>y+$ucT)MF;68E(BVUN#9mtf;WakKg9I?&@XK|3}?F^+q4-u&5NyHbop=8#fD zft8RY%69KhFB3S#OmO@^;{7>lgGc^y6}1btHIz~R89PmyF7$i6NXz~9Bc7?TmVA{T^H#^7f!2%(U!(Qb=bXJ6>vn8WzC$HNkSb8gi7mvLkX7S<0Pc@lQ(~qV* zm6DSr&>Ev~1v;FC+sz3`&|AjG+ppfyw(3@i=EFW%?#&7FI!tq`LTagJ{%pqjw^_qJ zbm0yX!Vo+eHMV1N$>fJdGz0hZ%ktGSvPTq;>tgRe$+E00Jv|>F{8oMScbcvTm#|Md z49~W?Swe=~g_1ij)Mq=ry3Iv)RB{L(O4THnJ0c2tkwq9oxK-MtuBVPEPoq*n-?8aU z8Dt&Ey^6)Knj+OzCvN1CDMnusE7u#^+g!CbO%3vOt6SrKtH=2y%`v?>marD-bNmpD zQReP-7aN}ev5`6Mt_ZyVp0pfiHt*{0w)w!ZH%`uN`pJ0SH{UEB@$^~HvHDg9!n5{} zqvunU=zjVtBpu-ND*m>`$_a>bd{yaZ$DDTdsxH54HT8D?5(3e_t<3~Vq~!-T#DDtiXs#K z0Ht`WP6+JU&pjkg8Do$LZpxbgqk{8dGg`j@KokK$n{Ms?gMj$|uPDk{cpKnW1Yk=b zi&hLTUGUUf*pbi=Bt+cN=R&Gv@3XLGMgtI#1JHW&`v&H3Itby-6`upRxSlQXW^gnR;0=OCY6`jUuMtFR4 zsCaqrsCtf-vV~!j$$tP32e2@ZnKX~PkhwzcPGF+|%EXT}@(afXbngJ(-P7=r|Honf zG0Ok{xbNnX7Xp+_xPYsTDSTz9l-^&sqts?FbQX8_2yp{ntXPSGQA>;b(hDRK7Q3@G zMC9J=Z~RRY5{CMLT75!#`U+>~wg6yXK&>uSxofF=kex+*YJPiz*7rDd$OhbLqm*Z>fX7ZyQCa!v?^pmst^uVnDH)=K z#MLlDzSR>>hCFbchGx;&M_Zml@D)JH`zZg7 zu;E{jcgutc3SF7P``RJr*q};n&3UoJ{brYscm(@#lqL{78JU^oa%4R+TK%rNyE792 zhL;+^GJmqUX={}d!3$nd@CK6dJL8S6iSr|$efA?AIrkxd@CVzajxS)OV_o0ZXNWT5TNOJ*TKATe& zS;zy6sEt|yTU1)pH3|W~+O0zXe1`?l`x6RLbp-FXr+?;bXH0nBQ4t{h6~|l*yvVdUuPJ>Yla4F>=@@J5&N zC^H$LnYz;O25I>-=%Z{A0K;d$M+zJam+huot5=B55GqJO)Y*X+Ta@{E- zied_Z76?12suy74HFy+2Y?l*qYC4pgsdX$V8HerkC9+(ktOYTQ%vj*s1n-j_g9`N-%fBTGTBhJt<5=RdhrQ~5_6o7Ph8 zSHfso&OrH+9|kPhymxD+R)8Yv$D^&13LqoQ7)E*m>#NJJZJkvRDss!C6!vH}Sa3OO9 zY)LESVSsrjA47=ftN5yp5iQK^Pg{T^4Yd<_6^DVKeL2BR&HL|f?hn#cWy?WK4S}X} za5Wu#UQ=|Osp^6@axodyIuMbP+Sm2pQ%+=2*OC6yw;Ck2n{L%7f@y0fQklgaKdl3m z!G^yL|MeEy-y5WC;Q<+*O#BZDbbcv#l+F zW4AME*r9^#+Yv08ae&1`d8Ud>p-3|?SLzEXm9Pf+{X|}!#1VAC6OPISwG6*OQveZH z<7abNA|UUzMgVLpAphD52ymV?r1Q^J;=M1iF!LYD5m=2&e}#x5FBxV@FWv*pWa@0_ z@{JWMC#PD0K|De`Uxi%tW9!9Q+Umv#14UWG(U9os`JsYibl@R5Pn8TdT_7n?3tKKR ziXTaUnRyDRLeh8nBHvi`y#kCzSGlh1Lqt?mjuLIJ`{EfIs~u)KCOWoW%(1IZ_QtL| zy^aU6uYUBI@4#s2(--`)y-4)H@rmA8Kp;jRGyIz%nr-sno=iwWMB^IB|ao_(&BXCvym zrlRY-E_hcn10tw`FbOf6vIkXMJipy{O`ngq3s(oN2lURp`aF+hAk0206L zvko#o*~+?G=-gi6NIiV$S$nasMGJ5cnO8cch2JFv1l|ie&3#8Yr-cFw^qpp81A_ke znRD|AWbNipWDqfxmahBOI9{cL$-xdQrTrpTKYc|H*ZJAu!q8Dl9>BaeJgM-_4W zi?TpGF&4Mlh`r|Dc}(wLkAeCTR%I7J)`HLdt1u0yP<&dwTlC2O)n9FT0{TY2r%6bB z*E_mNs8e(%Cu$iP7Xhq^K?6j4$4VNmp9|H2#cOrOI%`6Kn5cwKCKRakaxol{>;I=9dDw1+rFw575)kGi@TKv<{XQkUK-Cx3U+Ivd15A zF(m8! zlRv(OTAo9W&-_E~T)it^ z5B_k9)ba15759f0AG~AC}6Z`kSAX;^Edty|JuK z_fJQX*YE%SAM#B&afDV&@#g38$Ue@0DRKK!F&ta^K*q+l#Q6FbEf{-YZL zn*%wsy-Shz`YKG#_DNpxPyAEBeRL%zX6UO*4dv|ZNEzkF(9nltQ7X96O9 zh~esiQ@si%81kPF03gf6l}UgSKO{xtZvYLaW30Y2DA&UjQCBNnC@Ew+$|3T;X5fyP zqN4JN{Xb^`+xoizEq#|UpUUj6N0MjTS=~)W2>RH+Qp}23^d17Tt{{L6C$^#cLo6X^}llXnBZ7Dr_EJMe|UiI8{@t8_&*=7pE3PEbIY9<= z3kd3mS^-gOd~!e87k>AyWPLz@_Kd6%pe(}L2j6DEr|_iL-!x`cqd2TDzKr_<$|?nr zSENr2g8Ciqm})c)l)Ej3bB{kw^zLT^L7bty!wFE1Wnbn z`f6+!oCIIIbcQAJU7abejOG#5*nLZn?xxW>bv|lk0DCPMf{;6&it4H(XAAD{n|qgk9Ti zuP`bDS%e&uw2#p4la^6+>F%Tt0-TpEfc*tk9=jBZCnCB-J%GhywQ||FdC^b(Ij7-E z#DKL2kae|6B;#ENP{jjoS_PS3oE*w(Y6+E<+*D#yX|9|HvVRt38N03*CQ5YGfgH04 zzyooS`2XxQi~jHW>u6q8xKaOTnsm?A-r_f;d1u=&XY%L=B;#>&VA`8- zK%hvkrO}+U`O5^}`}&;2Zh%Y$>iNQTr{&7ns`<3RKJKWj^Ij`zJIZyQpDDhVeky!rq5|}mm}cz$FM8SW*IChD zM^S(^u74oe1TwN#PXiT^MOL1`bi65_wlA*N3o8Y5BwhgLAu2e^=@hFOP@_>^V;u0P^LKa7qz!7U>S5{)1;} z7AyT6nw|rc-p9$DRhw}qVeaTFi|0XZEk3=)k&%(#0E4ok!wzc}stq;X3>X0Jb_{q; zywyPi?*7#~aldpw`g1Rlxk&yuwta48t2W~*ndknOMNxx^^0&Z4XRG^b4k(f*3uRHJ z@b#2jchpYlW(H`mK@f$M!i+pby0s9~j{GEcR>bzWOLE3slVYeObmB?W(Y)nN6(r5+ zveQqMQ$xxFZ)0C;-68GJ*V%guPc5swhvjfuqg7<5bAwXY@-{aDJX9(v-gRUAFkybU zIBaQJC?LIpjyF_*Lm1?7yvwGglVPaY+>qBCo`%Ul;rU%3vPnWA9B{hWLUS7$hk>ho~Ef{BA&3f}1o zJlv~2QP8FP(=*@w%Vu*q#6c;(;=m+FOv9V-RCR9J$ z==Zn&M;Om4++UU$HA1cr<@q8eSzjmvQV#;ys>Td2&`i#)=vu#%iDYn_02Ki>wbkTF zw8e1dyrJ1@0^qGN-kPe|KUrquZGU1_uP+8(sVw>BnMV48fj`fJl?%p5!P;?;>=fE}l!gQR5k3LUsH z4680wXjR0W9Oh@Keso$l!p&KPt4v$=dYXVu8yrTBNdq`D*WVy{6L+!Z7kaT+f;r@w)d586 zVb5EI;-afl1J|e>n&RL?Xf$sCE~<)Cmz=9Y@#xD3v7|0 zK!4I`^K8+`38gT4>sI7_Bxz@E80z5YTVhEQY8F~0aoK6vjTW| zILij%%SFU!s%`t0o?5vmGP9_!j;~|^O=cR9bMt%Sv|w%e!#s2-SS?eGbubmpSSsIjbCA?4idhBveWc>f9H<2GTi7|m=ly+%rsA`T68jLq)ikJC1^>P=RZ*eMm$h87 zHdm@!QBFZ?pm%GX<$&Xlr1>%=RZvb z2g6#)ZW`B(mFt%oH9*U80i=g7v?S+vYXXr@ zTQHA)A$0RTT3hO~Wq&%dDJM{p%0^sRh)k@Y@1=R0nv)(^2?hVhWTgLhV*9DyN-XN6 z#>l_oCI4WGROisJ_~TX3GqoPd23FwJHUr^r84;tgZ2D zcHYw4I|m+^!iTP*ZvzsA@fySMlZC&rAsk%&#O0*j79XTAK{I6Y zE6Tpm_@y0+L{#(US#D05H0Hk$M;Ojm{wS$)SNX~1+Y>Vq6tKb& zyLGR5g3QMEE2aiMSt78L&mxB>JY0e*)r>r!AEpAOBMTo92G^s~#SpbuqJu;z%Suie zPg-%~Sc!ZsEdsD@cUt>1tbiHx^AKA49F66;$X;xTHO{6-OLscA=n-U4WFNF)a3D7M46!;68!^912mAH}E( zr$2mp)|f6(OG+&j#}6-rYVFy!(}X-%Qc{AdwdBd|V+iTrXM#(dzFnmAJfg5^5V2du z#kpF-ijbt-`1~tkgP$}%E>8X&*tB8KIRxmzJi7@Y0W6kf%W&hD?t)fLz;-y)FJg5C zU-RLrzkTin8$Xz0eXsJ9KNCa&>6T?;7aj<10FI^{OcdKS;+u*9}A z#I(0k!eBqe+$696#opO+cl0;=iss4dn`fh}w-jsi_qs7hvH-i=);@jhI-uJ5Nj+kH zQ%KiuylX9i%|#7V=gpn_Os6=lUor#ebE1Eq2`I09_+`l51ngtEK%eC|JY7X3C*JKv z!hOIgmF0)RDSG$gbF~2J)B4^ffMZz#tAGRoJ#>vJ<~W3*P7Zei?y?~Ggd+@(5!ha)dCc=mUHvMeo?W>~EGWciB?q@vXFuN@v7yJfWnxog0gIxc=OLzLRd(|KJ< z$;VPupY3*th2M*st+50jS~FdT?Ng25$1|Du{lNJN7)rynO;gB7rs`~d=>8emoNgh-z&tG#^zEI*ZRrhAITKN)jP2KGj;bj*4SiH23MQmj1=G zuw6V^9ySs&|5G}9sw~l#D``R@vA}rc9L3$^a=AB4aFj4!p3~Q9r`246jIrg z*X`!@7|~We@psE)L*lP%&|$jO5Gfg}^3YKijDsNN>=?z>uxL=Vg^|WI#lwvZ!Cs3H zD6s@btVapk6?2#xo3%L%`kV;N?~$0F66Vd#Hm5o4j?8zQP-v9HMnmT>^ z@YeOGb-$^bIJ!5|vbpvFBVKGcfc%0HGjc~DSYm)JJHH%rPsD+(<#8`5(t%T{DRJL_ zRZK1DQ#)Bf{9nMPYY>gy(m7V3?kSs^vFm>&)w|gKeV7L z%L16`o~>N^$K;*~+4DV(k}Y#;Fn;$f67=7{2>hos5{BTF-X9mLwF}?a(jW)1&_ImcNrf+4!KbQA>j)e3vqJn%rYuL29Th8ry>EPXi;@hghHw0Xy8qac zqVJYG)k6J#Hr$$n@%W{P*jj_(H5B~7KFuWkWcLAVL3O4(T=pEO0gT5qVQzC>nDDbJ zpeHt`QQrCTSr?}7H1mfcEbocy>hIfyHt{AAl3en4t?ReZtf89LFHMgJG^7wOI|CCq zEUdv_t~ZmdZGD<#Bi=@VOqh5_#W#hqda*%Q_s+vdoWsc`9upsET=}=-Y^^%-ytWYp zt5{C;^?W*u6wdgbg80rtgFf*KC}^=ZviG6IO&WLw{qY|Z{_gD$LboNP;(PwVjoDnN zu36ZkKG`6L56p>nnSC2fOV+@=m{VpIHzNB-T5q0Cp~R>AI`On%xDZZ>Rb*j8SzM49+5fzJJ~B{-lC;==|O=Z1}(V)%?O zHV?T0+k?lLn|HV+^w`Gwkt(AUlM5-~bxD8q&i}Y>D&73JN>$s||Mu*`bfcQ}bA?zx z7iyo|Y>5SybDU$R2z7-`-#21+qyMe)hgR*^uyWm?dXmgDfkPs$?M{!-)nh-vTh(u- zCE=)oIVLHBC)qEr$GbGUq4*>n$rh9{)bDAS&F$Qpxu|*RN#3s&*0z#6tX?`>x`MrT zZfEH);tRa><>!~{O(~{Rtne%k6z|;osq$?I8zaakKL5ss48zB9Uo(eD1AiYjI&T~!RiNlm zSvhG&+N+FdWurye0QK;7;hMt3tD3@xlbh2FNel+XO5GODpMRaP$yc-x{Bj4i0jS}R zfF;0Hj3o#cREGOY&sd!kg1L8j(rYe~77jzWzf3ROIMvffNX!R*%F?ljO(7nHmj%y% z3m%hgpw6y!XyTpaq=h6HmBo%U`b(3ba_TgAez|iOan)apNIg!mk>zuVzxaUFfPtF( zSLg3LfZf-+15<{7-FRK|&E+%WgKT@LoB`h1-{rFBB@9<4`CXhp!`shw()Z?$Z9YHz zjE-DADy_R=FyK%fL*FtNUz2_+829yiMFY2+uCKu*=Lq;o(qK%>t;3J2&D;5gVtgpe z=UCuC-ldDGf(L5e(@YQk{(Qa9F9k7f`Q*Ea=M)Ez9j4HUpT~ii<9MAPAqR$Py`FTSS6z1d5LI?F)93E%R2DK zNbp(R*Hp;Fr7cW;5Dsc;5kXX5mW`msr@kJ(;ZOB7nl!%XU}DiKf7}O z$Gas8)^M^v7hOZ&Uiwf-5;L&Q`!ZaoH)m*)&pFimWvu0&KJF*sUc-zZepyp!vfa2W zfBt^udDn|UAwJbb3!^fv*9BtPJ*Us_M*9+ai`2Gy1bZhE!ZO9C%a3QF^B27I%d3o z(;fNLsDifyS9S}s9F5e4eCM5wHR^Jm;-nJz!T1eN`Iu*{H1pir*%b-@NR*w+2%HH$ z)!OIuua8Smk>wj!<^z?pR%(~^ly8V_-j1DWdPas7K%fo|?zm2mg2%o_YVZPjQQ!Cl zkc1@UD<1rlF4p}*@_dUBteULrC-12t$H{(=|8_PbF5;^jWJ;OW#+k=#HGO+eq-uoGZm9;i?=b=EToC=n`W`4 z$&=>K(-XY2{~!z&El|+xYzoCLv~cK2KaBq2r$K(oh^1ts8*`C8LhXg#TBXm+GR(|M z0w$RDuCl+qu_93!l*cC@8W|Rpd!9BE@!%>WYq9oIgXzKkEcXPS=c7;c{hyRW5|1kf z?>@P!V?Y&F^^#%a*@G{NB}O=YIsR+u{}^y(M_V^+zE{s0ZTq$3!5;9+rzvna*@%d< zXG}M#Ee?G1ur@&X$31Vj(|O0`Gro zX2jw|JXbQ?Mg`#mUC%=6@7|ESNWDL3T>9-z_?VY6o2Ouru~XP z;Yx23hkv={&>wY)n-({BiCrgy2$Pxo7~GAI{acqc(}lzN%7ZVWq37SsU zD}rYP1*>0w!zBniJ3u=OYTe$=J!~b9x-H-G8H8*rE@XaYUwjBkF(25ZyN!FTC|}aO zQwDN0q$9rKc>aB78>J_}TNsjbEyg_s+M{ zG2|P(Snkhq%SRCHc%F~+`{3h+zHjBVGex6D4vnwEFSbywnPYgxP|%v{QyvMj^<$jP zSGC(TohbK~cUI&ioLO`w)apce46#0EJXtim8s?#lpKkE2n`R8+5qe$o%9!JKn7#Dp z-Of*suyN%_d#q(oOzJ#pzjdb6zG=DptM!H$6|ls>pR=AVymBjEb;}PQ<;nb{ z&%C$g;XB`sN7;JmBgHXtz&NL(CZU|bT7H;jl6l|r)u#Jo$`ro!(kSt5@z(48@S*$IU{S2ft=71n!I5R4G_KBIVp z`tgS$Qpi8DmXL0r*jEU~t3BdZOPic~YaspR9`h? z$ePV~RV@%MVbv|?v$I6moU5IErGA$}lcno^$4k2($Y+op%EK_Bc!npfzaKPjv^eid z&fW}D)usF3dVb(@imljU*#p__Q6pSXzdOs%#GumfAzQ~8srXC8C!vPEwr zS9_djlP6>K6dUU9`rtdopvW{Ti-6n@F%Sf?iNJ7MJs@XfwZYXgWxw0v@C)?SB~ibb zGqa?JE)`X*Z+;sWS32-gdX}4;Ih2R&0O^J1R&bvBktrv~81<*`<%_q8-1G4*LEIGr zl2_k-`*UGs`_i5*XU=Y`SX_>(noEAUDljvDz+>R6=*}49-QnqdcI15jn?d-q#-aGV z8;@Sh{J$9Hr)g5tR^8$#3~`0qVoS0pO2A2w_}=!uMqoMLqR<1whAnK#GnZK3-DLU8 zEZL|>U!zOS&+v)GC7y~Ftvd$D2dal3CKFs}BUt-vHF?-NYf_%h^1U!o9Bt2?G-_H& zd)9FgTnAq?jwqj|b;*rfCjq!`KVa$6W&|&ZWJS(j9z0VDlqO5%G3&gXxG}exu}Zu8 zXZ$C}sfo8gk$3g$zWvGOe>D5*`p@}bQ1ndGi3;OV;-XO(!<|r_x=ytj)WG6vzei7E z#cFM$q^!R-YTW&D8};e~8SAv*T zV#YrZ_${xC;qc1=m3T^DzE|D;E28bGr~tha1n&P`T|Ko z1lx)Ml65Zim-O^eBBUld4yZD>hGj7#LtL4__y9%mhzOCd-q<7PXoGJSAXoR@u|@*bTC)c7~id{e|rb+ zfBSo*M(*do)cU^{kJXdDOvYj{o$$BP?f1$MBbqh$Cw9vO9YPy+33PTge`T?~vZo|? z_xIG8d#Ob9uHAOrSc@QO4`;)D^c*I3-Rh(i{v!3MTshDu1qTB~JfM^j-JCVJyxPr| zO(8A=cchhDr?)C5(dEAX^M}`PX|eKc7Pu`5>qjWIw6AaQ%m?@ot;X6f0*3m3{&dc6 z1A*PSe6A?XSFhugRqgWUxQCt?dM0NPNQc2p38#{Pzl1+c)cR1}d~B=VM@>3?6+62G zUU&n{u?McC_{1QKcE6nwza;PEZ73Crt$1=q?ppW(Ib|M58b zbwiYa#At|@4_+ouOG^t85s5t=6RD*aycb_>IR&1MsZ5)`bQh4E7Qo-5P;v3`H%^Cy zKPUecRI_u0=n3cPNQ}5C#tX!*G377lP7Ch)`?Y{PA<{qCwQ%1Pj68Zkrn8(f>&LAB z3*GmBaPO!8pgs5Z+XYA7`af|o`0rc%KaLLnclO1X&VHah=HPYs#A}4v4m=I8fC*g4 zztRnTiQAx@)n!HJ12W8Y5iJn^{kuF7^7;C|Uz-2U_xO}^!cYA5xw*Oj9cMM;Kc2zEc>doZbut5BRTa&(!{Z|2@Zr|9=SOU;#NB%`I!~{i zyGEnnBJ?`&2F!k$oQcuN}wtbAK1Oi|;5-6_a43(^>wjOX2+auN%jc z$iE7r$oO0T+I9T*4KDt7CxS)y|GROZa=oJ;KUIeSwt=U+IlEF63FGUXGQY4;Jwt6` z`fBcWYauUqHy+Dp?X>t1#=bf^1z_L5C=oawr zCL_E5fAx!{aV#hoecll(P-WHe(F%j?GMvDAdsf^4-|VZiOp8?>&SGjUQ@dkyY|-pv zcjbtF6&<^gn8Q(Ik~*MSY>?aDx@QTJdWa6A-MD z4j$C6J+41x+fQ?p3ctnZPgJwDPV7<8A(ncb)?$sEsvh)UzsB;K*umoXU4L&cq*V>z za=8|h9zO>hx@D^0P7P^oPI~|=mnhtBxKZq``^(!9YXJJ+GRQGH`G*{LWW6L<;H7P1 zRON@AU~B6IbsYm8%%X^^KaJ&fy*nO{=bM^Au?{UCKJEO7GaCc;<^8CCz|h@*wOB1j zDb}%%(P-8c&*zL3vHrIL6+|q!zm1(rSWOojKW_*}=_m zV_weQmLPm9^HBKFKD@TUD&jGTTCNqIBvwUhxLQeic})Zz@Qg+K9*hIp_B{la>c3%y ztnoYXewu?!`L;S$)k8()ae1z!6TUdwoXl3qZ&KNaG8(cQDsrgd;T09_kzzV3#l__N zxrCW+cXJuAy zzKwy%OS9poAJByBIH5xZQdYMrOw2N}leHEu7Z{z0h*m9yl{8?q)ujhw`Hf>mtbk|txo|Ltanv|7+ z5fTaak$Y#cF~u^Y_2w!`le!xWWyDDF6vmHq0hAbYeJ3FU#}Me#c`&C9{&KkV~m- z>*;hA$4x!10=&48i%>MAEpCCsb`v=rK(WAt#PuCgaG3#sOEvEAjE(!yp%qFlG44L( z)VXVrqf|Qztc9&8&#?CgFE8*JP5hYWuWFK$D%H$rHOS!XS}VI0lN71!s4l+d=DkJ~ zbyz5b?|j$RsGH6NCdxIYnbv%U6K||K#*~6WtIa_zQpqf5fYWGoA8}!caBswf?dRwX z(HUhqw}f+e@7RZ;E8vN!5)zA%1INngKFK4-MqT&JT#Jmdr|(hK3>D0LZD5m{q?*VB zwoi_@1!$#>duR;h@$vEDtcX>+j(zW!cSdG%ZlJ?o9)X2)W$aMJezMT2p>=N7j_m_j6W1H;yi!UReUMMo;lxHLRETwGiVy-}tfZC3MZ=`ew+f&#sAjWf#| zRo8p@$nez?mBr}=EBswIllv3_2M#!A+DqUT!7Dz7WxfV)e>SJ?JYbLMP) zvV``8HtHkh^XiqIqBQqlBnJ4c-Si#(EIv|f^uma`Q~Q0o_xsGoSv<_SWgom@Fy4o3b;1Uv6FauU|q6KW2d)L4i#*!%9p{tkfz(6m+4L zmzNh_Jpe8x%oTrl`R>s% zu5@zp=;Sk;Xaijv03JD47%xzjFi#b)^xM-YLW9Rc*Ec~WN%es*oQPiD-xnu(-dOWD zZ@pXJi1f`kq$DG2<+O_)#4`-~c?~+|BJSRU^T1|9G{cvGE_5m6PkLFV;wCU!s|4nr z`N)c5q}{gmAwA+F zbewIdsBAoTW%H076iK3;*m9nHLKpMggQ3NTGDx~QsdKVRV*9l^iW3_>DpoqCDBCgM zk3fA@l0~0I0BW`t*6!uiFSX}RbOpBZjw~!FP&}83ipG4d#ab?_;YNr(8m&`}eM3CC z!MietlK#g&yH&`ml_}DW2az_3hDzA?4eF$|A5Q}_N$agDhx2CoML6%fBwRjgd+yz{ zWM4}|$N4I|fY}<))A+#!P@gJ*0hrxVx@?;&9IYIzNqBuuMGj^fyRA*`-1333I7*ig zFegX#g-MTZWQO);+gm0NqCsvUlOH>et_hk>_={cU&=Ra$C)H_N7lqUwv?(wbcnd1B zYC_=spB3S9Z|x>IE*R>EAAfs8X=1X%r+J64+uVWPk?E*JAv1Cp<()3EP*X(2+MDUd zt&F%(pfNmNeH*h%|@smA4%n2 zA?f&zORoiCiVn6V-HnO0@0#1t5kc(&V10seA(|T_Xhqh7QcyeQfP%m~u}F8l7}(ja zwezoF6Tg65(;0@vO^X^9{{g{ktCYF2K!QPU~~8Gcpb#6&xPXSl`>PZ&n?Ey-gfboyplQ@tvXdq215nPor6Ca zAnbn9!k4ozNKQV;W{@z9n`@#(Lz+&CS?QqCDuL~`jYH9yt=m-)6(M>&hbALMU`j!| zjnSJfc)y>m5n2K@+}Gg!&%lhh2<;VV-fW9|VtpRpDU=d;B;Dr#C_+)Sl3PNIly$_&KtQtRL5Cf?tn=ZFGRxkW!b zkI7vDO6~Xa9xtpRN*{$niui0-os$nQkyr3P6v{X1zccuDMPa>Jay%Q!4`H#hAsSSh z3jacWzQpuC`c~fbdSvoGe7fZqT4LpbMxfp50mD-V8B$#B$F8Oe&gS(+hRfwD7;;!SeXH1_T%R62bL5L)pX3c5uQAkzB zh(s7Tfkkl(u|8eETUVH&73+kI?+b-|&hTyn>^gEM@xLkU-50d#x zR^R?EJ`Cc70$(XD(0(4+8)DKcc>g*oRUjh-9*!X_KShNExAwU9i5q68u(riGeIE+T zm?6d3Gu5JvRdjUpCN!zvFqvQtz?71jofT&n>-|GZ6EiS#uK(8!*K<*VN z8e28H##RUzYG`G;+$&KuE&JR^l2Uc3;G+mU*V_X}^LhpF=5l4-f@_JjC9i1uj#IOo zWl?(fF(S)vSI$>_XFO!bh-hmvl;=y`@gbt5xAZA0aYt=pvl)0rT#ezF4Hd3r%hx_k zYZQhopI2)IOM6a4Q6n~ZxNoB$S4^VnxJ5>m^vW`sw~cjZ?>Z;U?u*ig8&M77PpGPp zhDU-4Y-gekau+%4JIxUD-eQAfhXr|%O9$NC7b#Ip?nR5CE0-P^sl>2J4IJA`Fdb+@ zk^JcBmnMdIoL0?Cr>F%UTcdGNXfd*~VTFPax3Zxhyw5H@#2zrX`K>raJK4{rMyYjx z5El`H$+KYJU)OK9O?6AEfI^i7KFzulwI^a%U*!$D_$TS2A_Cf9nGe{r(p#!zr-ZUO z4rm}Ic3V__ZpUMC4z}wW&u9qEhyFS`MqWKf_L>fLx-1kr>+`7uKJ28AB@+&$r6%&{ zE^`LugNEMaJ!-p!?2yZRy6XR8&Cchfv~-y;Qe)TwF+Z#HuIDZ*F!8$xjX z1jFmG=UK>yv<*!B8js}H1)0#ByKL`w0xA3(^Y5bB{BP=V))&tyxZ8d5JD9le>h~}` zGQtoaivM=_bkx3h#IPBiuie9eTyBgAlU6iMfzFbKYWqm%K`TQ+D?zyM`bi)!$dAar zzy9BTdHJNHf4nl0S2V7U^DGEtmj5HTiD0R7m~VHFjm|h>%swem{2Md5LRAv%d;#ZKjD28yfEX?u2@cfSpUQXp@|I^gTQ`V>G<)5x`0+3pZrS1SNuaZoko*x2(4 z6j30`+qAO{Dpy3uy#j1_O)$K*s?TeshNnPkg4mvYE?1^A+g`9Xy~E-#o35b#sDV+u zlb_e9o9Us$a|sXphho|eU=^1^ZFP+ptf1L5Dy@E)6V3$Xto`X+?W>i1eh7qBk!v79 zWc8_z#`%KXAJNdd*qLk}XR6sGb-eumn07^1HlD~Nin;0`_a|$%R#QB7$H0*qQ#0uN zP&ThYyJ_Q*1dNSUv(g7Q)Go;QOkCjSCAKChS1}XJV^uT01Xg{40iKcuYxk8IyGqC6 z7f^5MWqCClZx#vYb2Fd)O6WE~r`)woypP{7Ahs6xcD5h%z`K4CB=C0HHa&51SviMN ziG+<^>7$>=J1A|$2ATr{ygRF$h>nO~o5m;q#Ku)k#empV?#q<=4uHT6>JIT$*NgBK zNt4D#rO)5E`(=g=6>ImLLSAhCo3@6A+3Jbb)RKdJ4ae5G!j9AZjudlSbp-z}S+KY< zXh6l#rHHUolz{>b5C6x30I z`eKSa<`m*lEJ~c(F#Gb%ytV-kMUELcHCkX(ecD+vz>#j%vxCzbJI+LvYtlzHUjPCm ziUqODV@#ALd>s1%#awJRS?J{!WdWc~3^ek+LKs8cXECY~uNKmy>0@L+H%PC1CK`N0 zr(Rkh>hK}VYvH2g=Wh=TQw69cY)40DFxw4#V8u0dyvDPid}4ar?}wxR8D;tFm|ViJ zs*W*+>cd0s95IS(;uzX^m;eu9F55iX+T#FBy6^9z9dy@^*sf%*ejMnjs2iWe zL7X(!4ZBiEb;-cNU#~#j#FMvDI;JFVWk=1J(E-+4;YgY&^zNBB zYw_jpa%C8wAD2X1^IYQ`m*>avU>Y$DR*I1fy2eF~>aI{%&s0jEY~(bKu1Dpu3PVF( z&&<}SqZJlNBzj;e|^S}rz7c`BW5P6d+i@m2?pj%}U@b;}h;V3q9xs;l%Qnp=$V2Pp z%@t9br4S+DDIR4Crg3DrrB3W%vnJLWF~Y1#lYpuKCMP-qO1CZmvt@OGL_z2DWaPo8 z<$_9xgq+mzU{_Ax&0NZMQ@d!tgE78n-n8X05F^F0QU?!y)0PpprZ7&fq}LD1s`n z+WlME_SEi77VcyHM?U@Od}B|nyI(~C(RWA8^Srr1EJT#&iZLR`w>tf~9~@n%{IlW| zpEfRu3|W1cqb%plWO{RZSfXijs(1uO^pY96$)hqeq+0+_ZRn}pG}OS^q&nt=!{|c72!VpOmsfnPQrJhEua4d%+@Szy>79ss4$E33VRtH3Hk(+ zh-^8v1v_rcfneFRI3e`-R}On-S*oD&a@4kxgLh=0Vx+T-#BFcC*K|UB+BGivI&S*k zd^g7ycL0MhmAP|;T5?X_nwTJrzcF~p^en=tBw$WGFqd5dQR4Y!hW3d-sd&hg_l~NQ z(Isr_2Qki=A^^{qR(PlemR2691TS>u<|sfVS=AyN z=7%SWR;~1_S+5Y$xu4C-9=fw}63^&TTILwy814p9Yf~L!5Mqu} z;l+dfe-i3fL+6K!jTqi)l6-b=^beWsPMthGa57=cE+9Otk$hi#b0BzqM2_xfh7Z&& zSGNX#p=vF*h)~hcv*RjSq(cZpzH*ZYVr$h|++CL}3B!)^eM&u+4! zhI!#yZF0bZehjwI=Vek!dDXNRmv6a-NsZ`w<;WBv1$YjN!TWLP=89^V-RQZ~6*lU5 z6bB0V3Bv0viWsEVa~72!B)z?4#Q*Lc|A3|S5S+=z41H|Gpfx&?s z4GNR7N=GH?uNrT9p(p8hJ`4}oUoS#gI&CA_mJfjjniM*yR3@S1sxCllgjt#~jpsA+ z5G>HgWe4@4Tdy&K$u`=RST)ujgF_76b4j=AN(jfF)zjG_oHT>-RN8v8VHPb0ZlsIL zW_qYdY<)dT=%9@HM~5$K6O@f&FJ&AiVq3*X=ekygn8A*8xjpQh%1K11N8Qs9jeARk!Nwci9<9QK#gakSYQT&sKJ;w$1XL$JX7jN zTDZNd=r~zDgmF;WDM`Fl_h`k#ciN}idxHFoo3Co*Hy5{RV+LjIuEb7L-!2FJ3*OZc zftTCRwX5%Us2IwkGs|=a%bq?ms#>U3EV>KfrW|``3C|!?U{`_vRDWog_WAJ6??toD z6;Wj(r-DLmt|qnike&4uD|N$KOhfe@Smago#iwX+2bFVoPk-g_yU665rMzm1j(UsN z%W-r&ob=Zzv`1QbBR?#~s$R3C5R#?+M^)?kC9Zd59N+_0{=O@VzJt!vE$CztrIgQW z`P}dNFiH@+UAEvOUuE$8)_?XnkXVkX6j}W`+XyWkj|dSabb;vu;d*`5|HUt4acgVI zYG;s*waGs`$!jKMc}R2qr)`oi%QVfxL$&ow6*#z}`_`ugvIgpcd1VxpZ$DOPmz{-N zO@mmmOQ`&P=Ydv^)hiYPJYDZ0mz6lWlTNTsX*yQRi>dylp{#fZ4e6~(bHcTQQ~J{aimY8LG$`$_-Cac#j1<1R&T}8*Fl8rz zmF&eg?`)=X;$cZQ5z_ep%U z924MS)XdrRV!?WM3j~|pp19&vY3G~9H1^~K_;wah_jPmsWa z-Se$4%a6%*E($}C;p3RP9u|9+8Kqi}au6ae(2SXYQx%BF-`oYR9SFUQovvZ=SH3Ob zKugfzJizH)y_F$i(bCy#$PH@gtpMwcm*?pOnR<~)C^?8H8+vxDd%b_*pQRr8K}SoY zvCQ>K7?!i5UwN+loiIvarsel7TB=8+wU@9&a7M<3#UPN~D+NOo78xnfFM!BV1bA&u z0BKpSL0EN|m``~VG3;#qzvYSOjt(P`6--s} z-#7mak&vcY_L8w+n-2&ThyO_{+&d1PJ!RU5C2W!aw?8{)6kfElN|I+YV)L<(9RB;P z--8w3;7$980f-S58OF*<2Sz^%^3SzO>ZUS9CIGtAKglD+_xMNLetUjj?b=R@hg{eA zj%8|2(QdSF(nnLb<@w=^5xV7`)^^>3!UZ*V6D*hoXexI^Z>(Zak%SrhY>USG}zCmbMaIao*#uas;WY=n*2j0V#Qo)si z9B=ENr!TJ1^Q_?B3CVrT{PW6y`zY+=-KM-p_vO zW+j8E1FFe)U(BNyhMm4r;y3aF_@roj60ulkZF>fv3H|0p%|EBXdbQ|#WGn%sEevW&E}O8unfeQ6gu=0weFXHWTyII zU_rYrN9W1Cp_0k0%XWN(Y8*`fX>XuswcS47aC+yr?ac}-5Z>JEj|?57^SNqJ|H?UP zIw%El=3{2zVq4B(?R5Wom94Op=%hgh@(m|Ab@Cy1WRiWMOf#p);uK zFlgFOlxFIZqq2!4tB+oBu3HR_aeFD=ZFSpb{lL_*Ah1Oi>r0y+m7$o`@ygWSBGN>6 zzSgJJpj9h%Eu`tidV4_uYyX`g;s)N)E1oUrf(oI$&!T0)yB^Z#hr^~Vn%zLAAT<WS`t2pr2>B-Wc)kP^Lw%SC>}hU9A# zd8xb0kHgSPW^XCc@7Be~7588@a|XmcAv9kjYP`YH>RT{HlebOC1Ov9DQhG)A{cwgm zJ=6?k%2lZ=u6{4W_vzs^dOp5^`~5pQ!*sD6vsQxmB$tX?uzhZNc!IDu=J0xnd7)GQ z85P_8exTA?Y8V2VgPcRXyw8yxJUSk-kinRe&kWf6{*>xSbQVA_&pXx97pJhvO%d&$ z3e;yN@fjwqRQ9)NQQ3tJdyc!3$g9~OQyA9#GRk5)=UY(!@R74U^Le7(n?B~f40g5& z;So~;k{hCOaQ(O?(Fp{np=wiml`Dhg%ue}#AWx{??DSEeKN9zPKY>B2UTD~NOx?bre7Xzi+0>gh3(+nG_R=IoRH=7MpKRJc2XQVpykD~7w=C5JI3I}e zD7%1^0*(`A7J7>}y7@Qc=ow6F>O1u4&rIz{Edz>BKqQ5Ks@4ei3tA{ZMw{}Z$(0Bg zmz&Lk1A#;i7!vFDt;ArTY1fMVJyY+l)SloY=Mq<{5KCL*US)YNp2(71-mWC!j%4kM z@QEM+4kmHxJMjJ*cAw6zO-!9@6FHmTwR`X~KvA0ZdZ*tq@Ap}vkDZHrQ z04h#iaJ+7TrfD=G4f=s8{OoXxw3?=-<$G%GXH-1H!R5yv!#Yw+%SlC87Vh2BW<2>6 zJ7;62qlhY~C-Av0W~chAOZ%@i?#Re4zESCczVQ1t*dqMW z=PXsC>%(gFi*BhZ#D1US);3|NuAO!iqL-)h=40b$0AH<7}#hy6! zvP`G!`I35ZGl9YHzk>bXZ&a6~F%8gRr`}$Vn|mP{6k{vhY}XT7)6A1q^>s@t$&ndX zT8pYgF*&JXkK|`VXSZdBL}{UM>yx3`e1?XLN_Dj}!c`g5h^m}M=jBmhL|?nz1sC^v zj}xxbXzC5}+BQ?;<_fM)Ap+z+Bm5LhFOxs|@4Ii_=Y~B8jBe<~fvETBe^;A9<-t7v zL}<2CIC+5}(ylXt|OYp5LKu8qOCKWc9WwL)CcXxDNyqqju z;Z*b42{)c|Av~dWD{u$KKvmB&=zXjZSIyeqpDAd*nVz|;rS*45mn|u0@}hX#dtAVv zc$iO0rGHzn(6kKA%3W0IX9tP{83)_91XdPsjMikc%Yxkfd>L5xT*hw1`6}5vTw$&g& zk>5ie)3Wkuv*c^c4>8YsqbsQoj5>7vfSak~r<9S8+}e}Qw3_h#&0HPp1o^US75*G9 z!by%uc!}S$SXjFE)76g&yvvpl_$7bJA!g^VVFKjgh76)5GBc9oSW<+M$HTJB&tF=- zZ%WPi*gQa>0uCz~F|C~4;ZVDO$!gZPvnk!pIx-LXb^>MKr6 z1kpEs?_9|Y7=mR7GJ`?+=5^HM{;Tb|!nCYr@Ij&jQ5_9{EX;JUmy)b>^YxO6&wvEvbJ|e-T3TPzqI24f-Nz>%W~M z1~}cnYY?h?#_sFTy1g04rP*l~mG|9F=(FzvGL;v%(%aFhU$7P#34=>gSn|v%Fqn zy(ZE6fj9h;6dBX|{v%eZ80>a?L2=IFdRfJ98o1Wfe7pW-sh4@t?=AC`N`jinfPZoM zgKq3s6R!-U`f2U?a%6%6k4ka=@6*h7OMM$_YM?zv!D5= zWdGuyku9jSb6MtMj_;+Of_}m{HP+fR_8U}&772A~L;EK;w<_ZfrmJ#!^Q5qBgLm|d zA!rVht2cbQgPiV$UQ*}GIFa!DMfp_4wezP|t2)YH%7{5L&i<7;)w3jCTd8QN$1%ml zEBNL)uajofWc_;%a&=xXrDI-+N7?0eW{6@IG=sUyTQuW&ZBL{wF`f6-o~~vmB8-;o z*i9Vy4z_)}sbp-Vw*&fye8v0hf0Dt)uO%x#Y=r6Su1zKSUkO!bTA{a@Ub!;C_7O05 zv31Y!iRR6lF?1^dHZ!vUOU)eoFj=mrCP<&mbjaU@&b-1up`r-3BjLHc($Kl*JG=;k zRwE`VJ*zBxeOnHwU-ePNEQh^aZ+^`dXjQBLN0pT!COSmX(8S{7^bwN931hl9P|q$+VKg;QntQNx?cU;y!*a|hfOI-CUu@Q z(Txz8(9XQRSq=LcHCp}^=mR%_cvFp=4rC8g7h1;MCliga#tBcSa|jPaKwi0eOwNWW z?`ag=`-IK{CDS!d6A3w*5~JB6l-r_ZI**!_A}&YFDmbRZFVyG$)2G4m2V6XA!pHp( zC4*%~@-3dDDpJ3fAdyY+6-jl0dLN?Yy8Kg%^Y7lO*!MKCVRUJ0AG9WiZR7{l%0`%< z^@VdT>HBguHD35FZuq5LND;hzn5uc%55`IqUnUOSga}`>Gah`lQeHqQ;TDry{8l1~ zcUdyCC(hA3t;WGz@BFtcN**cFsw;4u{#Asa=sH_dWNsnKR+?*;5W)5Dhyq5HWbcAf zeF}F&i+TXwqxo!wITxzVd9UvrBCIz;sj-774J))EdY!S zowYC~figQqo~kLht_@1?U5{eMgqsHX6h@zJr{QJJ(IGM=9?idLbw2la6CXc6Vt6h1 z;6)e4mB0GY-lotXsfg9QYl?CU6jH2qx(ZxmiX0SuA&kVPuKWpE->&I<86R@w*4Mm! z7J99=2i*{SBq+(zV*W7Ccz)#$P|FaCAz8GmO6u<4KiTdP!1({-J2H`yp zq&o3@WJ*@4VJI+ZkxksLhq#L?GSLot=ysc3UG$FinKF&7F!TFaUaiavyS=wc4)WXBW08p9bzMaT1-8NUDrFPv!nXO^n@}cTJ~455Pjq#5w9eBk zAbd+yF0@ACf`D=S!LOyn^|kN>!$j|Ka<=I^Y_Z&Ge+RbaU}CNjY^mk#0em!EMc8s{ zgDbVB=9vJs&k)fvb3U}dv7)IvFzrY8Y#b#w(iW-#Orqb4NCe&d8Yni?l-73!J0v~Bv7;Ewq>!irwmm`X}9Uh5Mxf!?*-=HOpJ zXa<#RiZ2*mm(tJwkf{=wxmAud{MO-K9A}x^u!N2H4us-KHo*#y>LX?_O3g1<`uZ`D zN8=uQQcAM!wore6NTb;-VvnSkz6;ciArn`M{zr4y9@ONO#p6ngv9i%vZFwm|&;Wr2 zM1jcD5+MY_+ZuvE-2eg>7z0wIY#<0qgn}sq1cD&}5gViu9wiW{sF;WpL4<;YhXe%; zQ9-~Bf%GQUnVs2jcK_^u-#w4-zRtbh%sJ=xoiF}1j#kbJ>ee3d<%eHIAo=Friek52 z(L}=MKX@?Sh7A5Qq-nIWi(J+Jx{Oqt-bynTS?$AB=jmvOANo(6_TZxANPA>x)Si!PMs5jA>8RA)i(k4IsQ+7vZ^J$d7%p9=r(26`_#9uaQ6aw$ZwSs zTEk)9K4S+uymQs%b)rxEb?w=21_~-}r0df8r<-kD8J;=iW95^#9mdzf9K@u5D756? zA=J+5EcNNhlB!#&+y=xu|KLIBLsMdT@l+HX%92=&af0-K_Z!+2m7j>!66w$BU5$Ah zptM<8R45PEHo7njjMQF($^^Ad6fpmEA={gR`)%BM)|`i4qFH$BoDT4z-*0JkPpW#o4s2Rs_cT%Wfv!+}@y}z30DY z0G#jLBoXH){UzA-r3tfL-wC}|f&xa9J+wvyD;?|6q!{`;t4$x*jhM63Bv5nJ=9<;@ z!3(asV6vndg!{0MX+j$cuYmk{eo`4~-+94xQe`fU#* z)3)QHk!^C@YI#=hVlUp8n zX@u$N&LhHM5uV&ZBCA4hG7Ztji+SK?wVK(m?xtlHMte z{~b~LKZ0(5C6UTI5z%u;d2_M7d+V_gF$EL0B{TCm3>A_Rnda%nU}#VWUwy$VbGAA} zW{pssqLwLFyl0%LinR2RqF1HjMZw7L5s|6O?y*1vg4Cx4F@|O?JEFU}4|*b%qr=jP z3aA9RwOT2STCVXecle}dJ$YhqLHB$~UI@HS3+S*UCI<;RH-G0!bu$o-OgQUjJ$(!1 zknIw0@g#44OCJc6x|sNbbi7+AUZ+F+GNr;k@ElEN>EIg9AXv-E_DTDGz6$o3PTvDC za&u#aQpCKsDJrz&j5IF}s_NjK=o-qK7<=aaMF3%wz7J4Ed&u&g*+lg`L#_AX+LkXr z)}fbH=@&6MdD)V;oyE#Ux1&O?-{q!G0RZ1^1(@{a0!pu zVi8L4w}HisHOvluV9;g4wdd=a=X+>o{I4GgoZVVLCIQ6vdw^Q~6z`qm6&Po&FMiXu z&=zUm#z_S%h_3_Sm8KnkAEH@5Xt2~NQPDlA;Qtou&xu$eovk#kp>%)*K8P= zEJ<5eYzlZTZ|GJ8xR00RYH13W9i}qnA7SJhsKq zZU)2idFB?Y9rF8i(SP=;Akc8T{iUJPF2%a?dC zcDn8EMesdk9aE7}oux0#{oA)@8CA;36rN6IZ?+e4dXQ4*--fA7r8Q4IOzcMgmt5Sy{cwY%d z$z)V->>4x)-V6wn8r1<#erN-nQil}Nhyavdq1oThhH-94Htj5g(RB%`Wtwzz-4*Ec z!sFkYHaBi*ux&5|G?!*0Wwdq@=Wo!>>`1w& fn4ugIKTA+h+(G?1ocTp8;6tz&yxWb#;nY6>nKSRr literal 0 HcmV?d00001 diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/main/java/org/apache/dolphinscheduler/plugin/task/python/PythonTask.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/main/java/org/apache/dolphinscheduler/plugin/task/python/PythonTask.java index 6206c086bb..208797f377 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/main/java/org/apache/dolphinscheduler/plugin/task/python/PythonTask.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/main/java/org/apache/dolphinscheduler/plugin/task/python/PythonTask.java @@ -114,6 +114,7 @@ public class PythonTask extends AbstractTask { setExitStatusCode(taskResponse.getExitStatusCode()); setProcessId(taskResponse.getProcessId()); setVarPool(shellCommandExecutor.getVarPool()); + pythonParameters.dealOutParam(shellCommandExecutor.getVarPool()); } catch (Exception e) { logger.error("python task failure", e); setExitStatusCode(TaskConstants.EXIT_CODE_FAILURE);