From ddbf6dafb774a576afc6139b0fd17bddabd09016 Mon Sep 17 00:00:00 2001 From: mtm Date: Thu, 23 Apr 2026 21:19:37 +0530 Subject: [PATCH 1/6] Adding Customer Custom attributes creating document files --- .../custom-attribute-customer-form.png | Bin 0 -> 105410 bytes .../custom-attribute-customer-grid.png | Bin 0 -> 115414 bytes .../admin/custom-boolean-field-attribute.md | 419 ++++++++++++++++++ .../admin/custom-dropdown-field-attribute.md | 412 +++++++++++++++++ .../custom-multiselect-field-attribute.md | 416 +++++++++++++++++ 5 files changed, 1247 insertions(+) create mode 100644 src/pages/images/tutorials/custom-attribute-customer-form.png create mode 100644 src/pages/images/tutorials/custom-attribute-customer-grid.png create mode 100644 src/pages/tutorials/admin/custom-boolean-field-attribute.md create mode 100644 src/pages/tutorials/admin/custom-dropdown-field-attribute.md create mode 100644 src/pages/tutorials/admin/custom-multiselect-field-attribute.md diff --git a/src/pages/images/tutorials/custom-attribute-customer-form.png b/src/pages/images/tutorials/custom-attribute-customer-form.png new file mode 100644 index 0000000000000000000000000000000000000000..5ec26f631c5cbbe2add0cf6ae204025e36f7903d GIT binary patch literal 105410 zcmeEuXIxX+);A@BD5AnxP!W_SQUwL+Fe<$WNRz6DAieiyz|m0@kZPnVO#wlvQbKT0 z=>)0L5|mB|p(TNY^6ofu=c*Tc?(@E1-Vfva7!K#0eRf-G?X~`^+`Fu&zGv5wU37GG zdo(pJ8q(3R!s+N3%XTt>I~OW{c}+)0f5YLzh09JC)GxR>yLlS9U%O#<(ZS2z`C7nb zDLT4Sk3wQzYu8`i_W@;+o#C^O>)0{Ldl%wkcU7G)J#f)ur}5jF_}ZKoF(1@pPwtS} zgokg!ceT47yelVne&@5esfn?yk!Rxp;`g#n21bvD1{11B&-2K-y1SAYpUc-;ST+kM zXN&R^A3%^itP=|=AK5&qrPIy@O|tPEX7AV( z+&@Wl+-BhFS6(ZDqi$Jw%6v9V|LsWdOw*&2f{)*|xYtQACYW8gV;JWbHRpF|SpQ*J zgrMzH-rH|}FH2x^msS^aY8dENkdTB}mQ{W}0`FEw6qvyKjBMXP9$+q`%T3!HKa-{v zB<4@O8{~_TgH(y0P>Q-eb=+u)(S16Yo-y}2M^+-61z2^+4b2OeS@+P zW|}ZvUAoiYdMDiudUiTSa77RPqoY4Ux8v(I9i0~a(Z8<^=}-Oj4g($CT?abIU+-K6 zziIzszz=Bs*KfwyJ9Nz8FLv;AJA>h0Z?nQP82@$6SO%WasTy6-)C9kcZg|?+xq97n z^FDX+K|Q#^;;v!tMMrm#pY}tqX~;KEN5|0baK+5qOjk$lhMSAnHK^NlJ28J3ciMO8 z6#V7DrHh^SH6DK#XIC#df5nqu-;e{>wADexDW1IP?d>inF7D^&C*~(5=H_WHenwVSR$M|-TvAdLydmlp z;Oc$NU)0r$_s@^~>pK_iyl!|pxO+Rex$@Ayd+oZLkGJB-Qhiw-Veslm{cq|Tm` zR`}Y_e?0p4NdIhV>}BV9!OaD<^j7-!X8qOp+lN0k{Mx7azx$MwlsfxupWi(CrYUU_ za)x$ZZq7cmMKpGG@K%yk5Z~(dkFCuA-Aw7sSV|qpC=v3%5FREVgr=J~W zsd4o}D$n~|JazHTO%=oiADv4PS~4t;w4R*(=$&n7FnqSk$~D`fQmga%XX%^I#IiLb z_(pYq&3vYDq9SW!4Q(%r^63k0Uz%N?ElHnDLH31iS{H@%uB`P^kYP?m_NbMRFzk*B z(bEaP-lC&tfb87Iqw?LwlGaGPk=~2JYHTRAE#KEk1a2pEITY^}_i?}2+6W$;1M2`!cVL32;G9?s5IC3;n!k|O<~{o4(wV?W%NDP|1f z;Ffz2j~C-6X!toYZS%6(9D}eJS>B!T?=k#%0gu|X45NGDTK&@1fv{0L+%w9Bw{AQ6 z{X+lUsKru6AjVE_F8uF1KU~xW@4snJ(MV3lzo%;>g^$rs&n>)fE8A{GAh1(BJE3=O zDd~N;vEP35FyCd#V3F6BYjA#2lFkV(d8NjN&@G7JYa81@hH#af$#LiHUbt1)!N4dL zvJBgpS|N4V>hWzeQHa0+Gmp+pwypP4MR13S*|pzhdM(^u>dB7B>y_(g?rc2>hf>Z@ zrg*_x@FEq|MtSuU+kG4+HiCMC9=g2e+ll_YMvuK1b{`TeU~NwG8lJer(y9rsaawFQ z_z&{`t1%q0Tg2=vV~>kek=oWD{QJw>U5x$`!vamIni1G;z}xjrBfAG0D*GCL=P|yp z?G|p=EttUJ+*>>`9y58#+pxpdy!O}25+?z#@P=R6vkmqCq+cEt+Y~@5A713UZc8dZ z8B*Qv5D5IiPQ!CsZs1S*y+sH2*tL^^GqYV`bcWwzVL4?=+5 z{@LjNe%Jol=>LAL{-oP~IQr-O`=9Ii4@dtG0`o`l{*UPX-=10joYDVF<>a3;`e!QN zR=USO%Gi%$>VG1+f0VK9)YNTg?;mCCKb41{-}!%3#^49kuS7d;y&JY{ENe5SsJwRN z%{7`KoO;0zZ$h(ZY)``vn3z4i`o{fQ*+;dbx;}ZMTMtr#c?XmM5s^BPxTPT^VMI^Q zBXwXo033F$dT2yebA+%M-WXOpTFL|H9!Hc6aa=?A@MPle|sL95|%Ir zK+#TwcmwszC(W(JQR+Uk*Bmc9c5bgxzyri3jG1B_@9Uhfl2sybL+G~L&Z$?oba=St zEOmLe9Z{f?pWrm1eUDPhC?#w@U8V_Ie-jhMWp6wZrK}c`QWRkI-m^Z zLo2Xq8AgqUXmmquA8gBcv>pOL!BTc^S=`orfo<*ZfWr~Wfl_eq;Of!gf`Bc1ecT5y zg9#t9lfssSMx%}ld4Mm4EyEb5SA6{fuV`;gF&U;R`!tGvciD2ZUx^$pE5yUm7%toI z=DH13c;^tHrJ4k(ElKvzJ%GIids5N%1>@ng<$QP~c7cV-ynKau+xgt8^E~ueghRs< z+L|=lg5(|AW(6PU+P;6?Q*eFz8PPMeT(-^A;puUyux~!>ZEYGQe!(+oYorlwCjw?K z$>b-y{rBJtJI^AN4w_<}#Wjw{m~Yb#*`z@OHnv|hcf`vSD7(y)UGK#XmW&INpwU&+Llz1mvu-pPRI z8!lSddUI$bKDU##b?sv^V3on)X#>%%5kY@-0XECnZc|0ZQ0C0Yz0hY(411 z)&RwuH`zwsd?k;^?-?ZFL(-8!+ljBbQxKD5m-uJ4lWktABQ(Uc{ru>InOJSH7oqDo z8&llN3hS~af#fSdK!=n~=Ol}f1%fA}(qDwGw%GKNeMaESVq~fZBV^)`3w ziIFCGm*k(|i%}xgp23Ag#5Ph8KFtCaI4!AU>xHr12^TJW^Ng}i2t&O?aK<3#s&FRc zsy<|%v5C3ez0uJjkNQ0_SMGB8n)zS?CPh6ErpOuNl9M~fTBXnh?Ml>H$C5Vb{103Z z&(-lHQ)OyDIuE-xA=C3v24nWJtoN!9c4#S$Tu?sjJ2=DU_okj*Z^^D<$05th>x9h> zx3W$xVPkoGX;(*E?ff6R^OIexUR=HQ+krf0#VJ)Ex<4FpQ%yov>bVPPN7u|PMz+IM zVuE6+DhzUlOrkiI=m7T`wfVhUGp@HGkS~JO#+l!XpSq!g{^%f#(cYRNSh7oAgTlla zuj(_3eqrshlUJ}Cqzats)4Rt!HOdy7g~=(`;_5nC8jrv7c2zp31ZNFYCUzSMBI}0d zd@CH6+GL8DKM;yr#NyKA??(uxdK+@kd7`MpMa}2J$kkY5<@IU({JV;?*D~L{OL@)< z=O%=btMlDLa2AXNa=Txx7x7JlVxipHd_8ko*El2hN*!}vNxNLW>z6~QmG^Qt9r8#5 zH^lm&!bWcOXgb>`{Q+n4gLCA0oGV!bGN=;m8wH#P@9UW4@#?bFnguJth;aXEYx{n&uZ)IhFz9&<&iEU=CXw zciS+KCiBbs%cTCe2ng`uD}H1PSc<8@{rhg-EiE3 z`DKdxA1p}SV~*5G<;?(MtG!amMw%%18=Mv4>Za%;mER26J7Nf}nAq79>f9mTWt$sR z(`rI(5aDyXGof-aO?O}8bZ)wJn7w|_8@JG<Yee8o!GX%Qd_(;l` zqO+VT2W@iu=i2slE{xuQnJ8{etRm__e6{SyW`ED7b>2H%-+aC^1K2anXR%38pYrjp z^4jMfoXsZ1vF%)6%5qKNF$MCF7mk#pSQJXk$H8Aj43PTKq2*dRkK&n?SKjt`G;qmG zb%70m&r?jyUy;q?RJ}xey(+l@ZYNCr-n!L){;Jnxr9#e3(K5;Z!xpp96 zGWD+FZ~(*+UX!a`34~Ifa8XS$1@9JSVdek%w;n;Ig?p5auuXDUU&P!}btRBr@m=cW zttHmYp;Ww#Afw6vTqIkx%c_?6(#?fIh4kr0^vrwlP>-^=Oh?c5tSv-`71VC76HINW z1ATcA$>l`oURgrTQr=yKu@lI(2Y~sTs&Ug2I|Jx z)pox;F2AAI?OF!yua8Bm#IZo%hCBW`5gkyfc-*{fYo}G6^M12y^;-HxWBSL85+|J(g$qWMh1%zGp}rWaV($2KsFPN24r{D3;P!mT zB>q)B8}Z>}wHV_B;Hch5GJKrsTIONv#Fm+qs{-;pI?cpB8=KS+QoqlEraOxhGN^!G z=``5*gf)t7Yeu;UQ%C2C#G{~P(4MG=JaHXSSOhb0>Wnd5(C&m`g?+qSd%*W8>rf;rI_R!b{$hpEi z*P4Y7j^ND7D|$r0$YU0w#z)&0-NL9A#o$5K}t z)s;F^t}?JSN3FTU1f>-4U49y$>O1g);Aba`sjeAMw8$$89v5yS-<-=0*~_AV1O$(z zzLv|F>_ct%BrJuIO454}64KbG|KwQVSdRw0r-L*!bri;d$S6oh?R zzcZl(t<)B1vPd3G-&oF-Q>j?57`z>K(1n$1DHx|0YFG}o%`w5)z8h=1K#x zP$4p+829dcZ+=lNlCGjRHwH&)O5=8)3v+CNcgqY<1R^He+PA$ zUZO+hyuL~_xtNR)J#+nz&lZ@)M1H1L8*uXVC~qz)_vL1bQVFQA)kgLf)0!^_dT47k z^D#Qq+o$zRgNR3spSpsc(&`vXbxT=ud&&}^jACb!RUwiz(6#}Av08Y}83C4|$d?CC zbQ|fvTr|=O4~Xr_wu%iI-{a_&XR=zhXAIf^4T0D?jeslC(|K3} zlqTUVWnHT{6`Dg_%i6;kpWKfE5;I7DKpeTAOkadhU3(TOmS z(b_+d1kgWHg z(f5U~v5nQVUQV|U0BV0BI(de2CRr~L-Yqlhyl7+JgT2;jHi<#sG->6z` za_8o1s&-Sg2T&~v`Z#VHwzow=gBybs`3bjc`j)t2ocP>%3CN_{61YSzpkBN_z2-#Od9VQf-Sh$qIGVBSm5#<#i_-mqLZ`exx zjDvpA)soZ%Ryo}|buA`$nA$u94s~~AdRwlX?j>nf8lUQisVtCgNp`EP48&Prucmr7 z3$@jfn)j<8Gf-S@(l2~DK)q{@R%v71sR$rJN?ICy4b7qxgcOd2cFG{7-Y4zqTey;qX{Ubj^%$(doN_BGF2eDM#|KUlHT^Mb>!w9(C|DrDld0j$lopY#`a$H#0nKdu9a(1VG?bqv1zKCjM%I6#%)vFB@u3E z|G0mQI*dL~DoanM9o$5^xf;R6wA1{kE<8^RLLnDlK*utrrOa<}!L5m)&g3jOFVr8# zgv^hHf412ew}C26@33qi3<%>pe}W(D2iicD8-wKe&37-RX}Vi#F(}4z@%8UrWDTWs zr58$>j#V$-=FoeN)|8HcxMdv+7<**Qpg~E<1=gI8`& !HS=*koAJO^S!wQhZ&sUiYSmr%R3 zd*h%RjX^n3k>;RN{ParvbbMjrNW6<%K2@y2Q*VRRL^jnbOh~`ha^v{YV@hi55(iJW z_|7aY_x&x?@!0`|977166otDiRl;cXN>_%lfv^VXreEz+>Q_5bHrslFkZnjQ%m2y_ zmaJEM;p~w|&c%%e&6er=Ozl=eT{*kz+^kcm+&YPiT)De73??V^>Q_OFY=iF^BO`(V z0hi}zJT3Lu!$FH-x8$jkc-C8ODg%;n0kDsuAEeR@*1^#)o-6WNVPj=9S+!@?5|-Jn z|AMz97d2}qo-g^Sx&pe7yg?;kA-Be)DnmJcPren-I^TM$V>+>VXk3g)w-GGH7!v1_ zWi`M^@j}LGW~5-1WN--c>Uh$F!G6EdhcYJ2$NgSOM8^c)N-k}*}o;w)7GG_@J1Fy`4$YFkF5ymT*m`I~Ym5YK)U;n=i~0tunq?GiL5U4vT6S zQQjC;enJ=XCBBs*n@{B_gexJ$u0Pq12gO)DSLLLbAu|~-!e}?|y*lJ<4Li8T+9^iQ z!aa$6nx#0uE6X3Nz;u=RY?WYt7VRixpW>lL1e{die6^h& z?tAAB1Rfuo5l-7;B8)=8ZmwgK>0)Mee6t`@@sm7QV@r5zJ0gP_9qR4k_%)p`j*3yUxTKo55_TQcLY37wMr}aAt@WGEJp2 z9z*s)da-R9rA6+D9PDrw_tbVMxA$M`sE;zUte=lmBn?yyI7bdLW;cX{)nm7VhiwaK z(3q3rMCf-$w=HIu0`Y~u%Rm}kL~BMWXXRZ{q?E2b-7?LZ4wPPRwY7p3ib*}+n5*z>y6dLB$TD%+ULDR%85Ktp`4Pj=bo}UWBsrpIQU~uk#uUK$~!3Q zsRm}Nu;O*R>PsY}f>%-Y?3>Xj<8U>aA|7Ze5~wY!>@pm@)FybW-L?x-oyB)kAi`8z zUJsyT0=u=seF6zLe!Zl4l#}&H-}RVVh#_@YxxN((tLDM`u?gA13YZ^{acq6ob&T1l5>hM_vm*+6#H)w|w;+o>5eVsdu8_l{BP^bh( z-zSC7#oN7dNXsPgbbF?H^e0f%U+Z9%KC|dQPj6C44)}l~l@*;+RXd}bJQ}}oN{=O~ zX?7_as^Wu+?O$3d2pi+&et~N%iOYy(eG)n}dfYTD3(7e~UhRJ)&dK>D5&MGmj-J5X zHK>HIP-dteM+Qg9n(NqbEHT!HkC3q@md$rlFeK4=-*g4!ZoCQ{63Z8HOEL)3Yi^%9 z0UMx)(?CXn8b4E@norae$MQUcRA-MV1`>NrlP>UD6jn|=F_zTL;w$N~6!Fkf(UsTM z!^j5ojl01wu*qgst$c~J?=G#8($;jJ%!t+D%Pv(mA|=>`;|C@a*XhA?#ZZACmPN(1`WpuuKzGTc(a@GFetRcY4Is!SIwMHQF2V%b(;BS zze8LV!f~40GjqKk!}*?LDmK=uS>(%tc9Y5|X&t79FHVI&!uPinf#sFE$)B#>(RA%D zmkF9J9UotfU7s^%dY2RnpR7*=@~N*aqu&&0Te`jvyI<1~UKU#i`yEX>%K--sW5;<^ zcjDiElAEY&RqGYauxmw`W#JG4^z*42n z+LuGXiv8dq^ZD0EY4)3E`t?2L)-B7m2N!h`i-At4f761*4UTG`uz0WHA(x8bJjj(?RxUU?oy%`^>KLSHdo}?~vUD0Am5g9ZR1#*Nu z5f4F@w*cf3<4oFc={|P&m1NvxUq#fLfLa3*es57d0dw} zXH)8h$5T-vi7YdpoDC!zukcSQ_!0&g)e_%_==vx}ZR4pOI%wwMimj~{{GJk*v_}Ha zLDoL$)S=wtQ#LRSbOCj>Nu|YJX$jGjd7Sv1g)xoyY$_s0Uv4@J#zZ99&Yets`y^=g zwK~9hT3P3gx|ABECOq?#un!vf+?7Tu<)3?fCH}@_T99jhN^h|ul}uA*VZHOLYNFP( zGttOC{CundKR>68miv3)Jm^U2l9yOKid|9jnx*MkB^c|bjNWB+7<2k*mE848=r2P2 zjP7@Z5dGEhlR%wfw33n_0$bCM3ljT)iCdiP>^ysXb!{>0^{ z*j0Q8e~U_5pEZgUFnU!P9Fn*PoDnly9h~|k$6IcH@R4eh) zSx@`QS!Q28e?mqCTVC2y%H)+*j81tDyGo3XEX!$U<_xy3EJ##5Pb5T5&sZ85(Uj_G z;GsC`Kl9`O~q^unu$FM`51c}p&P7@5-Z3nVDp#xKGYiDxs zkZ{Y;+3YxWy+%689O{${IZI}Y=X*%#U%+dt13-+ts;EQXyOCSf;gA5nm=or_O5hAW z7cnd~r5N#wdt?5tshfZO(V4gR-sfUZxS>Lvi<-WT{`fkjXRb1LGq)Rbf) zXNr=s5L^nFVLcsiMm&8Nk~~mrUCamI>%A`+??|2}(;%YTIwIpkD-}}d@$2RSjk)ox z19;QLe#uXzG9A}be34{BO0i#9f4i65bJioyL+ydFwn?gb4q-xg?2F2^4Nr7r&`+_H3(-vI)A@-d zDjATyVO`^@FF;~d)M<4mv;Ym$^Lfj^AUfJV}x?lpN;tM^u4eM$AD2bWF{mgSqzhNH^ zwmnPE@egb{l+M3b3rB0k+?0F{M5+1U+aeShxO&1MMV9$DDS8LyZ z9CD6)nRj8Y{IkHm*A2@(noKdehwK{hiS=5vLL^ zA^Ax{+0@eGlHw~uN&338ZVddMc*wMNKF!$F&ACGwp(5HdYBwl2eJ#bCw!thHH6<KvzRMZq53lO8W$zB5sTx(y+DStV_!;!x{vHB`wlicvS%K zvXE9UubFt_BmhPFFGSi{;*n$wk^C$5WK+iFV(l{W-s-g3{m6*TyX&*X=Lt>vp`KjF z0)ShpFG)M*tps7s(~Wjan!k(~dh(E7*hAmJK9tkl5j%{x=k1q>ec^b_u433XKT2-q zdDRR%q_e%sK+;)fasVG>^JG#EF5fhgNW<6r-lmQFJx?tYeS4CHL1>bHJ`>t{Bz`?# zDIjX2D|!D7b7#TE8_`J8%UaKwNx|oK*c+swTug3^wAKUknfAaF&l zC-unpNjgggJP}1S7nBL&DJA9t+lvxCXwD2o3AkFc2)13<7(|(NIO<3r^$U4TzqvN8 zAC?zg%6yk3e~wd_z4bDzch0XJO7#VZ^2Gdahpf%^{vw7@WS{?N5zED^$|E$H>SvuG z!q0!0w;@oQv*5{k{rQQSCdu3}f30d{*BPxS4RF z>y7!F#aqk@8K*%2Mc4%$pK6wOTJ9H82F!0!LV!i*sn>M%BcY~=R2FeA3{ZuR@63a! zam6H5K094(It@pn0C)7&J_KE2b`w;(Ymx#^G@Gs*2%L}is!-DrQ!RO;PkTe>Bjj*b zWD`gF3lrFflI$=G`0;04JMm#{4BiEj{|Pd&VO}wfb)qg(UV9alYcNHkGyf zTc01^Mz%AX7T7jlryl~|rczXxoNIw2tdLE9_EnWjlBK7nqS=|FQmGDsznE3trO6m0 zwzM|ZX}f)MotA!)qUATkHLkn&+a;arS#EK62S7MVR{5dRw`YE=YZmD}S z`1&jnojvL8Ffb`4b!Y{63$BFBM{qlzmizKM?-OEyGjQ&<`AXXGx2SSX4Ig{_xj8#& z16zlOnoXI~;3(3d6+svsARX)Ca9PtLsl0SBm==!F#d0L2{hX1X5KFsAcF1~DxcTvg z-_^Sjg0VYJy>$bIq|1xze@G(EHv4UKGQs)k&X87*E37YfHGdrdg&xQa5er&tQ|oS`?ePxUcL7>P1mlrh~newshzF&07dWcBph zr(10zFGsn6xDUHBsTTGjnVaU!fg+Ch^HG9Rql-7(!jg^!e!>%8V{i|aC_aJ$`z~%1 zvZJ@Vpkun%;n?>({MeoW&-oPSN&`7WV0gSrf54Che3_SEBt2OGT;@T-*8VUB3DP+nD^=qv&90h+eVu zS6Fp*-K04K7uvvtcVfQ6m;bAqX3Q50ETtDS+(tU$RA9h-0Hz)eajP6poG>$QswLM< zD%yDsv=DnOidJ=)mh>xzyt{OLm?E2$`~Y07zq8T7{?Sc)Eeh!P%&RBBsfCpFU0Y}% zmubv51YxO|i5fwL&n#^eZ&NmizNWqyaXsf7;C|GhqQ-==JFRl4T2z-;%di= zihkL5&8O0ER=)k&wT8uyLqH@_Q6D$;Q-j!kzJ$7zc*s~&&w(u?6g*DUHEqZD+xjoX&-*e6 z%VCx`j{8nZ+ivVCjSvPQM+r>N{Boudthby`r%q@EsSu!y>f$x?e>n8kj7`fEYP^tA zCE@nHxOi4?=j3krLz{8trACssidpl9!7)i~e}zeVv9{Z0<&Q5%)JjhIBq6%)z96dZ z4ZQ3HGNMy^3&@24;Rw6Q6q4g&M+YSYj1Gz6Th6Ju$h1?B8xKphNlN5V&5jdW0n-Mo zwBB_Jr4C{X7vtVe(iSG~MwDz$;OE^oW{NWg(RoV1GLV6=K>VAH(mI_hOto_IXXR&} zXXbr{d&Bc%eRvVRvFp=b=~PRf#uIn1hzB%j4{&oihJeTyw|453y7E=5Q@8-TSqx5L zloS12tZM4nL`tae-k?wQGs7(G3LsbjM@WG1jZse_j&zpSj3$*kmwr@hQ>U3$RqaqX zWhs4g2-q#|=0&c_YLrff?hwb?V?r&6tjTNtj*p#%0tPTeA_zSYB>yV`GD3v+wf{g@S}(M>d4Ysw$xgeL zL~};v(R}a3X&XvsQXb9a8j4|GdrYlfTWrB?C@ePe;#xT?vDrea^3P;&4L}56=I`q1 zOhhR4RfY=jpD%+113fqq^|08QQUPg$*(7PL%2$ll-z-05-w6IEQ`LX`U>RiO_0Nt7!V-x15-0Eq3gy89e5EVRO~{+fcS}B&F+>mPK0}6EG^psL5fk@e+x=GeTo;pgBG-q4`2>oTQ7FL81fe< z>!l}@)TFu!)wgc6c)GekCa%UHWyTpG=7$1f)`YDW?(^&E?z1XBvZre9>D}W45bjW# zzPi|D;XCZpcN!jm*D*#;vJSKp48ytD-#n_jbEsxyN85{{z@Gd(LFLt^HWE~LH7Eo6 z5X7xA@O23y$7xm)*GTMolVfMQb7y--EYIUoDODZ^Ck91If+FctX5gGx`XHgBg9@+^ z`73TggM)dzQRkll*TyOoJ*30bG#NSw*XI9ZHPqPVuYC2j~U0 zIOe}JvDc!``Jo1n1&%Ose=6{E$X?r%Y_}@!Tq|1Loj&mE-^B3Uh4!vSNO9IZ#qU)> z+g=uEhCR%uou{d_GnGC#$;#JUks46EI~c@S7TP1l80Dml{F&~Tx9HeEaqTNRivuoI zSK@N6GIHZ4Ocl-3$$D_T#b(10y=x;3yfHkN4VwEnWVHa@tRe#neb zJ`IK+?-okpEVV3-h5C|MA1mStO7dt?i9}XhrCK-?v+_Yk+J~QRj26v+OjU^i25M0n zehqj-LF}8W5=zAMgG1k7RI9IYKN>`bATiMoLV|uV zXZjEtccZG#GElGKqJ((9mB;%HuYKbIjXXr4_gA+MJgTb-uFyS5XGq7v<<1PXJ0dAU^cz#kj>w20RozE&V1um z7^M^Rh}F3uAWW@kR7-psN;V)7ms(y!{wQTsY&l06)|WL&WQo=3eW25AJt9W0$MEcf|ZvOeZ$K7 zg3!W)P0|S>QsRLhBPrJ6ljHId*n9QerZae}53lfj;y5*ey#TH&MLrH#9c*}&K5&wT z*izYJEVMTCnz7neBK(c^wc^#EDh4ioM^%4QQ^oG(O_aO$4^jzkE)*kjd=*guy=(&; zpW|Yc>q6uRR!_WYU;}Ex*Kps#n7YK!l5jzPe)tIxwDk5>4@ps+@uc?11xYce?HrV! zkynZuBowztt)1=@tE3`uh2gq_?0*&afg)xPbqR5rCHGHCIR(Nb(FKc0en$JjaS&E% znNarxlE$|$3p-1cRhGhY`*a)dq8B@BlV0>TIDpgWk^1p|jOBGjMtBfocH()5ck*hF z>}=mvlxE@jS|Aj|m^R%%r>7(e-K(tv@D7e@=F?-Gzei^1RmfFjS{2**ky~=F zCV;w@AHmNt6zj!IG=94@~XYJrt&)_JZ{ewq4eZ-Nf)`L zR;k>jM=Xc|rVw|BbQ}o9AY7%0C|ik3!bPS64>@sfsme?s>o#>mqzOWF->2lj`-NYD z5XWwF6-j@u%bKKUR)$vAX<3vFqKW3{zs7WTVkmUdZXXP0psyB35*Yy2hA`UygVYRX zI|0Pu*qipa9bBf=?c3zbR}-pl?Hp#?=?|<1h3S!QR!4qR7TVP~Kz?g)JT?8LFd}1O{bVC$CG#O_qkFoySmtCaU17;xXFCXA;#cZA}RIj|c@M{*uAj;abN#xN;rSJTQSLx`0$|POs{;c-E z;!+HYm)z{RMX%v>AQRp{UPVVoxY;pR-R(e=$dfBz#Z9rMzXMc(!?gdu@cdESpSyz%6v( zdvg7Ywrx#z6`U6)H0%DTO)>6ZUw)Ks5Z`(>HGSNeedSD2gz|k0rb93$%G!e}zFRkn zStZsBllnh5oWTX7oZ7sx=kc&Wx6!rWCP|5Qr&dzcBpCFd=ggZFKJ(<|5d zA$I?}t(pL706Ipln=<#554w@X4z+j_SH4V`Z#lVJD$F|o{`bo0+`aF<@%MIv3kmKW zPgr>(k7Aw4u$|K@3#*^V1K<1F{u2N2)srCctaiC{8?2GmgPfRzM9H7QwSG0p=c2dl zb?GW_>DA1IKK#MK^7kD{#+HFq{A7}j%!}9 z)0i{-X6e2mgjWw}v;Qz6wvBI<)=J{|*TlS;Wc-dM#?EGtwKN);Y_GcYl5+jB57PNo zuZM5z+zQ%a1^;pr)NFDME*Vay2T6XDH?U4pTdwUyBuL9z?d%%ZCOZ)fZt6{4T`M;d zp(0m1yx`iauw}2UPQatGR7E|Pw)N(KId*XUJHbz0F^_-i)#?xiS%;?Yq_-UHSB|Mm zp%qJdn=&gSvklGFgS0MAOfzEZ9=>jMi5aM)H3;({yg9e!eD)pw4J?eosl147=c8g< zxmzcZg-=#;qGe$mv)^^=-GY1&c=hFzqsf`=XG90LJ0)Q(5HnLgC}qbgS0vn!bfQxG zM^X6aZ0aNdA3!-Hs(%2kz9r>4f5;OZ?#O(%@6Z8JcC9VRf zP`;6#tX-ZF7mycqDf>0*K!Px*&O}kGz9{I^WZuh8z3vkEqwDvaXgWEOxQz*%a0FJ0n&3E|sME)Go&zpUH zN5zlkdCCN<5Z^zW{NFD7Kb!pR(Z4lGeRG)q!^!_Emi&j4|3kR_Z2kTb*Z(5}e#@=@ zoXP*Kl>hU%{pU>n?-ZZEl#_oHuWt^%Z~1O(CjCe8`l(X;qul>T@%o=h>Kpp|NAdcR zfPPAC|9>l9@J%!(b@P-zn>gAu!Da8l`&>jp3W1tH%~mId!eCmlI2BMEsK<2d%Ke0BwrB0Xt8io zw%@3?pll))fei5PmD$>P0zfS}U}9Famw5~P-&oa$Kozmh-^2@zwlB5y4e9i#*r6uJ(WH@DeZ&edb3Stb>3b#Vw}vatoQow^5%nX2W|JvCgC}v%Y&JI>a0Z!O^ZR*AGNQ|ukE)(9642L) z6L_G%G}+d|X63d{?AmZUf67G;deh>G;Wm!1uhgMZ4WKp$vbOCub?*Eb(0Yi+b6j4g z(y#a(RG%Qdou8DmA;_5*R#`>F_yx zhj~zD`LLcz%#%jPpMYW+20%U>;eW}!rH1Xz4&NDnm^{VXe{)jgXgW*`sVu4;iBqDe zD*Eb1R1p%1CB)}0ovzh{)IidVaaU-Ph;_>GfR&8{2-UQv0WJman{rbz^^OB~KWxnp zf6{NaHh{8_&@%1s$@wp4);l#n^@+L5C_1`DO(|qraZl66{?t8lukDX~3Yjdx((({t z{mR8m`D+~Js>cIIFwW>Y)rijIy^1wjqRBt&*INW|Iu|bR@YZ$x2Xr%1=*KFvE3#Kx za-^Xmn+#zOp{k9b8^o3ZHVHu)ne|%;C`~kwxT<#ipCe%wst_l#dzjt zadDn7f-ZV6iM7~saiK9{TwRIEUUqVpJoskZmx9vM0R}(Y{a+Jr- zr+dFkB>jP8ym!*J^o!(S$oIjl(JMKn6g2_ zzU&@O$*j;+r^-w4Hv;;~>&vHos{9CP6e2E(R;OsTC~R{hzkB-T(L`~Zw8A%E?mL^E z2?f#T50A=->82^jz9$Ba9>sq8C}tkF(3&bQ69U4W^gwYJM>$YBs;lGag~;_n7uAn; zhtg6dg>=(Nzg~?!n1#?LxP1zsi9;f;{L;*DuKs`v8F{qV&5P^(;T+_A@YOfAs)18) zgSw6f6|!D-DBO7BoURz;OB&wSz;;wxaLR$n;(hT3yWJMfFQnu{Jx+ps5gk@%wD;2L|6jW`q&#(rF&W4^+sBq z%jZg9iv=cD`jc%$Pp|3I^&KbOzknPRJ)<0*CZ?q%)LQlhX3JqvDM@Iv@C~TU(+MhL z^=PN)eIzJ6XJ`)A&nofK{!JHV+r zvmdeu!ZhSVW^Zt}+<67uGPxiKUY0oZF|+c7-5@PDHv6dSn-dlrAT>>FXVxWA`R&QV z$|fVIPx+Gl4>j0&Md5ZWiP@l(6JN*|j`ULkK9dZL%xpRfree_wiyB8HY*hk`szt@k zi}`4Q#?!P+zlt;7@1jPJTzb{0DVQ1$5>h_xzk5^X0K<)jC{YHL>wUB|GJ{OY%*w)O z7bvu{;C$Vmctp4Y144|=k@q+R%dfobp`MhwY|XUyc#61hBYL-ZjYQBvxv>$s&l%SK zp^i_MI#Hd^&dRizldjaaXV{Rhz3{7mzrfztkw6Vy+Gp^9|3j(wbmuZ!o!i=q zC{2hKIZjL7Dj5~feG*>?a`_Gp`h$q&NV*shVkXb!*?2;q$(M>-Hnh=V$o}< z?~1^}eRM`Z)~Rb12p@?oQ35g8oeK@z>1q#;7(;?YtZU9IQl>KBUtD^`tA3C;==B+t zeA5P`u0Mkb84hxL4|2c~eF5P-P!7LFJHTP+wA49}uImkI80Pv1t-bLW?F8X@DeWK^ zj8vmTas921HVc8W!dlAAGOgxM8QB*)>Ob}LZYMqSv5v8o=7h#w`-l^5$)=S~4|_p+ zK;Lo%_Zklp#3>2YO369i<9SZ2vzWfWU9GR_rVN|@7Qe7i$Zg(}JSCOc*UcCpM$Hx8fO!&T*(e{SYkp$D3 z*bt#w>?RJiA&grDyQM>`e%3sEsAVB}gN)i#v`_{)7KRX~A8HeQFO{JT9(%u67~x_k zUj?r&dV@ryL-tDubg%#y$XtCN=yZq{4NsHKrJ(9gHb_s%@2@|p{k}_IITeq+5v`b4 z`+f~137X#596Up>l*r6_IA({8Gnlx;^3-M!HRyq&K-pwJM~;4aTJu}B;VK_(>THRA zPt)|7UKS1kXxO6zCyJk3?2UU_fvIv_KkN?eIV|t%Jkwud-|Om}e9p<_z7C(hBJs)* z1%G#1EPJQ)pmSW$y>){`F{>x3UQmO3_o_iTuuHzjK?u-j^DZBX9~EDrPm6F49DAhR z882ki8NOq;VY*UC9_b)cWdq>vm~v2bYgXZl*Gl_?J4zgg_kUg z-f*iuIBZa8;v+kwyzq`gs9kg}?o|EVz3AfS?}*P$p3RLl#dX!e8I8=;?%m)HTU&5G z=27HU)?+g5Qxs%%M9%wWnZQ6P9+Vz(GEl~>aFcz9Hv6oDTn0eEWn{?sZt|xAcCX=m}t`5nZdu*h;3Kk%ICXM^))ZsWUw{v1-_U^n!Mo#Uxs++N5P5EKD%Up za^M~{AoHPgbF%XyCt4@o)I=wWTRAj15X8J2K@Z+{+Sm6=7S$*b%k2J+cw7>y5$D?? z?4joo-EeVrk$my-MU#}8cogq-3y7`@sQtD&_r=R)uHxAvu__6#52drM*5*pQqUIY~ z_3g!OJUEMx>Xgz~Hb`>jdBiyd%DFbBVR!ZhgYu$r z6f(hv^-Sm?)WSozUvRnUp@FY0tshI->yZ>1q`1%?3Q`M-6;-S@3r7#C3UuY@wuGX; zAfmCg=cPB(M94P~KRGE!LCvk{^L>A4e6K*(U1fO(=>SR8VotmQX565@iBmU*7ANiv z3ZLXW_6`L>g69T5fOzmYQ0g?rc@xCZrtUa0mT+UyQO6OK*%DsV%@6)?coP&L5^OPK zkF&WE?q_}d|FHL-QBh^<8ZIIVwh>SeK|rD;5fPA#N|1~op@<3vNS2&I&{lHJSww;) zEuhF0DmhEeg+PI1iA7Nq+`0PPy^r>h-uLevWB=$e95z_1)|zY1FTC&b;UM_g=D_kM zu&Z~ntcFWVS@r4exat%Fht-kD7A29naLmY9~2~IGABLtXNDQ{=(RGjaUIP zpJXNU7!}e1kK6({j%|ShUbnVvWU$(GZTbh9Zmt$nz#N21Kyp>5ee(vWTdj$7y8;*iikz5;Cn4wGm{jPn1m2<>){VuVXigIjgFT- zT?390YOPa`+;&FH`$#2z__2MWTR+oeWN3U3+sdB)*Gb@|vE%+#hFSo2I7KR%K-18) zU&H)-5paPlsHDidO)I6V`MNgv*8yvh_o`FRU5sU;!}#m3wkdLD6ohmzkPn7@vvH8{ zG)>a++aVBP7uQs`I_Q5Pa|xVZOh)gUA=gBKMS!#0W75#)S%07s8wQb$)vF9GsuAp_mg3@#p4wIM@4xP%WEY+WNRi0Tva$si1F#X!@{6R&w6ib~3tMs1>@s99 zx~vE%4O~9`aC&7XQaKAKkq?6db20U=-Aa6wcEeA7a1YD~&!zUGeaNKO;Je@Kn+2>s z{Ke|q{A~M&0DjrJ(+J-sV9_Wt!NBtO=}^c6%pDxWQkjH=M@ACy3FC)=Bba50FB`t& zx;oCSC|`PMe&nrOxMosl;5LRRqJ>D^{YFljhh^{#SX%jK3QDiBaW&7*)JVHTLlXK5 zGf3?$0ya)W2Zej;KL4$5X|~XshO!_}&e4{3AajmoV$7?&WjkK61(>^;WJG~P0c1fO zC_c%_4qtHG3k)?_mN$D-)7;9W1Gedr`ERco(!84_BUj!cxb=|Skm?;4p-{(*h?~Xw zdd*?=xSPv56+>$EdHq#56~(N`)zr@swT|U#p*D6m_8=@F6A??(0Q_F`QGG;Rjb6K^rpp&3wo5RJ6+V4dn`t&NiT<)tn5^TBnk=8Zq zY-d->c~UVZ$tb33^;!iIt2xvQa<5Ax!kN;8c@T_PrhHxW5sZnkfQ|?O)=&2Fb9XX! zB|_2PcF%?=iDM{G$>0W(IfOjVpKv`yNyWFs^e1&FVO;(x`MRx=VLnsUOZm5WUrp5y zY=u=%eVVVja>vouUO09I4IB*!Tju0?UqF)0IUwMvzvz@ceOLv6yCtnf0LI}!{0u%F zumL2b26V6d_Z{$fXJa#Asa7(@R66T9=p(&W9i6e zA<2f2dv>peAf^zq?tl753-KSu#NLxyaLIu3eAlHxo_wJvpI=&k_Js2UNJWJM{xFAR zPQksi2Z2jhXwES)vMQMFycni}@c{chs=;^%xtp-eKktMUDB;v`ZeoQP%MaZL?@noIXf~)w!aJPu}OjxPJPzipZrfG9zs-roPYtX zA$#l1dGG6GKZYHlEm)1j>X~{PIC~%L#~wQe zifT6BIf{mCFm|7xA3J_!)J{*Ny;+M!`fHq^mbQ?8GSjBAkFVU#C-B%HsZ#l9Hq+P5 z2W{wB5V|nqQ-l8?-z7iB9BIG>teG`YCtgeU=)-pd>kGoYW|>FocEbYE4c8&+atXR} zU(93-fJ&2?+OHkn!?Xd?_EPj7>cBBZG-0=aXRxW5=Mt|C*pd8$s3h~l| zZvpTG2vvc7Yc6?o3kS|HDjF#!(R(CTG57$YP{_5}NZV`D>mh9NpsXu1RE&sar}?rf z1Z>hYQTM4S6F*NBnEF;WRDnI^*}aE$i~V_x4tmse;M_Ea$xVl@tyAB%5CRP^ zG2kNwWuL2%n9e5B`2ZT?J66TG+ZLSTU#=7X*%lr5R-Hs#=49k`a&F2*jU+Cd4f7dzL>D$t`Q<11h1KmU0eVH?lw`|iyIR*CDy#@^P#SdY(G zFH8c7X^$_%d=MN8%_snXTn^Dyz&Mwos)#f{7C03S0jK4YG2GWa0z=554>=LVCH&4x zGBj6(>Dlb()4beus_loV7YJHD@v_f!NLn#yZDkSUKRxLuknAo&@d@Lv1&7BgB!-~$ zQ{d;O=qr5PctzI+|MknOvs~wbgd$LY4b|wuLk02{joXxoLTz_x8pAG~e$C+H#&_xv zLTap8BD_E>O%-k0F8Y}-J%M(N`S^n}^&)=ny)8>k-7=nAQ4O@in<$-dqPUtAXve-O zSC{51D;NdEWqP4f0ilAU*Ui`9y%0ZTEz$_Jn z(P>#RsZ8Nv8KiwUErAB5j-jf2w;OIfBv5P?(*2iUf2gu?CJtAnRqH|0n!$Of+U&8PcH=uHCm9-@199_%iraqDk~AOAz1 zn$ZUZwYTHjq<*cHNVO9~_-3tZY+g5v4Ci6_JZD(h((3>LyTwwP@xIb4)NGWZI_~T& z4_)1;LF6eGUck&Xud8S?C%FU>{6=eLcpOp=dhTOx7Ooaq?rOQ2eV0K3u@c2#eicXgts;KuVQ5Lqinv#Y8AytHKBm-CV-ZFgyTOfxQv zdpJ!ta;C3q5o)Bh!jW;n0g4^DX5R@}uY`of(z+qz)d-S|7?$k$PX0@wJ_qTW(v67s z0}x+=ia#*sxWyn#vciDMSj9(rtRC&_3=u!UQ_^gi`&drNo5a{KK;ZN$+wFL9V0_%yfJAVlV1TQ~$r^3KV7kT>#rqmhz-czLv(tpD6C zw*p&k9DK0l!3AHQScfTD_`V|Cwfdhv};Wr_CrhlaN5 zd6&2%E#MG8S6JfGD(a$=MKWh6#fkSFuaksgT(>GzVmw1ArvbjBE zZq2KzdjLWKwEBQCdU>QI7~^%#Uk);Hn^C6ewe3U>74HZ??a8oAF0rw4BtR+s*7vvJ zW-HPs;~{Z%tPj(5PF`rZKqQU@t<~L4&Me!Xg&UYKF-4cPhLi}tC>$Ul1x>zlH}5PD z@XH8Bv~+xJv1a_Ly;TWcpMC@%|Ni(XAF{y7s-u2d^Z-=6I7RSaoP*A`YYrWm`==As z7q|6v6F@fq5f7p|j~zT64T9;%D%j#W4w%%I0k!=Zl~RQu`cD}-s(%W@!R(_f+tMq4 zn^qipX&Ah8y}-|y>U_m+s+<2oztzRauWu@Q^R6P)7?MoZ(sHiQTA-E3xg*42|0h%?NO? z=&XeahD#-YDHmKaQ__{vQ+-r=){)aSOcC$s;17$m4e6oMW|>(#;6LAwMnW4T+fpnS zVEsAYe<5Y*Jc(IScUSpnSVubFm8w^$Fi~E(LeRnz{Ilo2%-V$NF4T0xJLFqeqdysqo$7@M$VkwYH z$8SM}Mu3(!RGy4F1lc18G<=}YqG-;UX{i(Zb#fVP_mhyq$_)T7H~qv({$XP_S~Yv6 z99>uW{;Go~j{d!1z1Rb;o!DZ}vZ?{3Ouee<1-UX09vd!fH5*n>(Z;pRo3OVH^&%CQ zoN0S{7$aobwRdRz?h#0xIv69w0yzBHu4saYp=7kE?Ncj(^TNyrCj{$^Lm_0ab1-J zbICb?jU@nrcV!OWYWGqGziT!;m{XJa$r1D; z*EZD8d9;)}XLs9P%MY3S7Yksb>e81~Nnf9jHK0^V)gE~)`yIunJMJ8$X9qGvYbGqy zG4(O6(d^p!z0*iCsvwGEQUEM^UY(>t`c;erN4lQ7Cv%(~im+q7;j{$}{m60b7B3$` zwS13?Z(F{G+X>qjHfai>daZq6co|gK2C9Ood5fyV1>;^kNGdE%x@zT#D$K^+DD(Uh zN@_OWS3Q>TDs3pgUE9pbW8vKZDW#y(<9A&fAGep#sM0b5HS=+GLpGI^1m2=`^L?rm zP-IyE$%CiJ@`o=7muajp!tI|bs7EjH3wIeI(w>XH($qfagiOu}PCwsBM$LC5YLtb# z>G{_1)D)TmnvD`vr?DRfl0DC{Li`~aYszwK%(d$?85g!J$^e*X{ zoZ*Wbj3fJ_h5!CCnBJ1-%TI}DmngKU*4p0SX8dYMKijWA7TL;z@&TI#K*?lUg5dxh zmoxS4Y+lp`b?H@Jpiu&q+ezz{mX@e^vV%6ov`_4VdLjp(NEtfL=k1LoIT|J73oUaD z+-5TFa=mETbHSsm#Y68*oM_iRN#2z-;-L1Bxv5v50XO{W%t%2c=L*8RA%I*475V8c z4?3sOPm_v?xnH|(Bi6V(OFlZt^z^Um^p_3fD%6#3uA-Oy6=g*-s4xX~Gp;ZcXp8hg zGlXv2P1YFeSy8opItJwEI|Gb76>E|7{JncFl%D>0z*7o44kT=H$7}sesq?9@k@EuyHOmdAO@P`V=?p z+(B8wSfIwsMc8n6K5<9-!h>#GZ(5h^Vs5>}vZp&ij1ebJ8(Qd~3RkW-T{HPPB zW{~FBl1Of`RL!;h7!4H;5ga&2QUO8Mi~x{t0h|Sf z4<)Hwz)dnHKoP^DEYdH*OVWK~);bClF4GPA^YjBmpl){6l>cdUr9XVv8>vg=34H5N zpsoafo%4v+HG6&fnuu~f%l=$1K5tN9RR+jIB_w^~-HpI}zPsB{e2;8q*?Su1wPw9O)QB=hN<_tG9C@Xr#-*Ab8p6XI{&X7@i9$@w zD&u(j+RXwE+<}Le?2aFZW7)+4DGP>LU;gt;v&7EF%xX*QFhGqqSsy}edME~kcFQ^n3p!~8v73n?+1&v9H{25d`U0=dE;V$$oSw?$f6OR6d7)X0~#2 z+%(PukmM0l5pHa%cfP%>vE1oswDa;JmHbhEoa2_6OvD4P^d{FI5T#{WSY+z?@t_&* zzlZHVZ6{9LerZ>&?)-iCAS)=W2h^JcWfn;=h6&L+z;~@Q<;R{7iWZgrp|Y*k$t2;6LY z@kdg1v2m|&nPbtQPa#s~@gtHV=~F0ZERUu#m_OFEU}NX0w+A>bQB3>_Bq}mQ+A(fL zOj1k=Bx^DJCemt}F#sxY6AJlY5o$WJQp)=>fgxOlmGOu+s~_D^qZxusLv0l^-+`on zj1)^MP@w6{1S3kWju>IqL4&Dbi)`+_784m~0rPW~TVv8a8irtu6>k;*NU`Y|B;$GP z>Q!FnCCvFq|}V zMbmuv!;_J>q%#_tDm+?&a{S3l83o&wcY{6_g^{F3ymh!#5XyT@Zq0ntF=uN=bomK%7i z8}1_@J}M~>6dJOF^94vfZ;_&a(YKj`Vp=;JGLHZ1EWX|EJb6DkWgBzuV{j0)=U+^} z|LTl9`I*gpBLZh5e58$nhI&KYu&W%Cj*-~3iA~3dn7(fF06GqB->G`P5!_XPG+6-S zkGeZfp1G`6n70MG0>S`0f@=3a&B@i^EC!mry-;fVNcdWXemRwmw5Msb1Kz$^rYQh| zGjVhk>I#DxzYn6gvsE))XSp@>sG4_Lq8bzsASForbd_A*GRiAd?+-H0Aue7a8YK%> z;yW81wB+^uaTG(hc_X)3c_GjYVxHNkTaqii5t=gvn+x&sJ*Wh9(D~pzuX8-9u5@Ze zdWJWyc-maMbz1sW5?NC&cjQM5csJ##TGT6f2VbANnslPG0jpseXhnPMCV4%gncfp# z%~fn-9b&USu5CshDQ*?eI6E4qq%sOv!Y8t_Lco- z`(f-{am)0rC;J*_mt38%HtHBF*%z%!_=}y>}4X2|w3tJ^9&_kfaj7C`N3=rdu z#mJw+x_T(lk>oeEyLL6{v0#o!?1?L2IFzIT23x7$ee2f)>Ss-<6#fqcl^1# zYd>u$&>EAfJrT#F7YDVsm36}FgF(t@8vR3$|LYd$&3A;Y^yR2RDj-hEWxXr-c3xCU zn(qM)(u!PcK2I-pM}WFP&6fSZwXpzJf(RkvyY?3&ZN1{V`Dm%d$Z)1D<|WQyZ0Yj` zXkjC)AlhF?P35W2JTNG?91ZsdeficVnjukyiS*+KrjOMsLvyLICh(vDPa$Hj4f#Hd zhrtu~)+p8y@vB%DF;PC@>RT<>y7-IM`|~t3;H(R1lyA_P%RDFS`+M2yw4qp}V6B3x z5GT=!Hv;Vl!PU#YB+o&!2pRVwP)W{ymE4O8&C3&uoV4R98vqa=ATF(P?MSr%2`Af) zx*I@?Nb3-EyeeEN8GGmEwxNAEiV*Nty*o%M?bVsg{?@2V*xq!zDhVF_^{XP5V=KM% zo~wGJV;`xFK#aaD%6uphx<+tN)4_b7aSvDv+x1=@E4QPPE@$h0Vp{!AGP6ZqP#8F9 z^7#3&{kwrD^_r?;bLTKVTh;SgCrnU6*+?Y&iOB?FUQZomtCt1o+jd6H2hQ-HrELic zqpz@2O1k|mv2-#hLKu`!hf$aOQ z;#~FqR#5rnDtg{PHRas)CpUlj>wk&ML5^AYDqKl)1)(>HixZ#h{~#3+AFr%b5-%RL zEjrhQ61aVV1+*-?ufKSGPT6z0@)ongf7DF=C7ULti@)}ZEbiZTLrRoPOl0TNR{zWl zA}xovmK_pj-IwL7Xil?uj7=@6+Znb(-?rRxab9u#yqgnrhVeM*Sp_?Ztshl8Irjhb zFv~7nAW=UpWAoedBjfZbF^Sc$w^zT$jtE0C$$#l@eO|rrSWY_WY?K%ZUwSx}HQ|C5 z-CiEZ&nDb}0aez<4+12aM7S^?Z@K%LPODGi_CFcSGYo+Qc#$>V;I|j*Wb9|2qojll ztK<@W@&Brj?<4%JhrQwdqZ+NnZ^?_UmMV54{H1ro$)3T0U~%vu*QQ(%+`Qq!(>IQx?2Ez_ zmm*@3+Iq!$hqo)5>++1sc@Qt~+iU4adI6EM41Bk?7y8PT&)(4ap^$XTeLARvVWw~2 zeG_3aqz4pMhqUJulF!kMW+NZ{<8qt?cV`s;$M^JqFNdH1a8-Y5gd@6FLp4Ov(Qr?j zuU9*+`@wqoGu(3NQ`|WBbvR5{f4R8v^YcrvyC+@H9NVjcAD-IwOkK0+yW|Us?(&ez zkm_P@iFUE|VN_$V28lPM9R;P5V2i;H8jGDERL$1+ugsyB%R-kKgacH6`;h)xK7K0f zU{~rhxOM!u-$x2h_KWtP|G5AdIP{bD{}s=jke|QW-(EkdX0TR!`HEgV{QY9>BjW}_ z$<7o$p3XFJuG$(V(UyJOW-n+~^+q)+j$-Mm-t`yiVf(FQ%p!aU_?&C^1r^7vtM5Yr zIX+DB?xIb8U;9;Eom5T=~7` z{2xD;gsfi{R6cCz%KoAA_pj~v|DJ%k`QX^7+OSOd|M)e3xp*~NkiVDN_y6%9uJE__ zB%=u0$lCJ%amW4T<9_-U|9#L$-I=4F<9{FYQFrG5z7+rSH~)R3kGeBQtiAuf(MKQm zzuzJMyLJDklkwN{o#?-3^xtmC@7L8&2kw8*=>K?&eu^ugGvdF&*xzo*e_C??4aSZ* z5Rcs4{u_+_HyHcRci{iOTlZFh)zT5ktlv3~o2G3sTcAIk1N@xME$cM>RXjblp4d__ zZzt#5m)FH(7rKt-wW?hMw9FF$n!gRT3QiLfOAY>+KknYm=N~;yulWyKR}vV9(A)pz z_u$OIQ+{H{TfWLM)T*S|nG3f9V6`CaBGkl%z0!}jp9EelM1Q}G*4v}rd?|D4h*Mc5 zMt5g^pVRx@VC^Z?D_{1~I!IRkm}b{4X(YN-RE1JBc*OoU1;bC@AvY3a>sRht{$Km{ z|7J&E*?BoIm1YQ*|>&I_TX` zMmW!wXc$Sq`2F{R4%vQrP>4u3{!Aj>^k)M|>W*((j9)G*Gp7$;IdQ zm)(;GN!ADRisC>0zOW9xTUR*1_lg|dV>;qA%O?lKTAby}<=@ud{(3tLs=;*(PFSsV z{JtcVar}?cm{Tkc@B%Kp=+ryDqtV9z9nS;y_Fwgch@ zV(6Cs6v+MbHKd?-;O>*7w8Nz+smO(yvNso(CYa7Y;Gld!jXoS*!2LrucOBGqIiBeJ z;wS#;<5zgp;Ja=%jEx?qCnIjup=yg?9Q^){K+EvzL$D0wYB-yY7!M7C8R&voU<8mlGKhbkpT3tXELP3OQ8C*I0GkNoHb zMNJ8It6&4QoFiV!RK1Lrt@Tlh|1PP2#dKgvdAPi~dxiP`JZ!0X>IyLCpcnE1PknmP z2b8Mcx_s|-LBHutaowCa@Ogxe(U8QFbUy6pCz3-A>h}x0Z+>y8OF8?k&ot)%TW~fo zbL9YAC*SrOTJr3b+t=}9z;E3PO?xFs=~dU%qYepcK&OBH9Sy%(RwBQ7Hn6{B`5hqtGpZw@$ikp}s>9_dVFZ4fIpXc1wljDnQk$x1HfK-rHMd z+x%o9NhtshN0Z83sP)~fa!UN zj6y0d!KXP^6O2zM3ZjX5Oo?HU6fA`g&h}cHMHC@?Q)_;xBpvzfdj9ZREzEuUYpvXg z*so>v!riOD3bV?2j1dSxV62;RaH?V8lM`)7lo^a76R7}-ThRu$s%b_@7Rb$Y-<0S9 z{AD2itv-_u3vrN$LgkOor~80UqyOQnz8-r>oer#+VbHWdt!;+8Cvs986o5J`Shv6^ z+?*Gc&XkZV7f#Q!gH97=4wms+lWxk|;fAak47e6Kty4sS=KN>cF<^{_D$pEy_5tC% z!K8jXW^mUj&dPwAF_a>=L`pGHib<}i3W4hCNIE(oa8iK8G#FFQ2mBX%%jS~FNVE_BHtgUWFb%2@#WnFWv#VLJ1I3(+BdJB@5RVxQD9fB}T2Q>pK$p z`+#5_fpS}w4Wmm0@Qzr5tAgV(lXdHmtD=JK*Gs`02T$z+O-KA%s{KsUJFwyfz_ev8 znCN=)VA2MVKxUCW_XKnA)Qb&kdy!+d$>6{0=|n4K+R)r+U*D$krzGAD9wa^m8zX;W zg+9X=jy_|$u7ePY-%!Bh=MYKi&wAi;(It7_z%p&;HA6c>vK(Xy6N~_(cW*Zu$#KR~ zPKfpni{Nz(z1ADIz^wYpJE4DB)q$@hPc>bl5vddK*e@Z3*7s_jv{YM_J|rAl-hza) z+>fuZNu%9nLSb>?ar#V~idG8ZX|>RXMQHZjm$Ry}D;MDl6eG4At=pG!0HSPS*EC1JM&MyiC z^AxXSe*Ot3SwD-u?04xvdeqp10)pXpV1$}8MA~4Ylv9cbk*@^?Zrhy?ZoycfyhLy_ zfdPd>oZH6g(*T1KRa+^s*yvI7)#rQ98;fwjO(A}`@q&s+H|7A`E$U<3lp;~u+{LLP^KU77(#6+ku>Aio0;K~GFw^9!15Bh6|4 za+r3314nbQ!1lh<=TM;vxw!<(Au&lGAbuZlZ}QMzN~ke}F$LcxacQU}Z$EzWOv`Ge z8>J`4n|f#$oCdr}0o;PXHTpW=U`@b%%&Qcs-M$C>rAT+WR3O2 z90%Cm7Ppq9U>~mV*8wHjl974!blP6}AugQ_tA*jSUorOIi&m9LECRHFWzn0fugR7< zvmfwDMu26?&Us)k$r|A(19zHhRPz&o|d8IL0m0l=&=p zZN_a9Qj{(mjsOFV2Fi!fb|#-&F8l4B8)<t{BYdzBB(Y^wU!NQiH4MO!&}ye%J- zs9gzg9Wd3$;flW2(;bmzfL%?86h!?6$Eim+e##Pi%1%JT#ivP3GIx`JeC@b-ioL8L zhvZ}yq0r7d|7nTCH8us1SEWE zy?h?`yZ0qe#uS@HyAN&IZ1UBCMJ8;;HJTt~XSgGa%Utih2Oo6@b2F1pYuohlg__}d`r9iZ9kdsBmBll*#%bW^_=0rv94ow*FI#etd z?h=t#Xv03=sPmlm;!-5J)=(FRm}zkJfyd`|d{!Tc+eV(2uGjSGoW}2gXibs)_C?k@ z*BPM$D&fRl2;(!25^doKO@_P!TBa!ny8&5Lj)Rh>?6 zZN2b6y%1H!$LGIa{5kvVd3T~Mdf&v@)iXBXHUs4slV10jgqUg&MwwE6nOQk-Z{-(i zpq*gOzo%5!sR;ibaE1bBM4}L*NJ7;x+vRo7u|HhGSpBJ?aqlxF4K*w+J8cAroU8 zKvgM%DUsbUnyDy?JjSE|A|I_*x@a^t&RqYnra^iQq((^jsRv5ap-V}sMcrsYbT9nJ zQ(m?g&D-HoM%WE;D!lQugAz*@yHK;c^s7(@Bl3caH2i~E(nPB8{QwFT`y%j~Ed}os z16{=w;?>% zJ7QkAw~@+a$3rtvl|$Mo$4u@KpoGknnv-EjD}Cc*Y85Rh0w?mCgP!u zGn(t3i9>cp*xgWG(&y5(z~l?jJZkT-9Ii!p-G{&41EE}EVbj_V$eaQmtf1^pI@xHu zqHwitU7@%{d!kh4p+{l5$6gz{8ksUP7B0paI%#W~pMWxX{u8y(vX=nvM8N}1uU&5;6Z3Mp3Ow7?EV8QG5Y(s~nn2)Qj9XAfL! ztuSMQ%s1Kgf*&V=afsrL{13aPFDT1BR*$JDe|wm4J)QKHsi+}7ho{>RS0R@F0Dcf~ zh7t;(T*`OSxXUlKlUGn3gNb`=wYW6aUKn}I^n;1*WwUc&|uCDalE??C&9kZ?LW8S<5a2wiCh-FOdO9CT+A8e_6ZQ|?25RX!2 zHc?6A;aZ)5g7?Oc4<*xvT5K;4N#)hnC-9jB$9mh{7CYLmB*y;PAW}N{k5QPa|001n`xc1YLWgPy&)7V3RMC4ktEXVA7mQALQ zg-qU%QEN`Ovo?^8$fbozEs7V_5L~K>M1IbOeognC9{a6cb+dl;tAID3JVDge_Tk(8 zS6E|{HdfU(`~@>(CLIyQm@$Q2O|58p z2Q8(7iNBpAE1R5+q*2T)K}a+Qed1LHEl z!LT*TBoldl1Aqv4ML>1PU4humXS+oK4z@bXT%$5LRMYoeS9wq|f|U3;@ZasZ8* zZ56+5(VJD{ku0&v&1g?xj$r1E6lde*gH?$ukl3bxyibPcLCBjjEZn^YLXrx;kp%P? zZ+l+p9=WtccK^HCDyg~>1#jBRyyDuA8&y1e63Lod2z!*7`sV&?s!mN6H(r+loq#jU zk&(I9da3wm&)20n8ep9z zu`Uzcn+LUq+oXU=ydol9te6sToByK@tF5KBYN+fN2SwL3&UBTvJ zVL9#Qfg-By88?BpOhfB`>)1c_2>x1_9WRKZq~<;aug3hevnF_wP~_^2DsUA(lFc#I z@qgBrLt?86Zy(BNmvBr0NYn~v>?s!DW<~4rDiY1dY8#GJ8JewvGD2Z{+GfhU(;WMo zccLR%+}1wMHHotk7zjvFtLu+VUW&EhS0eJV$W!RezX}R9sf(9u2Nwi4w_--v{P}6D8w{JLi+Kw-qy5M8H^M3oGrUA^un^g$uTh7_$tA_qRjJSQp-mR|8&< zMp-?vFV}36cf9#ZK}pwpdO%eCxay<7#GYscQryc!5^YWLYTpOcEwV}s7#)c^6O6AE$!;$;jR-Mv~bDLksv)$1`^X4@y@-E%oPW+MF zu~Hl7tngNBO2)1K>Y-C*$#8B{nCAw1$+f-)KLDV2a7 zEwN9aKEdMG5v)BS{8Qcc<`5Zo&5zHij_!c|C_2-}hX55p*K?lz59KtWA>*-A`>UKZ zsj*Erd(Si}J@e6<@*XkZznev~3yX{Y#+hHBE-QB?S@SBzGc?zSQWi@1%pCO>h{NKV zO}RC?6g<;ezd~_cG?Q6XB_@d3rd>8Up7$Vr2k^XNzH%_!DDAm70BUds3__Z!$O)IR zMX+nWPdYiX&@b(4;}a?{_}zUX9%h!PqOEP{j_Go9WWg#`O0ELj*IcGw6E7$|c6l&P zmtFi93jpFTiq4qMLO4uu55VKp)<|WHRJb9JObXD7f{pH!tyV3$my9sM$?xy3DS=c~A6U*~&4$EbpSWcMw*TazRCg-G2Ig7ud<$3%tm z?+VKXb)7H0S7MKR1`0g65H@MikCgs;{$-WSdZ?zkCXPDxw#+Q*!R8ggaz#v>utg_2 zsV12er}ymBiTPPI$|_}CxypO9Eaz-<&ArQf2CAXHxRSIIGv^-BNy6-;8ABFv3%|K0 zabh6@rPKb%4u00XYm(COh@KtvJ|66F$W#4NZo4@{l4R6qd-AhtbD$U?s}`t8;AR&A z%d;q&F^VV(MWQ!%diB&kuiv`KiV?q*JAjC+Rl9HI?-8Q7;s9g64&VAY+YZ~-IU7My zk>H%T1IF&Jn-N`(-cL*$K`e=q` z24AmO6iekY2xA7o`0?RW+*hp_+MUy)i#u}=GOkOm6Uj@0$Gej^lV>{dS;D9xH_l5C z+9tKJna)wkye8x}S2xRtTAB`{!Nh_m#j|-I>3N6V8%1oZEAkACU?ApN*Y2Y*rP-44 ziM2V;_eKa^tcz(CjN{D;eU}Gh7tDVIHiaat-KM^0p=2Dclc3xnD!TUBXTH~qR0y9q z`{EJN2q@C#gX++mw(4n6lQts6Tk^~Qu@JA{J08FO@pKG&pXJ0m%ZDiJH^>DqEVYSS z>!53H`Gc!KjrABG52}^0#~1cRX*WByjYf5~l3zT(S5DX5gE*eObw*RqM%#NOGxE~J zt+jNc%^`(rsWWjtN>l4{DMQhCUkB{TU!K^nTkP3mu~Jtq%l@>xGT!VXp=i;m+e#xE zB7v#6aDDQ%X~yOF?&U0U8Q~PlKwjlcAwjW^0|xw>QR85q_fUBuHKP%^;@R0wjZ>s8 z{NwH>cqjk3YKp%_$5NSDS&T5C5iCq*>y#QSNM;=VdO&65wT>7g|8kc?Q`Wji;Om)l zb|+0;3k9DM+Xg^FHX|DsJ`$PU(8YquP*jpvC`bcJzcfB)il4QxIf`-p_R8_7`I?n ze+cjrW5~AL%_d89?Uz8WxN7W#mn$0BT_=L&Qf=A%Zb#Q9(e5ZBT0J`Pt}3C)%~oMT zYpsE9=Hc@O30Xw|bd#^}=X-%6{gS>;{;oT36*N^%DH>E;qM))%+O@{yy+=v?6eg2m34JO8H-_wUfG z-sr?5Vte+VtFMn=oh|@T`u0$#;}rvb|yFV}mMrAy02{vX&m;yPYq^$VDZ zC_1mQ(3Td7k@9aA#KxgP-rn_6i$W>KBq1x@$a{BQpzrRQo2z(Am`}&crL6EH-ypw* z3u>p}BK=o?;hj@n{{Vtd=bgA9+8LYklKaol24{2&uNiIlj4C_x#n&8Ok>J|tkV%jTQHwruTu?$ZdO^LfC0-eV?pIw=WS<V!tPBoDrd_Zt$3A5UQu}0L%pkkrjFw+A3!N~7F^Ok!NMiJou^ue1PjcA z039hs#Qh^~gAbxU^zLb{T8!?1(I}}(y}k;p(Z~s3Fe2i6hb@~4d`@~iywh>b*+_Y( zqy~JV)8r*;{bzTb!MAnpsvLTdRzmVI-sQ(9()h1~Pb6pNsu5#u7t#lhO9(r%)s%oH z-S#3NwRq0owyng(byY+LlDF_Xfrk5_sABIR=(QSY@3(j^fIfTyG!ekVT^_Cn&|&#J z0J~;gV|7W`-0oA=$4UsxB`Q zHF+6$au>2Fv1IIny-|57J8$u8J~UOJmTF+r)7!!aL>o)iL%e>b$u`KmAw|Xoj+~U< zk!;~8#zoK=DoiUIwanM-oP9p$5iMQ^w%vi(4~&2~;=DG&noYEY?{4|wkMoCWSoUM( zfHTo7^=VG|t=aQk&}|&m@264ytmsNCXa21qlB5`G3C2Lc=dIRR-QN^c173UVSIz;Y z(a{fHHg$z|FS^<{b>C-XiQM&nBWHz4Z1FGxtXjE(IzYx5>dU(v`3JL&O^Ye=YN@zHBlGGgP~{vGY!KC7Y8A*f5^f@CAoW_wTNT zaiPkL*iWE(53`H${Fb`rWuE%|BN%A%sB*sDt_?g!nD$c(HpbAE2ZSLXFpR`dQqr_g z)n_AmAQ_AV;M|N>i$^y-(x?Vl1^j_w>`IQY4)^G*&CW%svHdNs&G~GM#*>xHM?c_1 zHpWx%Yy&>R&)!|B;Cd^=%_K`ej9=uIZ+u-|gW=iME(A5PH7y82pASuF5CKsBd_d{Q z9tGvFe3BKRvD1b>{JUmBb6(xRc|dbJzKXImF{7nJ6v!|{mz=`s0GPr#!yK1M08QaX z#SWnDrj-~!lg;|w1+-j?nm5zId52Q?VXj-(M95S1et&Sw)qffwfF%bvH`BdRt6BKr zsdT*au`?_!;+GgH)O24atTZNh~isP?CM%8R!d z=1bUaf127KwUoGc3YsR8suuNl)R!>iyHe069yOZ+$}2fvfFr{uGX9Lnw+y)_oPp)u9O#x31LQBOJHY8 zl;6|E?11h~)*g@p7^t#EX0Xhj*;|e!C~e)u8WR_5e7e3CsNZ*IxemXoNpZIqf*5fc zt=l2jC&Ndy-Q(f=fDd9xICx;{&+;zD#C!xU*W;_S5ZUaILPuV+Y@GT3~1;%1&xr4n^P{o6N) zOzIu}uDG%*Prtw5+{c|!tMb%W?lTu#s+TifoO{2q76pVrcF0-`n#9g?Y;1A1D=K7E zpJOerH)+PyaO}fMxg?>*PLHA^>Cn*9HXR)Wb+EVBG#w9|LgPuYk>4mwL?;uARChzZ+mtqO0g?q`+v7-49F(YjmGa z)vg8o`9gdYAx`1+3p(agC*(gsb3=?s-_Kt`mgzT>=#`g|RHTF8aocEYqeGFnh0Aa~ zh&;Ft%hJzsSt9O~4lmEKaln{#6i<{|8!s3335#urLJE!;CEJP4F>X3|D<~S*XYd?r zmt*jDs@)T+TMy;zwjWgyU3sKU(zXjFaEGR1e^o`&z=|H4c_HSx9YndG4o(e3)p`@{ z5}xmrl?@N}9))q$7&yQbxj#ymf!@+1^E7ueZxo%+?l;YYUc((kye7k5&+EnYR-d@d z8~Y9H5)ZwB(&0NDzq}T1X#f(C>>a4od!XV--m~~&2>eei5#n)uD8Bvhgfo7|SJpZN7ven^3F!NLq_h%6|VtjeG^n?Z+ zqaMY2G9Si0Fg8nzeix_v{=fPEU#+VavQz&cHgzXvfS^&9paI2IBJzdA zg6%0DG;0fy!^Xi~`*RQce*mWCQrfZ9JgumyO=ZE6tV)Hu+^;R&1SFnKBlqo~oM0BRz{p*6ya&&It=O zw|}g9ZF<=0nNgq-hw-*=qV9!O$iBZf5@L4$J2olGX#L{!hc z)3IMY?xdN!H-vd8HQesjN4dHxIoPpOa?9&XnAudTsNvm0NY^=rN>+4pRA;=+!;yy$ zlcu#wLTg{o3Jzx=Z9LB*Y&kV%2~qD^NBhZGK3xyI-0d+~ax&kup1K2EkIPdw!Ioo40E&;?Rj@IO z+;reJdeDs&nsCy9HvNHP1Sle@4ZrLEjRDL$*gO3Vr@jlsSo(!E8*R+Q1jWN!9hDfa zNeBq&ZHUWsT)i1Ge`Pj!3rcZf8HY)po~LLLPxLLYw$4 z-S+rCXkO6X6;_KZn&;x9$Vwyx@DNqn7`}Y{kiYxKF3{s|M)(>kDvbX=)A}4{d&Ew>vfIi^}JTvIJaBrsG9`p0F5Kl1m1y`mI< z%aOU){)u`oLc0a zA%}%(&MowC7QBgbBV|~XSVNX@;Oavua-@Lq4z1@B=ZG8PtUD{ z6E-r-ds;mKqq^gO#I`n$OLPLJx z@NiVL+u~5-M=86Jz%d%rK?Y2Ne@c`M-efi`S2%d z=O05G+qx}|MjZcEgZ1*5im8cmvqq6D2>}G1oOLjirZCHvJ8Yc2hf#>cXDJw-X{}NxB35zTCq{qj( zMjW;MeaurC;;X<}v1TlG=7SoQ_MwnqT~jh<5|RyfckhRBZG3o&_=7N-(G<4l=epy` zxqM}0QZn0!^Ijn!g?6DExab;6R|QSnOA}28 z;$QAZK#f+2IN^beR1q}&V5x|IdjC3Es&;^t1eTN=^hbKy$uB`Wz3t!^C(-Ra7m0T+ z9=(+ZAaD(;#1Q5~cvr!q&jIOTOLTU|JwlC^O+EcYyIQ@Y=3?9HXfLfI|KK+ zHxl1uOWg|_>J)}XeC<7D5(~G)R)i9si?pCzjTBEh{Sc6)-?r#+?4UMP&X)esSFa0z zZE`Vl-xO)}Ksu>Rt+&aYyz0iKEq^j$nx8=HtZStEK)i+Ve|$gYK8$-Vnc&HhGodNJTtWTG0LriSU$a8U9VBG8nbV%zPQg_1ExN`;!nip!DW=WQ)Epant zGNm|5U-a;O;)}7=onTQIfoLp?^uMf+CAP}4NH4vm{xz4&BK_Oie_5m#sr7$tseg&* z@+tk>+JE_!{!J@k`IIJYc#)9MWyAY7Rsa9HhW86hi69AQL-WwqNyzA{&bBj)L?NKm z^ckt3Ju6V$3YyR+JppM8-%CF~Ot0H}u=^N^3G=%Gz9&;)^#-D0EY2Ae4d%}Lj-I_Z z8#M;3fsLX*sRJah1>!w~fZKp7!PUyTkxDA~M(R7h>w762IC%##mXt(4=I>XKu-Ede z0YK}jSUJArD@Z&9caR!9a*DzYq$7AFKbewxTLO%GcufOo?jjNj1sN*Lw+AMItbQ+v z?^^mKY(u~s>Y|McK*LMC>!+V0FyN?dW)L7Ju}hcuWCo087L5BntDfB-E!Jl6^88WS z&P%?6l!A6eBIec<#-zifOFY&O1+J~!^?vF<+9$(El{D8p{Q9qz#@U?z0!W59X_48nsTrhC_IYTU zJSAv&*i(82f|;>7qd`ORP`RsN0fZCsYuS@4rFwI6h)2u+k(XvR_F5h+X7m zv3#4KYnhKh7)2D*S{&{02j@)+9J8 zAnmeipdR%+bW>NW0kH6S_M}oSe9L#5m)Vwip~$^7;$(Axu~VFF6PeS(f9?{tx@*g0 zr#J{8-QJeDftF~btbrezbH_mPE+NbadKJ~MfSMflm3ne^$Vnr}wl}HrkTzCb^s z1f(NYFOWIJA_eg|%;WbIv!3z;BTiq~lN?qR-X0V-kQZtr``XY{?Erp{VdavV!gYNk zQ@n8Xlm#?@tWni~gn13p=8Et0$IrRS9;-&Ae8$VIa*`TgNs3{r5EKeRH^JYBK=Yz3 zn{B$v$2cEc0PtcB^t)A?N3gv@p8g&$CjBeyBc{Mqs85@Qsj{(v0@muH2M&sXPj4f= zzwl5in9ASjrxm^1^3xL)%@y+r?+-o=dE}fvS}qU+B{EUcW)e5#ng_5Z5+2npvrR22 z!5^VW`Yhl+L}G^G(1sC=eBTi44*tHz%u|WhYC!xe#U&QAtYn^I+H{2K36=?|YY=cb zFUgU8&5*v7bV~Dk0Bz2<{-^kGo*zXH0t-XPTD(~p%6y_X5Hjp@c4(-0obuSr$u@xW zY2E!68ay*^ko4`0c5Dw8x4476Ep^luAiL^}lqohXGu>h$(LPF-T>6S#cHF-DJX{Co}!YxPlz$+tm%5x0Vg-$O|5UPpE-68M?CDnTdQYxh?K2~L%0~UkOVmYYJgfKw zg3h6$+{fU$41@?sWjct(*k;vv75(sfpGX#In(V5PO!r%P{V{QXs@B2V85c478mV4T zG?=OYCJ~kiOVyIh!`L^7Drvkl`mY0F!4b6X0qprF>6`f%rJgsFmE3~pcZO9 zZ2)04QSdlzmdkVwt#E84U;-MiMj;K{qUBElEybA(E53^#Zw9tNA+#FQg0#f&KwDhg zC@qtS)j&67i{pmsbhzX^gtsVbKgxJqfIvT4ux@}}u){meRm?~60KZ8v8Fm#`!95w! z{i$>8xsb-{)ov&)8PcKQ^_Zz|8VUFY^`Y7EWFD8-a%5eBN+QFWq5i}Q8T(e+nzCap zf=8&#nz}Seb3H-pC&-b=qSq}j5d5y90R2;U7n5tBO;8)MRowllPSBrR0FInqyau4- z+?e;C3J}EEADn>?G|`vv^_gCMik2Q&}?H($V%)QNz~*D&d$N<+QXO$BGgSYWbe}oI-i&#LHUi{kwZEo#*cu?`D$G24 ztUh10Fq3b-tbf^-i{;8XTSuz5P6LJ-jiWPc4Bw!gX^vbO6ZQeYN+miuTxj?$t%Ze~ zn|=F!{1^hgL;z*a%_`DT(1u~XQY=D3U3?Wiu_Ku+v+?m;%z!iOe3Z}VR9$Y4#8Yfi z5Y&tYk-GzK<)v+jYI7BKDhq&p(ZF$&D1Dl5er7aAF}qixCJBI?ot;be>saTF2vo){ z{soz?JSB3Zz*zd5(TxP!ykoVNfGMpOb*eYHxt^zcyY(bg5Gx|Efv+59Ulx0ZZdNf`}E`C6De zg(V(G6`3bQh!{`E)(h7iR9NM4AnE-M!)k|;@$^B$KHJoax++@h0FGGSaZu6nNOwHd z1mC`7=)_uwBPg3@4SY7Qh_l)>3ieByG^)rIx=O!lxahoF#VVwWV+B6E<8ga1%fR*u z>(eR4EHTxmZwlLC_hkUFPTxSHgNjE5!ptO3#V>u`3H8Mn&Xg&obf=H4HM%5?66q%P*BZG0J9s4v(g<^nd za3;c&AgmqSH$Uw(KXlhh)Jh`};r~jX0-;b3=aLSdKv$qwB-R%@1hhD3X^oiNRZE2v zA$Kc5t#~B0<-yB94Zd2i?rJA?3q%e@CeDx9+@?GKT$b^GiOod&j4u@WO*JI}@Y{-J z?c*(F!}8=Mmgy6tCWWa4_KG2i+zC5#`u7D)?oKC=$~^pO8;(7Iz~1jDW+sEcFYyk3 zVG;80i!#3;inwBBxQh71P$^RX3$3ahE$D)b{Or&}AFB{5gI;KL`kZ+*xMWBose=#e z{Rn+0?7QLSG*jSoMDZ|b3|tVB1C$+_H6s9gdL$0 zM$yy^Ianxn7!5KPZAI!>g;+I0O;$Z+e#NixQW$!WKMru+CUadMWl#Hj>d8ij=f%D+ z1LFEKOH24U?CML3wS&lpksh!~#){{~tHe?J75(Yjo13a~ffXk*ILHBQgMR(cm|erq zse@HRdG#UYP_81fCiVhbsCCm|-gb?nBd|hHRpxNXyCHF9a`%YVBJwFh4gmug1QFmAvSAMM?qY3= zI_n87L271M(GsaE;G9H^L^@EH3* zODNYYR`3~Ny|H1NjfnRwESPCLZTtq_FV|~Z!awc4`gRkZU^(#>tf44he9R5ciAJZn zE~jy+=HBMWp4a5EHBreU8xDOeyBPctJ zsjZy(IbA`Q(^&a4X6lYI!XXuut^1s5y5`zS#zUlT;lBOOz6AUW-(r_zSHY>a@@O z9JKxJkyH60t=I!HcN`98sH6GphbbOAs?mFBTH34-am98+Y|?_vf~Q=uDrBlUvR0#s zqd?+~XnE!|>j;8I#n-0gq{yi;I$VIJBi2%gCP$ayV{GoIM%mc`E>&=tb7wx+%@CKsZjmw@`7A_SWO*jp4uSxi>?wqbw&+t)%e*-rb=|WgT?C3c62cg7nulK7F{EVNn>_q;Cc$vkw2uYQ?>|k8$LA{rXD1HH&lf6w4WMG^2$njEdzp-|>ICVsIucM0(f7RU&~y(*=%&$aQreQC zPJ$j66jVmDJ;|TQ=N~YB8r+eXn|d+2D65^3BdX=HO9O!Zzyvay>Ksirg zHjntc2d{hsl>aH67Tevq+g)=Kp=-)9z2s{pX;qTs)e?~?nCoei=GAgN%M%prbjI=H z!ERMdy)%iqF18{a^^#Rm<&5muo!IAC3s3aJ%Z@f87V~xtRF-Ar?lTb`LN+DrY1f*q z(sLgV-JfEZ<2J#K2$w%>U{Ug3*=}`^F3;nLxA7hT8B5oMB}(5R828i^59#^%PKU)d zO0B_;C=(pmOG;kM1TYmHun}SGIkyBDi-FS>!AcBAchfEiC_P&PwKTasv7YFgJqFlH z@hi3}H_T{_G60Tjk>QzFg^oqv%_6_=`(+UNEF&e{LB<(kBNqKMr6IixQ5R$%K4PJd zTJwkupUfuNargFC^;dSs@YilQ(azWcLrqctser$^0BRJl#S#P>#~T$N9|})(+xmU^ z0(?GUwB-KgWpx9do87O^BV1%PlF$d+wrM1!!eP)nD73-8NI=7w1J^u5d`9z` z+W|wu^MXwwpD<9+zsgVgCAr+%j@X;>O#^XAkh|eRTyMyxzB- zzFZZ+Ty&60-zLqHSyJ--{e#XK`bA$??Ao(#B+zi zlsLiy=lEYydnQ%Qxgz1~vkSxCnq1_vm!Bo4VqPa2B|3x4BGyGs70h0={j$!DGaBIF z*NB#1ZdST;ti|3Ok2o#OXbldTk<+8wsBAyOVa`vri;9z@Z-QU?Mq3?(AU54kgEIQ> z1#+d5nBlL^^uqhdxHQycWX1KPIzJduHAsE4RVgRzh8oGcnvEACCxCf5=nUdulv_87 zvsj1i5XX`g@z356ED@G{9hy9-jpK5PzQg$KNYTmwqr{@Sa0P3D+nUFijx&(p&iiJ zgY2&dsLJ;kN+wEBU64sUu0PB=odZr@3{uT-`GePbPi@ckaCz(j7r~pK-HdljoeG8* z)D|g@h>X8>0nx}0UbfElG9XAWSs&nQ$JdFpc@$k zf2L%pVM6FAVwhT3+=-p>POuM8Ix``DqX$YlJ`UF7uO&T|h?Ys-9kbm&D52t5V_FVA zuDl)M3r*WiAAYCmsD;>yZ7rBwjTeqw5-i$;)U4jMxhd_H*BjfCC4AFF1pJP?_OU4P zmon9Ja<`xMa~ITu38ZQjbTSNi96r$=KM#RsBQ*|ggnX#>a)nK~Isd5nMhoTuuiIsI z&;1z`eB5~0x;*jfz&Q3$$pNm4i!|SWcm#JZ%N@Q76~va&1lKO>sBK=;nQ@G-(R6#N z4goVkszQWz^GV^7o7Z?*1x~!8;P~0Pp0FIqDfFds#n& zrSKa65w{0yDb=$0?abS?lZ&xsEraMTDQ#94_j=vv$Z(cgJ*P5VqkYqtG?opiWd%F^476%&)V5}r`BGktY|vazxzcVYV8>MV2yCY`2!OwJ{HXQ z6yQ>^@f>z!p^`P8)thrX8WI3;tQgO0-smLxa(*O+vU-nosPVDRGcPdQucK^WuSeKy zc4iJj% zRa0=HxkgRvo)1`L4W7KNVvECM^BSN97t2?QH7qM*VQ@t_YqwhN^9IEPj$o8k71{&5+WQGrO ziuK-?8Cn2)kxV@wkDV~EPMPP_Tm@Cl6@k%2b+K ziL7oYB9Hf4bBO9jlWFcOKNUUJkpM;F>c&7cP=mP4ITMNr@iTCW53=ouGmsdaJLs}G z=)unYH$T&tIUMDQ6AP%F4fY=#;DV5Vu9Z%t8xq#jo$ia}Gz^npuU{SzJN$v>*n6|j zItt#Y1CL8GV+NArM7EED#O+CTLMr;a*Kq1%DOrYc3=I*|n|%S(J$Oghm%5DwI)bfx3lUI`n6B=F@&wx0%%{#EhB7J$q3=A%V&Zt8=|;{&+U)$@wSpu zc?dM;v(ZEGk$u^fX>wbZNcX zdc-%(3*tqQ8w_MPr~js+QOGe7sm0WyWy3lqsa}|#SLq&<%n4I#06Hgy(~(B6-mGDj zN0hKbmi=(1h6Zz{Tugk1!R)(KhZPYT?YOiF?D06_K_2sgMl)jibB0^Xx`#tRMbw$8BOPDEFrn3WHDENNPq`Ub-}vb+=740> zDXc`eDeKfETajdGWq;=_*A^hhq)iOrtH;{NbXe`H!5|47oTVoj9x0~{vanNVK$43s z%8|xl{?xUG^u~?rxlBJb%V4dsH0S0<0^GygWuNRTVt~9OM>L#3`YKLotF8v=_o1T( zAi&v=Za`}GYapaOXaG_6_$_MJKJ-H4irAcQw>jhy@|RvYRl~THXh@Gjm;btxMNFJfSMqBnH*WqvrY7O6}PHgsh?%S*+wdiS-n-kJr7zEfbi5f*}7 zx7{$*=?1N&q=#5;=r{6BzC5+so{3G?chZ@{n;`J5fGUcNVSMxjVKsG_l>dy-FAK%T z3qqDjD2;<|t!;dz(l;xo39FhCs3@Nrf@v^u2+Br$Xe7^=rwTh)>3n8y8BDP`*siaN#7~6F$dpe$%YONgO z^Q=gOQce2$l%BIho_&<|3#f}%EW5X-sj=BZ;Mkc3iwU^T4efS zlcc?Kfp|WNzuo;r@2%J9j_|3ogQCWlC`NX5wJ>8-vEGSL`tK08+PXF=SOGG&7i;WC z%jz=hv$!=zJbbI`1atT5hfII&>dj4^jWD~rm=1KY83ZH;o%BDG9N1E|$CR($bp@k4 z{1^R=W(z`pBdfnZ=`n8PfkN*G`O$5Ll6YtGBR=Cu>e#h5UnjH;#>{<5*7(oO$)AU2X)uZ9=T(ipMVrcj-hfMGV}MC^a8xXBx9xsQVNqJ_8cBta)Ghb# zAIf;H?p3@MyMx8}>0m)(g`6*y~s0k%q~n= zVsCUia#$sNG_>6}_yoz9j|L-I_-G_eUiX!MRIaDvEv-zyRAh!|u8)LrHiUR8XForf zn9+GNt&gu!OlSuBS1aqknRsXmv%Msg0ID~CP6!y+gNzHXmXb8>2>VA$&V0Z`Ybf3O zV!L>o7yZn+={AlCvaj=Lx%Hf}e~aH%5bYqF)Bid`7p(ERXOMxqn8h-+fT%tXgCcO* zqryKTWIqN7jpc#6sp+Ggbrl?tz(byXR;)_S=9crP7*=#3p*{Y9W3+4exg#~vbcZBDZEvtS&5edk2=&s+2!604 zSZ`r+Pujj~_MuhQv$0K={De50+?DsYZiq8|~vP<3w&Kt(Qd~eiuRJT35(ucvnC1pgt&{WE*qX?P(Zo>sf!9zt0j@I8kzs}o>+9D!>rrm!oK?R6mne^J}}1rD-4BhN3Nk*+Q=)uS}%kWd2oN)Z6eSa4qP@kM(B zAStZ@dh7JzBd0{}vn7h-;pmSv|MZHHkFjp=AvjisVhrQcBao&%ssnJKTgaZ)?Z9rs zauQDOG_I~UkA4SSL#9z~^G!pJX*t4&MgC?P+OVT6yUK{erbx24NWRCqF0)xdky-pw z0n!v@%C=+Iv;qxp@AGHTh=$(4R+c>i35A;JOo(Oo+3=aD488_aCVfwZ(@4rF!Z8^9 zP<5Ab=eedj& zbK3bh;^fNatBzPizh0%cf7tmlruOu%DhFjt6S9jNnp%aCGvSuB1S#5hRye_0INFR`dQXWB%5! z*Q!@4Kc1cgfNpe)zYTp?+P+bw?@2ko*6!_N>N|~d5qckfh1FGQXd8rkE~w=N`el1i z$lDBFuV{I`Ibik?X&CG?KXcuIWnV|OXRaxbu_=sN8HYHGN12rc81E}L-PSB)BZA(} zSkcJgL?~g&P0+VtMt_YU1bDNkG_BBn{SMmu$}a zIRp|_tYOuNa4jPKyq%>`P+k*~OPw=RyI5O_zMj=em$2<6uY=5&i#P0%Mn4KvZ`s*# zQQ?AVnELymXe`yK=2>-rcv?Ue=C6}W5_ip5iKMMhCs9**sX z6Ie2ACOC9`x#|T#xv9Z_>4WI%-SUil2at$I%=~Ha3ie?!5bM|N>YFL+AfRUT3QDJ_ zrlecNk{E5!F3kE(53#%wl8m@ORaAlJHg}HLu7tR7E{VbPiw5aK5C;#bRg<_r4U7m! z&Q2g;q8bHVk57*h3YpWH>+D<@eV#+G#g|3Hsv^k@z({pY_421K%WSljjHJ%3NwFS)!S^a17jfIIy2<=#_UZJzwx9b}c)R45ij_Q$3UB}i9 zMP}Xf6tC;EVPy{1E~Y!L^h9dMQvL{%7^XOV+HakOqQ%31aFX!Hz;{d40(w=Q2lktJ zS!UI-HLhncMoBEk>s3+no^0;7TnEq7u+nIUa41GHe#-ie*V&LKL-8=xhoKGq9BCdF zck^mMpSB3qm!WuS4~s3}l$J+hd&R$5)v7`6n}4)KJX#!`NAQx9jvAqxb&RW@7{ouu zQqI=0IwmyVZ--i5Y#TK~Af^x?6(?S0neT5if3uVqr)0Gk<& z-{I?Eg763R?!4R#=amNY_RGpvB`If~o~BvL109uYucoQeSR=%O!LJ*DI4Ex#Ar7*e zu%LDv3>vI;aO%o=Fafm4&9;H^3gXvob~UJc%+Nrc<1@*%c-+;p%T&Om(*YqIWV`n< zlzsXTt`AFo&;?yT2foFwa~+}mN&cE11FLPui}~1Ihbdwn9pzpO<;p-Xr*~C zrrNRhb*Qxl!ZbL~KAyb=F$hl#@#(r=WgWYLlO7?bhL7zk@+FG7Ezi>sZ|L zzR901oG(g3SaRr42r2HlW4XX{76T5Ll>$n|^Xvy!-c(~TV5O6>fSj5<7+OlRbn}P} zwWHmyUNQBI6Fult78l0)RK=1Ea5oKix6ioh3TmZ(X;yDMQ!q2xg&<(#`Kg#hiy-IN zFKv-~DbR2RuyEn=f{zTxk|TxUayn%oFRvEVY`A$=Bq$;2yKuEd{6)uL&q-<2v(IQ ztRV^(a#5&GZQ=SXNY-%LKy;p|qLvu@jZ_rEl;JUw*b+zF2Ke^3!PQt_8FHko9E0{_8o*!=-1I~sjnF1~npZe3ge%yyV zJI@`;9kzR{eL}h$^MZ)m0vF=@z;KQb;#Jk#PV5qHF-^ev#B71IpFz0y`Nw=gwQ~P4 z!fi@04SDkCiQs@aKckRNX;-Yy4lVwGh06Q;@H8)=M%@ezcP>o8{Rlh#>++v|l5znH z_~1oL>i-xj(S^#J1hA27MMdq;^F(ZZe!d2G5a5|yjHMeEz-<3(v_E#owh$QiFrj`a z{3pq$aWW#Qs$2D<|1q^c&DH>Rk?eB-V?o5dGgCPUxxIZ`X_l; zKTnxUs&g7z>6TbO9XNVrvftl)Jjt<7xne4=qHPk@S@PTbD!2`ss8K!CI>-L#TdSEE z$YldUVwOs}{Md;=;kFuMWvCCa1i17jAau%%u8x!x9&u#hM_LXT@IkhM5bnvwr{fZfdxB!$nKl zKamKGG3q!&3L*WEbV%i1xOw-Rex}7=^J^c0YaqXcF&H%`L8`UHRKri9C*WrOTlHuD zNPDGFQR1pQyA1wl!kj57an~r50+t>ii8(N!rA9@SRn!oluq(T8wY9ZZAZl{w_S&s` zx?*XT+zrh8EA6?qrr#m4XR>_qGA#PufFrwm$Ie;RlL;N|yOww!&VYPoK=r6fCvhJt zkBTZ*>1FG!PX7h*!+*ay&t*KM8iWg#A~>x<9CEQIoOn$U+m3# zKPK_mP1ij_{LqbVZ^DCZhxZ`};&+59232M|&%#Ih#oqYq25*1=aJMSI!tiWb?ks!% z=XCA_Xr*)cNmNu+>kO34?MO9g+L3BhPm^lgxW#s2aCf5J26|yZXp0(oDSqWriygI= z5*LtDZruroi9 z&-~t0>%03WDuRXXw^e-soW^=cqsco?BEgq^?xCj@7_t3S}JLr}NZco&_ zw-oIcPEIth#VBY^W|$b!uL#_Ss#g^{1bnLZOp@BFDqdY}d-MFi(_suSTs2dekxbLUiZ9UZO)HbsurXIhymz0eeO^t*iq zDzp-Av7u$Bv`tqLpjKlKLWz4TGQ^ReO*s*L0jR*kKQ2MjOHPSq{c?t($mGF$qUxj4 zf`UmpP)YE@miGtdjhZr!8nxsIahwSjAb<57mpvFgIWkB zSI7*H-y;*ZY=tFWKiXAMk(<=k|A0Z6`rT4&TbN!@p;1HbbHqnNLD4+oleSqVMW^iX zrNH$_eShmD5|=rwo@r@(xO^3?Zn0a^*#f{Y_`1365!&H%NbRwknCrGphk&Wq{_}Vp z5|O?FpstRNo2xh8sfkfc3u^WIx8VNsKNvF@QIWCB9pWRxQzU+Q4;y53wF3l9SoTap z=FY)U(4x2c%J93b&LGcS1sz}Aq1{f)ld)BgjMRHZ0W<#W$U5llOtpUf`gd0wMQt$c z(2vKi@gp&=&42VNnwf#z!nt~!^)~Ek2;Rr znUTus>dlEm{i9I!!nBLe3{9V)ns#Wu-0@5x@5^mNpVO1JP4v|zY@;{50_pgz9mb8R zbXrU6hc%!dGPtLR8ey2NTMszV7I0SxdWsA{Q(9#~i*Y8mes1H2VMa$IbD*^5e&o=HXJUSWHfD}lW*x=$>XMR@ zju)bRnS5{TuOEia@sb^FjzjfHkM_wz+>uKGXO6L|;ODxpDO*7TVGp4&~CR$?LAGn2#b(vi#- z!5U7$i+R^qoD$k8<D6tk7;uty{_ph zKKsclS54XrAMIUht{oy|H{RX?8u{{^+FW0MQpJX?YS+%GH@wsmo0|oc{!y=HURmJ@ z=uo#|o_j2?#-MwH_oaphDa9g#oW?_$jN zIq2P7DBnNMk_`7eXTZyRgDN{Vr>7kyzRvxTW9bmiI=*GDQ24=v2NxTX_4lsT@e)RI zM*2#_LJm`7FHD*;p7Pj?v|qX)%-iP5{RXm5n>tJVJy%PDhTM@D(&k_SKxt~#F6+@6 zqMGi1j>5Hw>&I}{B694A`XizD*NhFdh?Iti(8hQl~E zqpRh7UF{-4H7e%j=5wb#a4T0^o?kmiy6Y}j^M_CmER^5v`?2Q4A5Yw<9$*1)Gd^p} zQovl2USG8sIE=y%&;OB=oE!r_U*?F)0%icBB1iOV&eDV1HpQ!QoA|CLde1+fQ5g@1 z^gyxURpPsWh>ZPnE7Sx#fb-PbrbqWjH)q0Gn9Q2+?vEk^c!)_vxjj=@`s)^qb>ZYJ zFEojXAtg8eR~K3@zJiN{SmET(X~JRDbEb%dX0_$ zpM^&@gPciUwEC|=G*OwsSb&@@zj>h)lG<#4UDLfh+r&>PQq%VT(;Ze;bLLn8iEULa zrdjZC_g84^Qn+=xP)wNS^ut}sA-Cg}3MYdh24T4m5AaGvCt6%h6M`Y9D7CA?u;6c- z`VsfH|I)AgYN0Pb3RIF9-BOk}=#acV7)aKkM^r?|!EiPX118w3o``@qRsfAR;5bUU zBL$2G2bOVIycCHoC9U!WnsTj|5hiHs8I7543Oe$1?NY~b@}_TTrpB0E#3Ou|0TdK> z(;I5MT|<2A|2uu;DXnS6DV#|-%+F7K>HhHSVn?y}#o^X>1TF!q!F4i%!zW*ApEz*> z@dot_3|I_0Zi44<3*T4g44fy2cJW_35C|cmi=}>tFHU~@+VPR)J?r^cN-$*d&u)?@LkEa#mIGv#@K(5lW z)*C#lp>doO;*@-Pbydq6q7(U*Pfp}RU~HsMtD;ti%6X~JjNSs4%HvWB;@42qz5<$y zk+Y|I?692XAcXjkFo^&Kw+UKbaSUuq8!JNX=-BJd=Er3<`1uPA@REB&NW<5!0GsA`n3U$MT`>dAif*Z8T6VnlV0+<_O~q(;-(|_zsO_2~GeaC@ z4{Oau4T*!)F;l4fTiA;O0uO7Q&OBlV$lI=quD}o^_!-j61=$4+DTev@It`7$k~iDx zRgWNqT~B=|1iptv8AhN9(h)%OP`o4byS*wo!Bp?kKMC06wcyd}$|dn4XtouJeu|vAUS9HAgH52bzLNXsVfz zyc-m2Sx^kh7N1^R{OY4>a`5gPgiE)ywXKhk@~7Ey=z3_Z=Jk&{Jv-5&T{ zVkxg{cQH!``Z;3~ua2K~N2rnNVUGh!{hf7lmdz*#tCqx?R&>J#8*?YUP=)W{;kJtjv0pq)6kHg+?p-PzJH(3rLrMhOl(?c>LfA6l`@ z^eX1E^dgS(`;MC%?Z2#i_w~;Do%gQt9JqZvF)hGrLSDEBfQu{}R8>^&y9H&B#@I-WX01LtStAl`YRXl7WfY21>fBTx>=mQYyYeLuH}gu&ZO_GlhLm^dBd;M4dOtr-HEqk%kwrW;s2S&{M~P2fC=H1tTXXHx~xUAZ(|L z*u!1^6N#`!FCg?8J=F{6Qg>sTsbd*XN70NAwP@7fnTQ6I{&&(pcZSG<(B?Q21h90d zm8;ejy1`z51A$c5a*Nv6vC2vJRFP7~uOP6xS3g@KdA8JWBsrC337hj9P|OJ=r>5@V zj+EzZ#)q3PnIH*_y-rw$8PQtw&%4~vkOK< z<-|eCL^zT;wcfkFupVx8r%-@G;qVuiOMG5jdUsFo%P_>iL}Jx4Q=bL_>Xye9@_h+H zGvD&RdWOts17K{98cE^79`j8Y1>E^s$`+E=8= zZ0mCLx8YFORqrD&$t$qdYwEdW^=}MO>UJ{FhOxG0;R5Q7m$CX1wGmB)nS9y83 zmHBUOug!-__BolpVhm1M`g zq1dkaBwgpP`Ob>fNjGB=W~*ClQf67YC7rIj1$aIK_MWc7x5k0EV)<*ERkKun%XM<; z*NeMPYQm)1ai{KY=~!Rkclepw&I*VsLgMlwm@zg7TFXow&ATC?l-Zp0_?@b%YCbGj zK7{*@LmujQh_J&*2(4Nhd=~)^+;Rrp5C-Rknx+v8=`mX%AH2KvTJ?Nn>u%l!jA)Bw zwu)9yI)QOFi8Ebslb)U)C8SnLoMi1IIy*Z#A$9C&5@$CtxOe>YBTx0}+duZ}zb9cI z>cOK7t_AYD)WwT$#~g>40G08b^Nas`(b!4x(m3Lx7yXj4SkY# z{WTUUxEGzgUFDAg;cvl|xWv`_NBi;?+)LB2E^f&kNa{?!1fqC&yTu;`vX{m9cccol zEXE{-_TSomS&aWZCrkX#vKaq3sQ*(amrr9-rvcF&wtO1@#<7fBK8=6JmRL5bf8$J~ zTsEqI%f?+cs{ivS{BaO0`^Nv_-z`1_7?yqG-;l*+-+1xv`H!u(9OC+q30gRt%OS4c zF(IgzLtMXMpDstLf5WW?To;U^ImAUY-0;IBU3>^Ehq!)27MDX@q_z>!J+~a< zT4+)IhYni~as7r{4G7fbyzy_y;&O=VH{5D+%Hz zMYFja;`$8}Vg+hB#IR z@MVtpKD!bP*tI|dfd~!KU$&K+nyd#E(7lPcQVh+f06wX}&+ADKA~NkdSz%B1d@u=U zv9vmdvb}xa0twu>b|yb}k*KP(&z z=Gpa4;##a+#KG)K+=%>iJdYBM3H)aizwrm|G;G@U=e0>G-z6V)3x<51m$X7$;^qe+ zYY*ZImt=|~_0g0tWU{Nog^<)e|C{O^6t0*Zs*ha$<1(UaPYpv}(Mp7c_P;g-IpvWx z+i*ux_bu#Py2RWp{)vIy6@z-a#F;_*^?I8*QTj%wnEq%#Qf|YM-}U^HiK;xHNnZ8o zp48&+SR`a5f5K67qNu2u|JF3W^ZL+pd6dh7OLXi0yhWA;_ZLNCS#TGgQApRQ>Wq{a*`I zeHpeEpq!-*PR_lp+e;>WLo7}L4~*pt63bqgl+ z`lh?Oi=Vdmi%1QYffJKQsg1$z`=hkGD@Jf7$pd+bna8bwocl@%8d9|XOHQ9AdF%FH zT*t*+{|QqtWZ!q5#vGn9&wqDYr?cc*|#4&B25igZfX zz+H3F``vS&=jz{AA7D?c*?X_`%lCcPyi!(_zD#t32n!4AvaHM_RV=Jaa#&c{i3AtH zGi8jEVc>y@<->={)(@p0+S}MWsW}*%Kp$B;JJ=X|DDz-pK_Y!#m&&y%U-{gunVAZ^ zLQ6x#{pw-V8=^Xa3i3ye1R5M1MR$um)?{jTIJ|b_u7Q(G#|6Mfv*%F=F z&IN~MZ|n=%Pp@S}ljwn2$2F0Cs7!nr3)}9(+$MM&4b_%4Q&7NS0mlSbc-U95E`TF! z@E;5N1{U5Q$5>d8v8n$#R>g+=^&T87tRPD)+`rzV3;tsMy#_yE^k083ym^6z4<20w zKhIKe{(ko*xzr1PA7dwi*RUki9?HssziK8-NaB*Z4X`CQ|t_AnQbn>R5h`sd%D*9mpE{P#?D&VSt&xIs?LE1Y*ZxH$i7n2V*^ z|795Fl|P65abJI)?mp(jgp@7ap*Gr&EN#J5gG&?Txho)e|Bv(hA20oTrGF09aE3ZP zw6_H#T}1y~tiJ~T_~QQ@_{TYQ{ypbCKE5AM`NJzejKti7kSf&K-Uf!5Lk&Ai7g6r} zod5Oo{~V?B?=aE3_wM~Q=*MUO=Lqfp9P#6`|8so3W6Y(A-u>$gKR)-@`|opN z*8T@u_|wq-cotZiDA9e+f2>xNh--#n6bnlnOZJh3x;yq7if~F}=&b$w^C>dPOxfpe z$PkY+UlKzLa&DRY{(#CpBcarq=y$a=iC0mNz7$_Ax}tiOTV4IuSFVU-VdMVfuT*WKD{KaAZmiVLf91@$a?ZrRbibu!4BB{(|Hy zAw2TgLzWzUGo^NT-x^wrW-QsHOkiW=YpnuJ{wL?=G7Y5RhjTk}v#<^}gXgPOpB zD^R=z*MB8$kV%2jtxI>=e`Rn+A#h^LdTZ^wzY;qjp-!t%FY$Px^;cm&akNQ1WE-+v+4 ziyMRN#1Tq2bn{mRPl9ZmR8{|i{NbCs}!!cLzUe|I!Hk6yJMZ}Zu4zQ+!NA0f+}6ctC^u1m@4-E8K~-Fs#IJ=DZbM8pA%&gYPU9S^l4aPu zRxzZQrI5h4u$-O3_m)XvTiU+-?2cMitWLRE-11PieL3t&izKshm5olh#lTG-+sS)F z6_#phdFr_xt<^|7VYMQC!J$fPt@0-=IL=*nvLAi6&rjY!)g$NB+gGT}6H5y<1Lvck z_%HEi;yx@{{;3(ft@NZfQE*|ajkIs)h1k}I3m!!YUBT_NZi#|N-`=X#5-cQ1;Sh}* zRa(8v)h>OSJZc4Im#@twnI*esu*A5n$IxpX8nX?iJ>mOYd$#+l9y^eQws5Y;uwF%`ZMxBh#XA4EwM8B9D3L1c=r`?u~u=iitCh?kq1S&Ddx!*n(jbLI zfq|vDXf-8~kwn)?%P*-IJNy0Ni)ZK+h*47mm5@u0;Nfhb!aEiX`8aN9&+*7(HPwZXBH7yjKi03o3M7sn&t!Z_k>{}+Y&Bg;h z-?O9aqkW`3;#=oiM3UPy6}3LH)I@ry+1FS265fpK`sB!3SvSW*Fl!N)G@VCAWZ1%8 z-!pH
6}=*THP@%1N@)%N!LQ_f1|uIsux-`nXE=OLw@~ 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≀g};t{ecq09O$sIg9E^aG%`S@kP&{XJ*NT}&}f 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 zny literal 0 HcmV?d00001 diff --git a/src/pages/tutorials/admin/custom-boolean-field-attribute.md b/src/pages/tutorials/admin/custom-boolean-field-attribute.md new file mode 100644 index 000000000..f2ceff319 --- /dev/null +++ b/src/pages/tutorials/admin/custom-boolean-field-attribute.md @@ -0,0 +1,419 @@ +--- +title: Add a Custom boolean Field Attribute | Commerce PHP Extensions +description: Follow this tutorial to create a custom boolean field attribute for Adobe Commerce or Magento Open Source. +contributor_name: Magesh TM +contributor_link: https://github.com/mtmmahi +keywords: + - Extensions +--- + +# Add a custom boolean attribute + +This tutorial describes how a developer can create a custom boolean (Yes/No) attribute for the Customer entity using code. This will reflect in both the [Customer Grid](https://experienceleague.adobe.com/en/docs/commerce-admin/customers/customer-accounts/manage/manage-account) and the [Customer Form](https://experienceleague.adobe.com/en/docs/commerce-admin/customers/customer-accounts/manage/update-account) in the Admin. + +This Customer attribute will be used to store a simple Yes/No flag on a customer record, as an example. It will be created as an EAV attribute in a data patch. The EAV model allows a developer to add custom functionality to the entities without modifying the core databases and schemas. Data patches are run just once, so this code will create the custom attribute and will never run again, which could cause issues. This tutorial also implements `PatchRevertableInterface`, which allows the attribute to be cleanly removed by running `bin/magento setup:rollback`. + +## Code + +### Create the data patch class + +Create a data patch class called `AddCustomerAttributeBoolean` under the `\ExampleCorp\Customer\Setup\Patch\Data` namespace. This makes the application execute the data patch automatically when `bin/magento setup:upgrade` is run. This class implements both `\Magento\Framework\Setup\Patch\DataPatchInterface` and `\Magento\Framework\Setup\Patch\PatchRevertableInterface`. Adding the revertable interface requires implementing a `revert()` method that removes the attribute when the patch is rolled back. + +```php +moduleDataSetup = $moduleDataSetup; + $this->customerSetupFactory = $customerSetupFactory; + $this->attributeResource = $attributeResource; + $this->logger = $logger; +} +``` + +### Implement the apply method + +There are five steps in developing a data patch. All the steps below are written inside the `apply` method. + +1. Starting and ending the setup execution. This turns off foreign key checks and sets the SQL mode. + + ```php + $this->moduleDataSetup->getConnection()->startSetup(); + + /* + Attribute creation code must be run between these two lines + to ensure that the attribute is created smoothly. + */ + + $this->moduleDataSetup->getConnection()->endSetup(); + ``` + +1. Add the boolean customer attribute with the required settings. + + Boolean attributes are stored as integers (`0` for No, `1` for Yes). Set `type` to `int`, `input` to `boolean`, and assign the built-in `Boolean` source model, which provides the Yes/No option list. + + The third parameter for `addAttribute` is an array of settings required to configure the attribute. Passing an empty array uses all the default values for each possible setting. To keep the code to a minimum, just declare the settings needing to be overridden and the rest of the settings will be used from the defaults. + + The `\Magento\Customer\Api\CustomerMetadataInterface` interface contains constants like the customer entity's code and the default attribute set code, which can be referenced. + + ```php + /** @var CustomerSetup $customerSetup */ + $customerSetup = $this->customerSetupFactory->create(['setup' => $this->moduleDataSetup]); + + $customerSetup->addAttribute( + CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, // entity type code + 'custom_boolean_attribute', // unique attribute code + [ + 'label' => 'Custom Boolean Attribute', + 'type' => 'int', + 'input' => 'boolean', + 'source' => \Magento\Eav\Model\Entity\Attribute\Source\Boolean::class, + 'required' => false, + 'position' => 333, + 'system' => false, + 'user_defined' => true, + 'is_used_in_grid' => true, + 'is_visible_in_grid' => true, + 'is_filterable_in_grid' => true, + 'is_searchable_in_grid' => false, + ] + ); + ``` + + | Setting Key | Description | + | --- | --- | + | `label` | `Custom Boolean Attribute` - Label for displaying the attribute value | + | `type` | `int` - Stored as an integer in the database (`0` or `1`) | + | `input` | `boolean` - Renders as a Yes/No select in the customer form | + | `source` | Provides the Yes/No option list for the boolean input | + | `required` | `false` - Attribute will be an optional field in the customer form | + | `position` | `333` - Sort order in the customer form | + | `system` | `false` - Not a system-defined attribute | + | `user_defined` | `true` - A user-defined attribute | + | `is_used_in_grid` | `true` - Ready for use in the customer grid | + | `is_visible_in_grid` | `true` - Visible in the customer grid | + | `is_filterable_in_grid` | `true` - Filterable in the customer grid | + | `is_searchable_in_grid` | `false` - Not searchable in the customer grid (boolean fields are filtered, not searched) | + +1. Add attribute to an attribute set and group. + + There is only one attribute set and group for the customer entity. The default attribute set ID is a constant defined in the `CustomerMetadataInterface` interface and setting the attribute group ID to null makes the application use the default attribute group ID for the customer entity. + + ```php + $customerSetup->addAttributeToSet( + CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, // entity type code + CustomerMetadataInterface::ATTRIBUTE_SET_ID_CUSTOMER, // attribute set ID + null, // attribute group ID + 'custom_boolean_attribute' // unique attribute code + ); + ``` + +1. Make the attribute visible in the customer form. + + ```php + // Get the newly created attribute's model + $attribute = $customerSetup->getEavConfig() + ->getAttribute(CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, 'custom_boolean_attribute'); + + // Make attribute visible in Admin customer form and storefront forms + $attribute->setData('used_in_forms', [ + 'adminhtml_customer', + 'customer_account_create', + 'customer_account_edit', + ]); + + // Save modified attribute model using its resource model + $this->attributeResource->save($attribute); + ``` + + Unlike the text field attribute, which is visible only in the Admin, the boolean attribute is also registered for the storefront registration and account edit forms. Adjust the `used_in_forms` values to match the visibility requirements of your project. + +1. Gracefully handle exceptions. + + ```php + try { + // All the code inside the apply method goes into the try block. + } catch (Exception $exception) { + $this->logger->error($exception->getMessage()); + } + ``` + +### Implement the revert method + +Because this class implements `PatchRevertableInterface`, it must also define a `revert()` method. This method is called when `bin/magento setup:rollback` targets this patch and removes the attribute from the system. + +```php +public function revert(): void +{ + $this->moduleDataSetup->getConnection()->startSetup(); + + /** @var CustomerSetup $customerSetup */ + $customerSetup = $this->customerSetupFactory->create(['setup' => $this->moduleDataSetup]); + + try { + $customerSetup->removeAttribute( + CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, + 'custom_boolean_attribute' + ); + } catch (Exception $e) { + $this->logger->error($e->getMessage()); + } + + $this->moduleDataSetup->getConnection()->endSetup(); +} +``` + +### Implement rest of the interface + +This data patch does not have any other patch as a dependency, and this data patch was not renamed earlier, so both `getDependencies` and `getAliases` can return an empty array. + +```php +public static function getDependencies(): array +{ + return []; +} + +public function getAliases(): array +{ + return []; +} +``` + +### Execute the data patch + +Run `bin/magento setup:upgrade` from the project root to execute the newly added data patch. + +- The attribute is created in the customer form under the _Account Information_ section. + + ![Custom attribute in the customer form](../../images/tutorials/custom-attribute-customer-form.png) + +- The attribute is displayed in the customer grid and can be filtered using a Yes/No dropdown. + + ![Custom attribute in the customer grid](../../images/tutorials/custom-attribute-customer-grid.png) + +To remove the attribute, run `bin/magento setup:rollback` and target this patch. The `revert()` method will execute and delete the attribute from the system. + +### Code reference + +```php +moduleDataSetup = $moduleDataSetup; + $this->customerSetupFactory = $customerSetupFactory; + $this->attributeResource = $attributeResource; + $this->logger = $logger; + } + + /** + * Get array of patches that have to be executed prior to this. + * + * @return string[] + */ + public static function getDependencies(): array + { + return []; + } + + /** + * Get aliases (previous names) for the patch. + * + * @return string[] + */ + public function getAliases(): array + { + return []; + } + + /** + * Run code inside patch + */ + public function apply(): void + { + // Start setup + $this->moduleDataSetup->getConnection()->startSetup(); + + /** @var CustomerSetup $customerSetup */ + $customerSetup = $this->customerSetupFactory->create(['setup' => $this->moduleDataSetup]); + + try { + // Add customer attribute with settings + $customerSetup->addAttribute( + CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, + 'custom_boolean_attribute', + [ + 'label' => 'Custom Boolean Attribute', + 'type' => 'int', + 'input' => 'boolean', + 'source' => Boolean::class, + 'required' => false, + 'position' => 333, + 'system' => false, + 'user_defined' => true, + 'is_used_in_grid' => true, + 'is_visible_in_grid' => true, + 'is_filterable_in_grid' => true, + 'is_searchable_in_grid' => false, + ] + ); + + // Add attribute to default attribute set and group + $customerSetup->addAttributeToSet( + CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, + CustomerMetadataInterface::ATTRIBUTE_SET_ID_CUSTOMER, + null, + 'custom_boolean_attribute' + ); + + // Get the newly created attribute's model + $attribute = $customerSetup->getEavConfig() + ->getAttribute(CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, 'custom_boolean_attribute'); + + // Make attribute visible in Admin customer form and storefront forms + $attribute->setData('used_in_forms', [ + 'adminhtml_customer', + 'customer_account_create', + 'customer_account_edit', + ]); + + // Save attribute using its resource model + $this->attributeResource->save($attribute); + } catch (Exception $e) { + $this->logger->error($e->getMessage()); + } + + // End setup + $this->moduleDataSetup->getConnection()->endSetup(); + } + + /** + * Rollback all changes, done by this patch + */ + public function revert(): void + { + // Start setup + $this->moduleDataSetup->getConnection()->startSetup(); + + /** @var CustomerSetup $customerSetup */ + $customerSetup = $this->customerSetupFactory->create(['setup' => $this->moduleDataSetup]); + + try { + $customerSetup->removeAttribute( + CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, + 'custom_boolean_attribute' + ); + } catch (Exception $e) { + $this->logger->error($e->getMessage()); + } + + // End setup + $this->moduleDataSetup->getConnection()->endSetup(); + } +} +``` diff --git a/src/pages/tutorials/admin/custom-dropdown-field-attribute.md b/src/pages/tutorials/admin/custom-dropdown-field-attribute.md new file mode 100644 index 000000000..efa944a1c --- /dev/null +++ b/src/pages/tutorials/admin/custom-dropdown-field-attribute.md @@ -0,0 +1,412 @@ +--- +title: Add a Custom dropdown Field Attribute | Commerce PHP Extensions +description: Follow this tutorial to create a custom dropdown field attribute for Adobe Commerce or Magento Open Source. +contributor_name: Magesh TM +contributor_link: https://github.com/mtmmahi +keywords: + - Extensions +--- + +# Add a custom dropdown attribute + +This tutorial describes how a developer can create a custom dropdown (select) attribute for the Customer entity using code. This will reflect in both the [Customer Grid](https://experienceleague.adobe.com/en/docs/commerce-admin/customers/customer-accounts/manage/manage-account) and the [Customer Form](https://experienceleague.adobe.com/en/docs/commerce-admin/customers/customer-accounts/manage/update-account) in the Admin. + +Use a select attribute when you want administrators (and optionally customers) to choose a value from a controlled set of options — for example, a customer tier (Silver/Gold/Platinum) or an internal segmentation flag. The attribute will be created as an EAV attribute in a data patch. This tutorial also implements `PatchRevertableInterface`, which allows the attribute to be cleanly removed by running `bin/magento setup:rollback`. + +## Code + +### Create the data patch class + +Create a data patch class called `AddCustomerAttributeOptions` under the `\ExampleCorp\Customer\Setup\Patch\Data` namespace. This makes the application execute the data patch automatically when `bin/magento setup:upgrade` is run. Unlike the text field and boolean attribute tutorials, this class implements both `\Magento\Framework\Setup\Patch\DataPatchInterface` and `\Magento\Framework\Setup\Patch\PatchRevertableInterface`. Adding the revertable interface requires implementing a `revert()` method that removes the attribute when the patch is rolled back. + +```php +moduleDataSetup = $moduleDataSetup; + $this->customerSetupFactory = $customerSetupFactory; + $this->attributeResource = $attributeResource; + $this->logger = $logger; +} +``` + +### Implement the apply method + +There are five steps in developing a data patch. All the steps below are written inside the `apply` method. + +1. Starting and ending the setup execution. This turns off foreign key checks and sets the SQL mode. + + ```php + $this->moduleDataSetup->getConnection()->startSetup(); + + /* + Attribute creation code must be run between these two lines + to ensure that the attribute is created smoothly. + */ + + $this->moduleDataSetup->getConnection()->endSetup(); + ``` + +1. Add the dropdown customer attribute with the required settings. + + Dropdown attributes store the selected option's ID as an integer. Set `input` to `select` and assign a source model that provides the option list. The built-in `Table` source model reads options from the `eav_attribute_option` and `eav_attribute_option_value` tables, which can be managed through the Admin or populated programmatically. To provide a fixed, code-defined set of options, replace `Table::class` with a custom source model that implements `toOptionArray()`. + + ```php + /** @var CustomerSetup $customerSetup */ + $customerSetup = $this->customerSetupFactory->create(['setup' => $this->moduleDataSetup]); + + $customerSetup->addAttribute( + CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, // entity type code + 'custom_options', // unique attribute code + [ + 'label' => 'Customer Custom Attribute Options', + 'type' => 'int', + 'input' => 'select', + 'source' => \Magento\Eav\Model\Entity\Attribute\Source\Table::class, + 'required' => false, + 'position' => 444, + 'system' => false, + 'user_defined' => true, + 'is_used_in_grid' => true, + 'is_visible_in_grid' => true, + 'is_filterable_in_grid' => true, + 'is_searchable_in_grid' => false, + ] + ); + ``` + + | Setting Key | Description | + | --- | --- | + | `label` | `Customer Custom Attribute Options` - Label for displaying the attribute value | + | `type` | `int` - Stores the selected option ID as an integer | + | `input` | `select` - Renders as a dropdown in the customer form | + | `source` | Provides the list of selectable options | + | `required` | `false` - Attribute will be an optional field in the customer form | + | `position` | `444` - Sort order in the customer form | + | `system` | `false` - Not a system-defined attribute | + | `user_defined` | `true` - A user-defined attribute | + | `is_used_in_grid` | `true` - Ready for use in the customer grid | + | `is_visible_in_grid` | `true` - Visible in the customer grid | + | `is_filterable_in_grid` | `true` - Filterable in the customer grid | + | `is_searchable_in_grid` | `false` - Not searchable in the customer grid (dropdown fields are filtered by option, not free-text searched) | + +1. Add attribute to an attribute set and group. + + There is only one attribute set and group for the customer entity. The default attribute set ID is a constant defined in the `CustomerMetadataInterface` interface and setting the attribute group ID to null makes the application use the default attribute group ID for the customer entity. + + ```php + $customerSetup->addAttributeToSet( + CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, // entity type code + CustomerMetadataInterface::ATTRIBUTE_SET_ID_CUSTOMER, // attribute set ID + null, // attribute group ID + 'custom_options' // unique attribute code + ); + ``` + +1. Make the attribute visible in the customer form. + + ```php + // Get the newly created attribute's model + $attribute = $customerSetup->getEavConfig() + ->getAttribute(CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, 'custom_options'); + + // Make attribute visible in Admin customer form and storefront forms + $attribute->setData('used_in_forms', [ + 'adminhtml_customer', + 'customer_account_create', + 'customer_account_edit', + ]); + + // Save modified attribute model using its resource model + $this->attributeResource->save($attribute); + ``` + +1. Gracefully handle exceptions. + + ```php + try { + // All the code inside the apply method goes into the try block. + } catch (Exception $exception) { + $this->logger->error($exception->getMessage()); + } + ``` + +### Implement the revert method + +Because this class implements `PatchRevertableInterface`, it must also define a `revert()` method. This method is called when `bin/magento setup:rollback` targets this patch and removes the attribute from the system. + +```php +public function revert(): void +{ + $this->moduleDataSetup->getConnection()->startSetup(); + + /** @var CustomerSetup $customerSetup */ + $customerSetup = $this->customerSetupFactory->create(['setup' => $this->moduleDataSetup]); + + try { + $customerSetup->removeAttribute( + CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, + 'custom_options' + ); + } catch (Exception $e) { + $this->logger->error($e->getMessage()); + } + + $this->moduleDataSetup->getConnection()->endSetup(); +} +``` + +### Implement rest of the interface + +This data patch does not have any other patch as a dependency, and this data patch was not renamed earlier, so both `getDependencies` and `getAliases` can return an empty array. + +```php +public static function getDependencies(): array +{ + return []; +} + +public function getAliases(): array +{ + return []; +} +``` + +### Execute the data patch + +Run `bin/magento setup:upgrade` from the project root to execute the newly added data patch. + +- The attribute is created in the customer form under the _Account Information_ section. + + ![Custom attribute in the customer form](../../images/tutorials/custom-attribute-customer-form.png) + +- The attribute is displayed in the customer grid and can be filtered using a dropdown of available options. + + ![Custom attribute in the customer grid](../../images/tutorials/custom-attribute-customer-grid.png) + +To remove the attribute, run `bin/magento setup:rollback` and target this patch. The `revert()` method will execute and delete the attribute from the system. + +### Code reference + +```php +moduleDataSetup = $moduleDataSetup; + $this->customerSetupFactory = $customerSetupFactory; + $this->attributeResource = $attributeResource; + $this->logger = $logger; + } + + /** + * Get array of patches that have to be executed prior to this. + * + * @return string[] + */ + public static function getDependencies(): array + { + return []; + } + + /** + * Get aliases (previous names) for the patch. + * + * @return string[] + */ + public function getAliases(): array + { + return []; + } + + /** + * Run code inside patch + */ + public function apply(): void + { + // Start setup + $this->moduleDataSetup->getConnection()->startSetup(); + + /** @var CustomerSetup $customerSetup */ + $customerSetup = $this->customerSetupFactory->create(['setup' => $this->moduleDataSetup]); + + try { + // Add customer attribute with settings + $customerSetup->addAttribute( + CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, + 'custom_options', + [ + 'label' => 'Customer Custom Attribute Options', + 'type' => 'int', + 'input' => 'select', + 'source' => Table::class, + 'required' => false, + 'position' => 444, + 'system' => false, + 'user_defined' => true, + 'is_used_in_grid' => true, + 'is_visible_in_grid' => true, + 'is_filterable_in_grid' => true, + 'is_searchable_in_grid' => false, + ] + ); + + // Add attribute to default attribute set and group + $customerSetup->addAttributeToSet( + CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, + CustomerMetadataInterface::ATTRIBUTE_SET_ID_CUSTOMER, + null, + 'custom_options' + ); + + // Get the newly created attribute's model + $attribute = $customerSetup->getEavConfig() + ->getAttribute(CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, 'custom_options'); + + // Make attribute visible in Admin customer form and storefront forms + $attribute->setData('used_in_forms', [ + 'adminhtml_customer', + 'customer_account_create', + 'customer_account_edit', + ]); + + // Save attribute using its resource model + $this->attributeResource->save($attribute); + } catch (Exception $e) { + $this->logger->error($e->getMessage()); + } + + // End setup + $this->moduleDataSetup->getConnection()->endSetup(); + } + + /** + * Rollback all changes, done by this patch + */ + public function revert(): void + { + // Start setup + $this->moduleDataSetup->getConnection()->startSetup(); + + /** @var CustomerSetup $customerSetup */ + $customerSetup = $this->customerSetupFactory->create(['setup' => $this->moduleDataSetup]); + + try { + $customerSetup->removeAttribute( + CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, + 'custom_options' + ); + } catch (Exception $e) { + $this->logger->error($e->getMessage()); + } + + // End setup + $this->moduleDataSetup->getConnection()->endSetup(); + } +} +``` diff --git a/src/pages/tutorials/admin/custom-multiselect-field-attribute.md b/src/pages/tutorials/admin/custom-multiselect-field-attribute.md new file mode 100644 index 000000000..b9aebb334 --- /dev/null +++ b/src/pages/tutorials/admin/custom-multiselect-field-attribute.md @@ -0,0 +1,416 @@ +--- +title: Add a Custom boolean Field Attribute | Commerce PHP Extensions +description: Follow this tutorial to create a custom boolean field attribute for Adobe Commerce or Magento Open Source. +contributor_name: Magesh TM +contributor_link: https://github.com/mtmmahi +keywords: + - Extensions +--- + +# Add a custom multiselect attribute + +This tutorial describes how a developer can create a custom multiselect attribute for the Customer entity using code. This will reflect in both the [Customer Grid](https://experienceleague.adobe.com/en/docs/commerce-admin/customers/customer-accounts/manage/manage-account) and the [Customer Form](https://experienceleague.adobe.com/en/docs/commerce-admin/customers/customer-accounts/manage/update-account) in the Admin. + +Use a multiselect attribute when you need to store multiple simultaneous values for a single customer field — for example, eligible shipping methods, allowed sales channels, or subscription preferences. Unlike the [dropdown attribute](custom-dropdown-attribute.md), which stores a single selected option ID as an integer, a multiselect attribute stores a comma-separated list of option IDs as a `varchar` value, handled by the `ArrayBackend` backend model. This tutorial also implements `PatchRevertableInterface`, which allows the attribute to be cleanly removed by running `bin/magento setup:rollback`. + +## Code + +### Create the data patch class + +Create a data patch class called `AddCustomerAttributeMultipleOptions` under the `\ExampleCorp\Customer\Setup\Patch\Data` namespace. This makes the application execute the data patch automatically when `bin/magento setup:upgrade` is run. This class implements both `\Magento\Framework\Setup\Patch\DataPatchInterface` and `\Magento\Framework\Setup\Patch\PatchRevertableInterface`. + +```php +moduleDataSetup = $moduleDataSetup; + $this->customerSetupFactory = $customerSetupFactory; + $this->attributeResource = $attributeResource; + $this->logger = $logger; +} +``` + +### Implement the apply method + +There are five steps in developing a data patch. All the steps below are written inside the `apply` method. + +1. Starting and ending the setup execution. This turns off foreign key checks and sets the SQL mode. + + ```php + $this->moduleDataSetup->getConnection()->startSetup(); + + /* + Attribute creation code must be run between these two lines + to ensure that the attribute is created smoothly. + */ + + $this->moduleDataSetup->getConnection()->endSetup(); + ``` + +1. Add the multiselect customer attribute with the required settings. + + Multiselect attributes differ from dropdown attributes in two important ways. First, `type` is set to `varchar` rather than `int`, because the stored value is a comma-separated string of selected option IDs (for example, `3,7,12`) rather than a single integer. Second, a `backend` model must be specified. `ArrayBackend` handles serializing the array of selected IDs into that comma-separated string on save, and deserializing it back to an array on load. Without it, the multiselect will not persist correctly. + + ```php + /** @var CustomerSetup $customerSetup */ + $customerSetup = $this->customerSetupFactory->create(['setup' => $this->moduleDataSetup]); + + $customerSetup->addAttribute( + CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, // entity type code + 'custom_multi_options', // unique attribute code + [ + 'label' => 'Customer Custom Attribute MultiOptions', + 'type' => 'varchar', + 'input' => 'multiselect', + 'source' => \Magento\Eav\Model\Entity\Attribute\Source\Table::class, + 'backend' => \Magento\Eav\Model\Entity\Attribute\Backend\ArrayBackend::class, + 'required' => false, + 'position' => 555, + 'system' => false, + 'user_defined' => true, + 'is_used_in_grid' => true, + 'is_visible_in_grid' => true, + 'is_filterable_in_grid' => true, + 'is_searchable_in_grid' => false, + ] + ); + ``` + + | Setting Key | Description | + | --- | --- | + | `label` | `Customer Custom Attribute MultiOptions` - Label for displaying the attribute value | + | `type` | `varchar` - Stores selected option IDs as a comma-separated string | + | `input` | `multiselect` - Renders as a multiselect list in the customer form | + | `source` | Provides the list of selectable options | + | `backend` | `ArrayBackend` - Serializes and deserializes the comma-separated option ID string | + | `required` | `false` - Attribute will be an optional field in the customer form | + | `position` | `555` - Sort order in the customer form | + | `system` | `false` - Not a system-defined attribute | + | `user_defined` | `true` - A user-defined attribute | + | `is_used_in_grid` | `true` - Ready for use in the customer grid | + | `is_visible_in_grid` | `true` - Visible in the customer grid | + | `is_filterable_in_grid` | `true` - Filterable in the customer grid | + | `is_searchable_in_grid` | `false` - Not searchable in the customer grid (multiselect fields are filtered by option, not free-text searched) | + +1. Add attribute to an attribute set and group. + + There is only one attribute set and group for the customer entity. The default attribute set ID is a constant defined in the `CustomerMetadataInterface` interface and setting the attribute group ID to null makes the application use the default attribute group ID for the customer entity. + + ```php + $customerSetup->addAttributeToSet( + CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, // entity type code + CustomerMetadataInterface::ATTRIBUTE_SET_ID_CUSTOMER, // attribute set ID + null, // attribute group ID + 'custom_multi_options' // unique attribute code + ); + ``` + +1. Make the attribute visible in the customer form. + + ```php + // Get the newly created attribute's model + $attribute = $customerSetup->getEavConfig() + ->getAttribute(CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, 'custom_multi_options'); + + // Make attribute visible in Admin customer form and storefront forms + $attribute->setData('used_in_forms', [ + 'adminhtml_customer', + 'customer_account_create', + 'customer_account_edit', + ]); + + // Save modified attribute model using its resource model + $this->attributeResource->save($attribute); + ``` + +1. Gracefully handle exceptions. + + ```php + try { + // All the code inside the apply method goes into the try block. + } catch (Exception $exception) { + $this->logger->error($exception->getMessage()); + } + ``` + +### Implement the revert method + +Because this class implements `PatchRevertableInterface`, it must also define a `revert()` method. This method is called when `bin/magento setup:rollback` targets this patch and removes the attribute from the system. + +```php +public function revert(): void +{ + $this->moduleDataSetup->getConnection()->startSetup(); + + /** @var CustomerSetup $customerSetup */ + $customerSetup = $this->customerSetupFactory->create(['setup' => $this->moduleDataSetup]); + + try { + $customerSetup->removeAttribute( + CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, + 'custom_multi_options' + ); + } catch (Exception $e) { + $this->logger->error($e->getMessage()); + } + + $this->moduleDataSetup->getConnection()->endSetup(); +} +``` + +### Implement rest of the interface + +This data patch does not have any other patch as a dependency, and this data patch was not renamed earlier, so both `getDependencies` and `getAliases` can return an empty array. + +```php +public static function getDependencies(): array +{ + return []; +} + +public function getAliases(): array +{ + return []; +} +``` + +### Execute the data patch + +Run `bin/magento setup:upgrade` from the project root to execute the newly added data patch. + +- The attribute is created in the customer form under the _Account Information_ section. + + ![Custom attribute in the customer form](../../images/tutorials/custom-attribute-customer-form.png) + +- The attribute is displayed in the customer grid and can be filtered by selecting one or more options. + + ![Custom attribute in the customer grid](../../images/tutorials/custom-attribute-customer-grid.png) + +To remove the attribute, run `bin/magento setup:rollback` and target this patch. The `revert()` method will execute and delete the attribute from the system. + +### Code reference + +```php +moduleDataSetup = $moduleDataSetup; + $this->customerSetupFactory = $customerSetupFactory; + $this->attributeResource = $attributeResource; + $this->logger = $logger; + } + + /** + * Get array of patches that have to be executed prior to this. + * + * @return string[] + */ + public static function getDependencies(): array + { + return []; + } + + /** + * Get aliases (previous names) for the patch. + * + * @return string[] + */ + public function getAliases(): array + { + return []; + } + + /** + * Run code inside patch + */ + public function apply(): void + { + // Start setup + $this->moduleDataSetup->getConnection()->startSetup(); + + /** @var CustomerSetup $customerSetup */ + $customerSetup = $this->customerSetupFactory->create(['setup' => $this->moduleDataSetup]); + + try { + // Add customer attribute with settings + $customerSetup->addAttribute( + CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, + 'custom_multi_options', + [ + 'label' => 'Customer Custom Attribute MultiOptions', + 'type' => 'varchar', + 'input' => 'multiselect', + 'source' => Table::class, + 'backend' => ArrayBackend::class, + 'required' => false, + 'position' => 555, + 'system' => false, + 'user_defined' => true, + 'is_used_in_grid' => true, + 'is_visible_in_grid' => true, + 'is_filterable_in_grid' => true, + 'is_searchable_in_grid' => false, + ] + ); + + // Add attribute to default attribute set and group + $customerSetup->addAttributeToSet( + CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, + CustomerMetadataInterface::ATTRIBUTE_SET_ID_CUSTOMER, + null, + 'custom_multi_options' + ); + + // Get the newly created attribute's model + $attribute = $customerSetup->getEavConfig() + ->getAttribute(CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, 'custom_multi_options'); + + // Make attribute visible in Admin customer form and storefront forms + $attribute->setData('used_in_forms', [ + 'adminhtml_customer', + 'customer_account_create', + 'customer_account_edit', + ]); + + // Save attribute using its resource model + $this->attributeResource->save($attribute); + } catch (Exception $e) { + $this->logger->error($e->getMessage()); + } + + // End setup + $this->moduleDataSetup->getConnection()->endSetup(); + } + + /** + * Rollback all changes, done by this patch + */ + public function revert(): void + { + // Start setup + $this->moduleDataSetup->getConnection()->startSetup(); + + /** @var CustomerSetup $customerSetup */ + $customerSetup = $this->customerSetupFactory->create(['setup' => $this->moduleDataSetup]); + + try { + $customerSetup->removeAttribute( + CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, + 'custom_multi_options' + ); + } catch (Exception $e) { + $this->logger->error($e->getMessage()); + } + + // End setup + $this->moduleDataSetup->getConnection()->endSetup(); + } +} +``` \ No newline at end of file From 2b2997e12a27de6b38a80a6e57936baaa954f800 Mon Sep 17 00:00:00 2001 From: mtm Date: Thu, 23 Apr 2026 21:40:54 +0530 Subject: [PATCH 2/6] Added Table of content record --- src/pages/config.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/pages/config.md b/src/pages/config.md index a2f2ead89..8e413f8b8 100644 --- a/src/pages/config.md +++ b/src/pages/config.md @@ -782,6 +782,10 @@ - [Customize form configuration](/tutorials/admin/custom-product-creation-form/configuration.md) - [Customize using a modifier class](/tutorials/admin/custom-product-creation-form/modifier-class.md) - [Create a text field attribute](/tutorials/admin/custom-text-field-attribute.md) + - [Create a boolean field attribute](/tutorials/admin/custom-boolean-field-attribute.md) + - [Create a dropdown field attribute](/tutorials/admin/custom-dropdown-field-attribute.md) + - [Create a multiselect field attribute](/tutorials/admin/custom-multiselect-field-attribute.md) + - [Frontend development](/tutorials/frontend/index.md) - [Customize checkout](/tutorials/frontend/custom-checkout/index.md) - [Add a new checkout step](/tutorials/frontend/custom-checkout/add-new-step.md) From 1ece9cc95ddafd9bbf023ce0a8dcf47172d16756 Mon Sep 17 00:00:00 2001 From: mtm Date: Fri, 24 Apr 2026 19:21:29 +0530 Subject: [PATCH 3/6] Implemented Reviewer suggestions --- .../admin/custom-boolean-field-attribute.md | 11 +++++------ .../admin/custom-dropdown-field-attribute.md | 6 ++++-- .../admin/custom-multiselect-field-attribute.md | 13 ++++++------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/pages/tutorials/admin/custom-boolean-field-attribute.md b/src/pages/tutorials/admin/custom-boolean-field-attribute.md index f2ceff319..a15eb722c 100644 --- a/src/pages/tutorials/admin/custom-boolean-field-attribute.md +++ b/src/pages/tutorials/admin/custom-boolean-field-attribute.md @@ -1,5 +1,5 @@ --- -title: Add a Custom boolean Field Attribute | Commerce PHP Extensions +title: Add a Custom Boolean Field Attribute | Commerce PHP Extensions description: Follow this tutorial to create a custom boolean field attribute for Adobe Commerce or Magento Open Source. contributor_name: Magesh TM contributor_link: https://github.com/mtmmahi @@ -20,9 +20,6 @@ This Customer attribute will be used to store a simple Yes/No flag on a customer Create a data patch class called `AddCustomerAttributeBoolean` under the `\ExampleCorp\Customer\Setup\Patch\Data` namespace. This makes the application execute the data patch automatically when `bin/magento setup:upgrade` is run. This class implements both `\Magento\Framework\Setup\Patch\DataPatchInterface` and `\Magento\Framework\Setup\Patch\PatchRevertableInterface`. Adding the revertable interface requires implementing a `revert()` method that removes the attribute when the patch is rolled back. ```php -moduleDataSetup->getConnection()->endSetup(); } } -``` \ No newline at end of file +``` From 5bcc8f3a3fc26539e1f660f86454a950e223198b Mon Sep 17 00:00:00 2001 From: mtmmahi <149354867+mtmmahi@users.noreply.github.com> Date: Mon, 27 Apr 2026 18:38:47 +0530 Subject: [PATCH 4/6] Update src/pages/tutorials/admin/custom-boolean-field-attribute.md Co-authored-by: Thiaramus --- src/pages/tutorials/admin/custom-boolean-field-attribute.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/pages/tutorials/admin/custom-boolean-field-attribute.md b/src/pages/tutorials/admin/custom-boolean-field-attribute.md index a15eb722c..ca52adf87 100644 --- a/src/pages/tutorials/admin/custom-boolean-field-attribute.md +++ b/src/pages/tutorials/admin/custom-boolean-field-attribute.md @@ -20,6 +20,9 @@ This Customer attribute will be used to store a simple Yes/No flag on a customer Create a data patch class called `AddCustomerAttributeBoolean` under the `\ExampleCorp\Customer\Setup\Patch\Data` namespace. This makes the application execute the data patch automatically when `bin/magento setup:upgrade` is run. This class implements both `\Magento\Framework\Setup\Patch\DataPatchInterface` and `\Magento\Framework\Setup\Patch\PatchRevertableInterface`. Adding the revertable interface requires implementing a `revert()` method that removes the attribute when the patch is rolled back. ```php + Date: Mon, 27 Apr 2026 18:39:03 +0530 Subject: [PATCH 5/6] Update src/pages/tutorials/admin/custom-boolean-field-attribute.md Co-authored-by: Thiaramus --- src/pages/tutorials/admin/custom-boolean-field-attribute.md | 1 - 1 file changed, 1 deletion(-) diff --git a/src/pages/tutorials/admin/custom-boolean-field-attribute.md b/src/pages/tutorials/admin/custom-boolean-field-attribute.md index ca52adf87..12b47f91f 100644 --- a/src/pages/tutorials/admin/custom-boolean-field-attribute.md +++ b/src/pages/tutorials/admin/custom-boolean-field-attribute.md @@ -64,7 +64,6 @@ The dependencies to the data patch are injected using constructor DI and are lis The factory is stored rather than a single `CustomerSetup` instance, because both `apply()` and `revert()` need to create their own instance. ```php - /** * Constructor * From 5e7ac9f9334215d8967baaa1865614275f5d7f4e Mon Sep 17 00:00:00 2001 From: mtmmahi <149354867+mtmmahi@users.noreply.github.com> Date: Mon, 27 Apr 2026 18:39:14 +0530 Subject: [PATCH 6/6] Update src/pages/tutorials/admin/custom-multiselect-field-attribute.md Co-authored-by: Thiaramus --- src/pages/tutorials/admin/custom-multiselect-field-attribute.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pages/tutorials/admin/custom-multiselect-field-attribute.md b/src/pages/tutorials/admin/custom-multiselect-field-attribute.md index 09caf436f..bb743ea7c 100644 --- a/src/pages/tutorials/admin/custom-multiselect-field-attribute.md +++ b/src/pages/tutorials/admin/custom-multiselect-field-attribute.md @@ -20,6 +20,8 @@ Use a multiselect attribute when you need to store multiple simultaneous values Create a data patch class called `AddCustomerAttributeMultipleOptions` under the `\ExampleCorp\Customer\Setup\Patch\Data` namespace. This makes the application execute the data patch automatically when `bin/magento setup:upgrade` is run. This class implements both `\Magento\Framework\Setup\Patch\DataPatchInterface` and `\Magento\Framework\Setup\Patch\PatchRevertableInterface`. ```php +