From a37623945d29ecfd0267ced8e1f9befc2f45b04f Mon Sep 17 00:00:00 2001 From: yuneng-jiang Date: Thu, 12 Feb 2026 14:34:10 -0800 Subject: [PATCH] migration and build --- ...tellm_proxy_extras-0.4.36-py3-none-any.whl | Bin 0 -> 54409 bytes .../dist/litellm_proxy_extras-0.4.36.tar.gz | Bin 0 -> 24664 bytes .../migration.sql | 33 ++++++++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 litellm-proxy-extras/dist/litellm_proxy_extras-0.4.36-py3-none-any.whl create mode 100644 litellm-proxy-extras/dist/litellm_proxy_extras-0.4.36.tar.gz create mode 100644 litellm-proxy-extras/litellm_proxy_extras/migrations/20260212143306_add_access_group_table/migration.sql diff --git a/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.36-py3-none-any.whl b/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.36-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..c98d9cfcfacfb9b480eb3a2030e8f69f4158dd7e GIT binary patch literal 54409 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
=u=CR&DpzEC7iL~JWAt*82gIk`=`o>e-j+(9> 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

+BdB_6_EcJNB|7llkq+- zz!^O?e;yV zT8)Ge>-@Xa5~Ss|4WlYo_BPx1ME85VDm$6gCAM5Mv`zt6UCh{{Ff6cDS<`9Nk)Fu& zpO?iv!`p4~Zd0<2Z3{PV4Bjc87Sj(e=XzG7En)8MtTLm-gZ3J6n#wxXwf3>+w=UlN zyTPaIt7lzO-&LV8fSCq&28I&=oiy$Huy?s(jte&PfR^r&-sYav<il9HERAcS zKTofTTyxoKq@3^6j1qU>i4Xp|)U9>8uwlBt?>-~>w%ZG?FP{={J*r9T{ck6$7AVWw zDZk8k+Y|Fgw&ISLM&{+G4b@#YX3tH_A8D}n&E#C#(gTc34_NnWH@}uI)%H;6D^$lN z-qTYkSN^2`=*8X9RK@<`w@#VrKMt;@?U>oA_NQa~67{$5%#_aU%RYPKl>)vXP4RAm zdke8-JkIUqCW+0lZhJ09t=WEg^vEZ&VSno=LxTru4%3w5yL8@|Mk&rp5V(Ph|Q!`%A5+5=S{oK z{)(94xs6V#)EeDls?wzJE~kXi8M9~4**#GoB^K|Stl_7xJ+;0hY06GUHNMpRUFd!* z$)@FJm2x*{o#Ap!Wl>J<~b|Z8c$iL zx_icM2S)p8^Ae)wcFKwx?=#L)VJ{c1tjkKOrHk*mVS)cJY?v&5tD~56Zs5zGT*2n2nL$$4&FYaK|ofehdZ11$YyH@sv-l)s= ztgP}wVNW~jQdI7F)AV)RUyZg+EwR~HV>^C&>j&0w_Y|{A%ee<7brsg?=}k`DbH&>6 zxuGgG=5E=?%&M=^tf$%U)kgKRJ={xgR&3O$F$-9&oh%(Rd`aH3jJvGh)~a}_;?A*4 zD#@d81odT}%3qQtYD=F+J?JfW?5M8B{mICe$py&}V!;WXwn=0SW2V_DQq%N*aa$uH7w z=&_Znv=XDAR%F<(Z;+7r*br{2=x-Q4y6?3SJ3xGY#`&dbMY8lQwFm#G%G(l0KbUfE zCn>&Fdy2-XiArvP?5Y*|S8F{yUmrZ;sBN5XyC%>y_JrQoO7SZ)HH^ebm*SlClGL`z zU4K~@vZqCl@%Yv_lex5TH{FYi3^v<~%afVL6mdJvi5tqOazP&YAE(Cr)9u<)8as+Q zLfdHGk?P|!C-pGa?jGqk{EE`L@`BghVe}21Wj@mn*qpN~F4A||nG^MqshjTRbmfsuyC%LmLv7ER!aJ{DGfcgbe0Z94`J9AInbi-+R^?As4<#-CaMXT(Zk+1j>~Yox z6`QwMEek^cV&(xcxXZG)Z-L&q)-ZT#nCh>klo_M)f z%IwP3>m?=o2p7CQ*@=C;Fj`D(Vq3+lqD!i=0o(Kr%f`jVDd^De{PRU+@2sUITfFbr zH*S(~xJ)kAs!(%MI@!5Hc~0k%KYXLtwFSv#Xy^32Rac$td+%lDoP&%EolEnoJT8zf z*t~GGe*W@!pRTugS#m=B`jEqYiOY{B$FFrS_?oC(s~9vR$mz|O1yw?3$Dm{i`OQ3;2i$;SS6wxg5UKQE%fYKrN(PYF1m z%^IWfUYVR;l6?B&-|iPviz@dmPc`a^S6lKhD{EDq^tpWNc9{;Dy6sD--*IpAgC+QXWXjF; zYZ>f{H#5Yvf<20T){?rXES&Owk3+R%@23Tlv5^{;MP}0?`&LC1)V8kbI=xVKoBJkN zw)8!j z)vPX;b(3CXY!A>)Oi@Z&zU^kp?38hOX6MK3>gXRoY*kyPsfEpFN<;t4ZOk>TCy%=I zX5q7*&>8}@?VDVCE1NH<*DJl!SwUU7V14$pv@PSxnqS+UAnNSs+bhwZ^<_o;M$ONi z2e*AVL%HFZtTwB?YVzt+hA~9@tndQ+d1vTGC6wkd(I zORD6EoLv8j#hlLkJI3e7U$e@sy?%Md(+nqj^%rWLx9;3JMwuE@HsP*4!&W)oIOWZ< zZP5~&+6vRnQ&k?H`tvwd>c#e}pU8hrO->xUW7GbJH+GUI&a#>M-v6A>o7+kYRCB}I zzc}nIl}ozVRWGADdJ$!F@uYNTt0SqAmKLvaKK7_Qx?lOhQMuQ$Vw+xl|1dM_(yMxT z<01-JjP$!7$*lZG*NrY%cXX{&oIT5se1^}>R}#>Y!$&M>+5xApxb z-5|HQ<1%G;eJ;Y!?FuMAmKl3r!>pCzxbtdd4$~N?5+9q>)%(&-EV(1^B?UPm_MLyK6&9tJPO| zr+MPTlqHnmx=I@QWQ2WQ49KFnO_Tpb9vn9E?+@v2s6aDC52I4y8_4LLCAg{sG)}RH`LAyI7+&2^v$P!4xVTH3| z2_e1(U?3V&2m@Fi#*_GLMY*hnA}1K9Y22;T~xU~x{`b?YdE4lokBi@-WOIc!}}Wx(Vd z(0T&iOH(qD$8Z?r8{`Gly#J~-jCKJ>re%2zSu%cZbrj8KG0o5?_tB%|S3q;IX>0AWjj&%Hz!@))?X z$LJt3$f1G4_%{pr-^d`*=AUQ;%qs!&`H;Sx1g?Q6hmGW3jOI;%nv}?2$OG!h+*Rx) zN^^&{e&A5MfdyDIhmMF)3mS)QGHwXg$#^1=w)?P{2m>7`F*4|oNEp7Mq1;tNXZZ$! z?%v=?y6Pe4g82yO2ywiiaoEp?f`kJ6oP1t9gpw3lw?NkhT)hHMeoKYO3!K4mvG-pg zAjxGr^mzhM@Z_*t$7A&nfs6+xMgou49zHA$g{TB->%k4j%zGvN8Vo&x;6Oe$7Bmj~ zh6+~0L>%6XNa7n7WR5}DYSH15J*{yOg5fJ*5DiWP;JOpI6x9DBqj)mw->fzMzDfp~ zP2juduZ;oebu7X8ReSWoB(Say))87yLF2IF)rM%DmpDKJJ}}Im3ZgiW;<@C_+^r4) z^+QMpo``)x+YdI zz_?E$kVzz-I|f!Mk1CZXj0;?iem_BSeA$?VU4Y^P#EIy3f}4yP2_l$B0Jk8!-2k65 zOwP~i!mg!WCzgWgW8amf@l&vxCqN?tKkk6I8q;evFkE9XKfWeLg9&dh^WED!X<;@G z>4HSU0dp;vRGJYE3LuCAGbm#GEN2!pZrK_P=A)teKo>L)d%8Ae^RPIf+TsZkh~!En zXYpMjT&q6`hpqQA7NrA>`QQ-I`cG2_BO((xn;@}Cgu*A(o8|*6CEUjk7@58OX$-%g ztqh~qL=7Zo-Gi_8hytMKVg&%Z7f8<#crFo1q8K7_+Cq)$`{02r0O2o~5O{LfZ}qSO zfDM#HCII0r$^%Gw9>`>d`Z5M$brlrr)YYL(#^Af_Y|R!IXF!4MtfJX#kpXs8Aj)Gx z;4M>O{uJ!9*jG(&5X%n9T3*mavzO*Hj9^TWR1R+9ZFI=Kf_(81DA)tTgTOghcQ~U{ z#Zt3jqAW-7H0J;iw{h6-hJu8M!{K<<4q}->3-S#Org=j#7RF=-a{nHDc67C(-V}r3 zbpT~94*?%WjuBReAkvzk4=zxS^r3@Tq<8S(b~Uz6xPb7%`$G5RTIBu1VLzCT*)9d< z!IUo(Fi;}VSX{ZfLA3(Vn_BlP+f%Io;0Ac%HxV?s#u(91fC$@!09?^jzC<&Y1*=}u zBnBpHpd%3}XdL!e9A>j7I5RjDkf8oYW*<^HoyIFJd|6O|b3=d|l^F0mvo%dW3LrY5 zizfBo2^jI1!9@p!NCdrN?imFt9B&Y9U~%hk{t{WmVg_MF6eFWN_9URu0S`ICQ_wi< zV??Zo;JV3-WD0jb;S9t>KGcB=slh|kJ*oOMa`6)i9brQkG!FX$Tz(D2+aM)5+&B^O zCXi8i_fFhhmcKLwB;K)s3Y&@#%m=c=A{hfi zRE%8d8i3?VWJ?kC1JeXE2#~uWnvwXTYKUDVJz?J4uRT5f+zdh>VHi3~S(;*n01^Zg z5|N)Q2afK8`#+<1^oMSE?U7&?*~0{l!+u1;Y8NDKNO*ymNvJQ4Uliw1!DEUfkkND)hfWdKgs1gFy& z^k^D#i3?Gn8OGG)&b{W(PvNh`WK|2m5BnehM0ba7tXL4)dIE_8H3PCL5V>*ghap@9 zSfU`eDQ?{hEYcXi;_{92+=cV1+YOiFPy!w4S#R#g6%yQ9#WwxVksmDq4qI zXmu`JnqhqR|ES81#$&`9wRDL{?VN6D!ke*9c4;+{!C5JHn9Y?FUp9#N6OlR6R1=Tm*RQ|? zefE|6o|3w*&x?I@auO{*hM93IE28}X-G$2XvSM{RjpF*v)w`}$yc5oRSM-2No93k@ zu)m1VVV=ni;0D#ek$76;cqWlJ0IxjBGd)h^Qsjh&PS7YGy`;Ej3z@pke*%5U%fp#` zNi~TVDag24`6{8CA|g)>%6Jc*C0lYaH|oP3TFg@Koa~7wYAwzCr95_Yf+im*xA`ho+@O`;Lu3#`gKn!MNAMsE6 z>c;KyK9WM^s)uZuI>H!UlVAt!#1-M-3=(waitt9<1m_E<)76_UC9P5qkP`vhwhGxp|q&2UqEOp5HgSt&ZznC^8EOb#Qm!@{^ZxUV47^Ivm`i(gX2k0ZyQ!8 z;2ZE+WWTq*XKDJNeXD25@e=zmC+Ed2K2k*f^pQsh)nyU-Gpp0FGjO?&2NV0kFGOVw z)ESAA8RuDKG3}*oCm2(jn!b!%&!IL=iuOq(+0zT$hm&TCQ)K5DOLIOqKi3~IUSm%x z0!;T(RqK?wxu5hJdwsYbRVZnMMIiS(?&pu={C*x^{Z}I*svo)Pdi9C}=U=NH?q9o| zd#6#-bcugiD{h>~PZ=eDV_85Cf*fqoADAah8{(!JE>S4}}0c*>wYzQWC5A>|+@pI^Q3)mOi*~G#+`;$(K zK>)!ch8>Y=c1>p$^6O;N~@cJ^2cOQ2P*)pD6;5&huyS-5~ zq1b>z@YPv*@I=rGL7bSCOPoaJt9ObDI8clt9yI^c))`SEB#oU$Tl^ZH<1#Xs%5jWf z-Jl3+<}R`@>QB|;_CB)~No(-)%>o5)OXYZu-?eg8^ zP0Y`?=BpA$SmvP~6fIq%DA;PEe}YjclK0;H9;9TSUZ?&+_3H}{Z$w4Qc&4BJJ;@1p zuD!VTZ6w*I+hR7f(h;!jYK~Q}F24h|z5%mYs*(hTG_V!tEm}OFs`L;rIDO;UF>kPbU$Zzob*Uk6mXEw8as| zmcJorzL)czNEX)ZdE_@hmk5X=Hy0vLRVp#yeI%-;d4c5NGc=lpLGL z(}dRKrkuxr$bw=JF^AL=RHmRmx62+$q^&8nrzx=(9&lqFtsqCA-h(5^09s4u;DKDxyiyaoc3&4d$2K2IqB(pg<-g{4?8}5yd+3fjY92xP@r%yHO613Hib*W*MTrT)NhNWC$Peg<=+f6 z|J0Rc@Fq+<5<`aMxbrbD3;s&yjlKW*62n_c_{SHkAB!IoiuBB|^vH-*x^GdI28>o6 zdF+;MM;R!uoh2kKi%@keQZdxl`+Z&v&1$i3l5#!~(Td$M6&=B{h@{CPbI%z`QnlWC z90qw-u;~q`NWKr^=bq_~OS>F)g@6d(PPY32Z~yVxwT)h;JIPeqsQjTdt?gKGmaD); zVgA4xi>qRu9wI?YZhXUu5m9`=|C5>EC<(iysbp73g<7*X*EvTzNltPY1UA~cZ+Gxof|yz< z61v7*B<*M9BPo4lN-MFmyj;+GY$uy}Vh0zgIBBVGflGLAGzroC4F2aMW%e&Q&I(U; zwne-tqS~he3{iarE3J%=8QtpS83jfGkrE$kMs)M*g4KSguzqADM0@SgY}=9bV}*Aa zPsM36&k0HOGOC*d&SxKuEotIJ+nmP`-2i= z3=PlyCBHZxqR&bTESx{C!G$im@6rm7vUmb_JM!+=KjrFKHDF4=6e18!d)n4-%F`px zkBe~kJNrzr6ZfuPQa1@{N4j|k(<59N=bdlbdjbnDJM|D%g)@-YdjfJK-(D-2dw?S4 zuFOnbP{zo0BF#q(wE7Scj|5pKuS8>V0#^eDGJ>Wv9!lg+(p0(^M}08j+aGTmBO4y9 z>5l@dQXrm_+axh>_O@(i@^pw8PKGYzP%+~ZUsv+@kYXQ=iX$L*j z)$Yb)PQs1#96b1*3C(r<7950~&8+qHz0*lh$c|_yA5RzCC_bHVb!15+XMAP#X8aZTUUp-&hJ}(iAs)ri?9?qPQDt2 zZ`>HnGsPI+YCKAEXc3`)21?c5g!>i<=twMYvsaQt$8`j1raVgLMa|GdS_FZ|De z&-z#r-jDEb2h)uHj}sj2HD#H@s@0F#4K8*?+@+do-1!6}tyo_vVqB_xs6!a|T&b}b z9*f=<3Hgm=eV#vu-S|LdCeO3NE1mvMW;Ixy!Wn5ZKmLeTjO{+_ifY{{?bOx(71CU8 zLyjXe;`jZRww8M(%uUVXOH1d2@BBtq_d$aft!v!-wc8I{=ifb)RWU~Fu~Nfaoo%AH zW$gE{9oFs-x$K9+oVK?OY7 z{R77nmNC;9*Y>tPWpm^c*Tp1j1%uUc0jZ4QF-DWbR1osIB%gfGLnQ8@uDX&|)0s}F zP+diec$hg}I79g@;Q{;38e1S+;$c*QQ&=wDwrOMW5T()l%N3?kYRzpnTC|UR3IZX% z+SVHH-SvFZ&K}pS;?Lwo{q;IEd>Yg*o`-;wk00TJZH91YBn)~`sRjpexuwXkypD8p2(VU|@=5;AQdKW?1P-qWwYM61@hrQ=GnbH8-kP zOR*)h&=H2d?C&bH{|3<~BQd-aR3sYMXf3-rl@YHN8^J2#>9?hD&pY}LR*zd;`Z4m}1h{Go>?$ICFplmHR;HxXBlm)T*&*>yC5>ia$Q(01fFf9MFV8oGYRL zAG{Gv5p;gkN!5kEd#R2+CEf@2UEp=M=^p^k5~{cdfQ0Pq;gAo{5H2Oo&_gUF{;V>+ z1LSQHOD5^i4(V$K92mRmmN@U8$6yYzl?zxBoN@iPg0o6!#@*pVJw7QJ7e7x>$?;dM z<$!_Lg`dtcw;dih>4C=jOEZm8a8@F)?3fHJSK1CpRrCHHw$V>I%THL<#tB+^52S>2 z&H`IMQ)+?Zy9U^u;xQ;A8zt(75o6n$%)XKI=L5tOUT_YqF2KO_Fi5k+lg3MUGgSO% zI8y42%mHs_=>EY$1 zd^{ssW?4@TXPKOCDaEfL?M6a&C8tn$^%jIC4ya~_Q;_v|Z21M4VWJj221`6IdBe?6 zZtL#PT;_p-#_9*4=pNjE@5=W=CmP@wi>lm$jB;3&lB&PDsmXq!=6Tx`GdW?2r4rBW zW@2%m6pChXfVEytoSJ*x(<~R}^3Umn^;U;6mE*R-P~ZQr_6Pm8#Yyo$f9r8tr1jez zyu9=u3lf35`b)6ND1aDR9^wf=1!GJjFi;{G?@o$7bPF27p#OUT442^I9C5&r>=AbM zVF^Gz01}sg)G6~ZB{{T#Y`Yz6246*fJxQ!ezDg7Oe~J)^LD^P=-}k~iJ`HQ+o-*vE zpJY!+>}`}V%9(Bc;VO%^4B{#`)c%ftol;wpCvC!Zup?2H-eM(ZNXlS1Hzn<80quk@ zxL7}fj6{Gzn`?-=W9*~Zw&iTp;d+ zJDPv^8SfaT6V3MHzA>Bf3?b7d?BtH=dxshKFD`qjQB){50NOuj?eC zX`@KM$#Y3&E2b+#sTrs8xEF@<+zjcK2M#^C=6T4& ztpr@h;I0PWdSW$O2+;+J{85FlEml&#Jz${PUr5&64BmNu@TT_TYVdv1B{`(3U%jGRta^t`dq_3l+Bdu zD*Ec~>~<~5u9#G}ZC`Wl$xSuF&;9EXO@{<4C1dMx-Zkfwt-^CTkK(q#=db8T0m~SX zrZ=sxv8g-Th2&{zs7$G-sP9-g?%mVY?fJXIAg%{GVFA>5h+U+khzt{_;l?qOyL)qs518bE?KyfbI#TlMQfnghR-lTy33UKoxk-v z-D~SY2froea=i&9MT0_Q;U23L@)62pT^5_as%0#?^_sR?%@PF1)GLRTRN|@96Ab1| zrtLT5-7X9S6}acIz3QWYV;bNEAB;!_7E*v(+lCmI_JxxoBINF(x?@gb*n)R=W%7UY z=Kvg?+HM1>O@Om9oO6Q-J0dNsyR*POF|O|YEt_;f%PIb6 z^?KZZpfG;KdFb=t`U@-fA+IP^_PD=fT81S%uEt6}Z>t?{b7T2B$nAyR@nq}*nLu?E z(7YL%X_So`8Gz~lhs?nsl*iV4;PhkR93a2o3M7_#1zz!$Ux%LkPkW>582Bj$BjKS%E^wt2OY2Z7lgF}{A?eu* z^Mtnra1LG`X*%PUc}=kyt^j-hz_<+r7A%}J;d)~YO_`_`%c%O0t{$c+B`=y0gySoxoHBp zMCgzDCRp_e;#Hb9_YwswVs&#a{pwTt zPT^uDdrZE1|7o8~nl0xY_dl}eCdP=w|2syC$>o#v`rCRZI=2(#hW`J~kpV_C3$Oua zb^uiE0&vI36eKQFz|>g^lt=NYO;+s!I0I0LL&y--l30RBh< zGQISV$7A(Qc$sKlh3Z4Qvxn~f+c$0s@ZR|n>6A@9& zo6DqABUimr8T_S}?TF_}XaaoO2)om~H1jcept)Q5Ie52R`P}ff`}b$4sd;;CG?$kz z%yy&IkQuhS197iOTLRw(EWzT}Ua$ksmCv?*5gx*jn0?L4OM-{+6O}CWq{=JMAuQf; z3ve!Y0oINR^5R=;x&nA=(jLJLcl8f>cl-d90H_{{D?ERngXym#Ap&Gg08P|zaL@u$ z5RWf`8EQlZIbt?#>8+3dpw2u0snJ}3Jqxfl+XH{)gMon4)q5M^x9?TlN6!#}(R5u9 zLb1X?#20yn02CK+rKv~+e2~6OTFM7uxb&=22EQTorxp#G83W@yAmD!V6gZ(q5TdEV z6@YgEZUE}F?HyD!a+Fl2^LnSUai=xRBMmk$e%X3ANQCHK+sMSR_4du06`n9-dJYvx z;E3v1oe1H24sA)4H+4FxR!G0o`T!9UkMqoxim1(HUXGxQAoX~X++uDitMJ9t73bSt zOIWa(w~!e~lZV@-j!V@a-m+0rp?jSri6E}}<-j@X3%oChS+MP(b44g8sQOc8%`wqn zfW?Vphgb#+wJGry{3lKh!4Lz9$kOqV>Hcdw?~C(a2|#ttlp$agjS#(m_aH9|0kWe@ zKqROLaem&>G^mDg5wdcuUyQ1Nl+aE-_!;dMFn8$id}dS&WWue&ta9mH1$a$ZIW0;~ zzG^Kc*P|tZvaSznHv8`0T=_EFSAN>8F4ERf1t*Bc4d$S1e$ED1V37YaByEV}os985 z>ozBm8diFqeyce0@>gNV$tF-}&Itletj~bI4-gtWz!q)>ntl$DYj(wdsk6SFA0N~R zH~R(L5${1n0BHC%;MEU+dWE{Yi)YB?eO@_goSg*$dPo5W&t{bf#Wp<;H$zbJ&ILe1 zTsP-3v7w)E*Y?-i>;pyoaS^8l*}P9d*sNWH_mVaqAu66l;#mOph0s4p{Vg!xg&^~3 z;BH|6xHFmzkS`X!cJ_C(Q>RKU3mQAi%3=JKp^AfU)DNiin2rD|889H7NcsvGKL?r# zWrr89qMrM)qz7{d+EhYGz6Gaf)+9~Q|8ZfQNN3yCTnWK$-14|A2F;n?n7y1}#-Yki zfP>KW7W969oxnRThXWLxhz?d=o=90-5(Bw%7GX!)h@v~0I+!vv|R!q!Q94NFOkkY znbEu5UUQfDaMIJT_H5S~?#N0*l>e01|DbV3T=5D}FE4%o7$r2oNU68=2kqSvAtWVF zr-^1AXxxG34}$A-vZ?V244aiy+|_1s%z$#x!RDyhT=tRP0BY8@n@Hh~B(k6sIspaj zxVxPqOSO~MY2E=OR#~}`*6s0^3!Nj5V6ka^KYj@gfsS8-5i)NG4&itP`~sl9>*98e z5jZ4a){dlUQ`ujmAHc$kDrdlv%@zdz8ey!i0Un8`+mj; zUjgENUSGd1gT$iME-XFB7Yzo*J$H+BHMLZ;w(9$fZ3sBDB{(ui9$0@rj#vI`siDgo zJMc-E-2L1K_CdG=W;oPT8!q_bTF4T?4=b~TF{bFFTh{s#TvXUKu`mesqRKOHD@q1; z-G2g8;{cpD0EtBvCwvA5_Jc!b;NX`7K!D>mFp0QeCLfWiLy%*>rw0iwBS%j>nn)EGf;aD zFraMA{9Je&lnETcK=BCGzzW1q^Tf>8yF@Ud^s9Or?f}&Hh$$hE%$Z^d24epouZ?a2 zRpU{Vun6-B$kakzXyVxz;r(C!X1=-Hggk|gXTev8BsHqP4pzKg``ij3Lgr+Ox!kTjR|dy&3r#I$YBp)V+ zM!+Tro{@+1&NBdBxWq3+*a)wODA$&I6Zhh%oH17&9;y-g=`wFx?Erid`XUg1m%a@t zzoN(f3p+MbN>T5zu?)jEZK(A33V7|njY1ZFhD(C3+P4wrZLlgz0A?NM! zhw5~$(SQ6i#2-h&I}gy8h`<5CiMA$is4r1u(NAg*)K5wUg%xK%>qA4z3wtV)0G6Q6 zS-4Na4RGiHoDI?g*1X-?+PaP3YMf@EGna$p599(6-IqSvJ4uJFJlfMNRh)TF7MxgY zb>4rZX$57u99q>!!H$i(j&^VeAslL;2g^g|d-^$Z zM5!siu>u$_BI7Y2OPFU&T*skDOxIAeqc{=%XJ+36uB@lP+#MkH1`dwV>=0nmW256t z<`+bN@JZm%y8^1af!OE39N;Yf9&+LIpMiITtWi;;(4WJG-3ZfP8MOyEfe^1G01G(t zta|{AeBlWEk-rDG0vIVs6VFixB0y2i-Y?0hy$GgRMTH%s>oO!=c8^o8J=8gsOm^BV z9dn_J&VFP3CyZ|Y`nQ8n4SYAj)^$7ePO^|z;eW%?XiTpk=>8G7ienyb&u#Ggds=A| z$OcLul&TdQwPN4gpkeCE4CZkDVPMrdd+lxA!;_+?SQTWx`O7o~|4l(673x;MXOyy~ zB=3shuRpzylI1@AEV*LuNpiEpKmV?Y?HY0s6%MHH@m>skQgz;BXwz_oKgE4Z4r7of zAWV9?9pn9>bDB0?5^$F(lb1@SNF8M~UtB@wu8A7E@#BKCJm!6Sw&*cqhq>S{Si8fY zE|u?0QM6$*&$!Jm#uzEiv3U|Te%jL3Fej$&X$sxi@y zj5yGBQ_yiWaux1CZbrc(z)J5h*l`rFA)Snkn|7%WHFpu-5_A(imBk5JVfpXo9mBwo zoEt!N>H#Fc08l-xXAk2KrtOg!Tao@B?@9YF;9whZq;Uy}zDc3-WmzTyq2zxx=?G|^ zsAXs^5TrLH(~Y%1$?hvGnw|?Ak&YOa`&e-wT~8ioKOm20RgB(z``D| z;6ia?TD&$8YM#V%h~VApsVLRXD17AqTqpjmI{CLV$2 zTQ7JqLa%>^g98`*F%l|wA4#@?y`N@Wz()JGOfKPGelR8HH$qQJ6rUMDpi(A_@{dQF zt1EZ=&5QY*b9)Y5U$nq-E?-L5KVEDkKN(K=ajrcZKHs_rv$r1A&XKXZ!)~!PCEJhe zpU=7;^CW;kq37yG`RD2t39d!CjWJtUGdSF2AB>3I>jCQjB(mA{vl&G_VE88AjUH=t z2$7e347z>#sKd7>7qHIh#8WFP<9b~u zy})`0oJ%0`$tilCwE5!((v_s@_u?K+lgV|D-c(AikSyj;n zjqtb1%C#`ioVv}5Eugmzo`FLt{vzbsAh1$tTHcQmtbeFs)A^Ufd}SOM?KV9Gyb|Vs z6+-~b27`11M(QYlO&gdpZr`oYY1CQKRE)-}+SPVPt1g0B9}=)S zWuNMmHIy#Drv$KGQzVNT4Lhptmk-&h9@@W-=dR7$f%R`!EgZ5Jp_Kpq5JNOb>B`OD z*I2OVJpvA&c4&;fGb2 zXleqS`rtDrSwO@ErBKgRTn{d?z&^Kt+Djr_H9~Uog3EC@-zxkFcCw8{PRSfLG;+iWMl?* zh$g!;QUAvCehJGpq6@={`6P+X#Ef(STW!j8Oxb#zvo|Y@zqYp`%*yKtOZNv)a&Q%w z(ypgNbU0D2;(Nn$;S$}6F)aE}Oz`QRn5`v^Ax_hDVc7237ttVyeSw0G&0(y>GFPYG z-d^#uOn=1yV)cXJiNY)aJ6a_=TE*Bj;uB?P`+k<`t|IGABqkH5W9~&s9}n>or*NV1 z+BI<_!Ooj;F>2-1DV^Q9>BXNXE9k)e?@`|wk_@wf3^uGaFFYH7WW zW1l`4vSN2haOkW0fx<2$J~L}6NB1!p6Ph;BlifL46V}48<{@Lwq+6=2vvl_+zmxL) zV_8FzhS+$}S#P!qrnLx;2mfQnL{U@>ad4u9|WYp4OCxc|kY(7%` z+!Gtbf@$UA(C3JGA+0X!P-SfK;4qMJ`=?eO%8h>0B-?kbi?_`y6+(YEPzIj^s)CHl zPS1iZm$t|oyD-S zx4*p$1b*5-0ng8%JELVpsdEdqGFNI*I%O8~r;m$bnY85SDsXvN4}1%QH_~YwiG3olRK@z z#-kGKhA+sw%KZ}IK$HA{!-K0OoQ7QvZW{>f*=$25{7->ZTP33y?|6og@B8oMkJ0#W zJ^5(Ro8o^MM1M1)2Xs*a>|w5g6u``p-Gi&lrI|hKY`XvTTFVmi+CKBn{1yF`K4pHp zkqXK6Nz@BzQ+r{X-*fq0(3il%9Y~xKaIKC7?r`tTB1}*v+=S{ z$E>H|**h?p7iJdXmqC%TyPFBv{sSRuA@)FECj1_NFW&=Q(?=)GE7Nk49+RKBe~Bq$ zb7SXdsQVUMf|_Ff3#q;VXA~z+@an+-De#m#5LA>UTew8WE+FhliKRJ^L+G>y|F4Ur z7L!V2ptE|FZ+Mnc&!=;|2CJ1O;jLJY;?iIEsg9xs$A7{mnoJm(Z2q?WM(d9hid_1{ z!p~wR-qd8nyI4EWM1QPrn@p%xQ9I6%=Jhc4hFhj2VVLgp^C++0aT1Gmr8H}Fsz8AC zjQE>7igsCto7WTWF-g`FM2SyTH`uD>%Qb&pD&lRXEk7F8&2xX~JR_>^ZpTr0F)sFN zE+#CZZYPFpq;tW;&#%x|C=q&BU@$vk~|3=}A!H;=q;%jA|$ z#QfCQbsY!4y@%97M=yaFh@t%fVnZ7*z`H2Qjkp2mBZCCI#yXUL0)GMxP}lRTBi^AdCC2S;%ip*GSY`L75u%-Tb@3 z?(}arZjpm4U}MJ03H>cuMsVj|OYjN0`u>+Xta9F)j`(Q5sXmc==%l(Yj&bg{W_6_J zo*?gG$QxSn?jSA`3MqC)>gkEhVIJ zaB&K>oC%k#UZqtEs!xJX&D^u_Dz%|Y52KIo_X?(f6)Gy=8Ih2-3&35Ex8%+{1F4bO z_E28`?b2c(RFq*GaXi>C+WqfU&jF$t_j%s!_62LGp4ye} z!d`JP|M@R1z6YCf`*@(Gf~l(rWY~0Y-b&Gb zA=nsvMRe#9+~@_L9Q*}z@|$>sJd#RZeLvl#JYn$4QGIOme4(a$_SCU{H8Z>y=M(06 z+1j~R^p|trM76N`0kQ#j)#Pmg&L=?UTR5Z&_VVOo_06iCkG~ie!J1>OjkpzwuKg~= z83sXFRG9?V-+{G&mxy5!KDqXUS0~^fel1#hx~aSY6!HPqOVABsw-y%wH%TBm$@VAt zXqJ$Fcv(NO|2`{epf#e_c)=jJ$Au3x^>DLvBCRW6um`|NuSPmOW-rg|bby=10?jKT z@F#@p^9g(eq>lWG7nW_KfD z+XEiq5&xy)oGq%9ACBRvN8i%$#FH*3IZh(esQze~ROf>@<{rI~z~cnBy{o}AbB`Lj zMZz8i&yNd3hnLP5;4R5SK<)`}jRbrU4Q_1H^r2^)FX0BrLYKSQpB4?(aUO!mY$%U+ z?m*;Z&ya!>AYKlb#F`ls0KJ@vI+CPJO0lXYwrw0K*@`%dO^H=D`^bmf?f0?Jp z_;YhMkQRi1^yc=p7y#^O_P;SzZvdRqYqbKo7`sQ;kP9quV@7K6KcU|zT?01S2148T zbM^wir5~1rF5R2X509k_u#=T_qs50)t0~sb^;!)HgkCMgotUaD^hP5#CsyKQ-`cNg z?O`fyE?pW(^Q>9b@MLkl3%$id<8bvlO?Wy7?vLCM>PtYzRbV^?h`t7I-0=XecjwBa z2(&zpa`C0-YWe~~ z@qk1k_`-EF-iaqugcdIm8kD&A0ZsZ1{D<f9JLEdqH%=B;_{NvMpeJ)jQO@&6Y2A zm!$tny}mzJgUaW^+O-L@=(1X8_@&TdvBof~Kc7Nwl1c*aP${p6IjZl=ZwEw^d9x+@ z%5+h|DMf!!a!5go9&GNfAAO`fe_dyPnv8YFq(F3ke##oy-+?aCIGq+mh2o=-5kN>=-0l!Z!5 zb-5EF&uv6Ith=KXJN*YOR<5~=k^OSCUY9=fPe6s6RJ2`gJVm-``+8DZ-Y!E61|Yo+>)XafwQQ;dh1M-?6Ek_LGD;g43!Z{}iQud$$a z+M^@yt~bZ<)rfB~(W1CoA6+2}2K8)F>^c6Z6pv!vPrXY?n%r`RSs&{eW~s5Q?LpsN zI4?vNut>YVUA%QB@lL!Bxly-tR2=Zfqlm#%Ct^Z124%p;tdF6b_h+;;a%hXXUiWy-LJk#4`159XJ?t7qESj6Dq_}okHuS=v4ze<7V8~< zxJj_HkbkBojL$smfrec*#p7{3Ryfoa@}Bsx^dZxstIDwC$D8uP^Ed2MO>(AwHQ$PA zzVMCs+MYP=uyQAii0PCrmSY#44$~2a4W|zvxU#;By+~AN=`$8{sBHa`@0E7{&RhHwA603v#Tn0`oR5HR zlEHYGYw|W6b3puj-~$_5EjTK7NLo^!Wz5opM`^^ZW%h`w6x>whJ~&JcFFE8yk!vex zIZ^o2`I6*K!YcuORHS%;U7~4fF5;|Q0*vh442}Q=vM!M2EIKR722#A_Wd_R7__V^d zAy1x?sEp=Ejf~FA-qx4zH$mSIKdYrfThCM}Nih1cZAtZ-{>3X(7qJ!mvo7Vy&e_4` z>4%mP6Frzn@4x$1`svGMagDk(d7%cr(HLuz=0B%It*-_(*vh*~my5QS!?wQY_7g_{iZ%+ z^hY9({r->6LHV`o>7h=Lq)FD7t{b8*Pe-OpDJ_4y399Q4?;ZJB1`R*p`0gtk6JqtN^3aksy0>gudTbeUOMO{rI|{?5OaB#+~Ct16u+-;rLn3VNEa zy5+AzJQ<@(jcZ~-LyJFgNuK+Xn0dOy+i1U(sJTn?uaRsw`yaELMD$n8NR$LrNYP(y z<()i6KrJZ$?wGvZbF8}>65|$vsN1A`Kk9Q*dt{E2+!srdiG4e+Mu=%Wr$GHr;3dxq ztC+mQw6My0dY=agV|vF0(pBm2)F9R-_RoUhvr?fy5)$b=akYj$H6sT*u*IRTTk5So zC{p8eJ^kBSq*CRedMu(qY*y*uG1;g}nQJdwaQs=Z@D*&fR{G(F#q&97=pQ(IR7s4Z zKQUFDCXtbar@hX*JTE5FWFx$oNt3XiGt)Np7iN;qyVMO+^}PCGZ-SdcN}dZ7j!YI( z+E=9g422ig@)35!mEGfhK9cuAT5YHRcEU)wOT6WZ&upvoaFR8E8R|zPj{!O;1Wqw!~66+^bjg ze!(u}7WFkTEQdMUE3cR^1M`11=zXY-fXMh8rh@N3{P@M+Oir&+ogrGRRz)@}+vT3` z#xqQy=|WamKT0lBAY-czes_aJqhO`@H|yJW2t8>7nvj-NON6(OrEEj}v^YAk4#&GJ z?G=nSJIf`E0owzNi|=6FAJeAXeaX`*de}6EqvHIPf>V2AdBd##3RD{>>&d%5*D4CX zwvIH8Ezrk$b==rmph2}*S=DLHH@kRRqtwY!CK*gbeCVZ85~Pw&y->|w)EW7;1LFK? z9NTUnWpl8)B#q@cK*-%+RSHGcpe5g~^EDPagOV+d4%)PH%Ca_nFI55!ZBhf3i?EDF z;@bdP#OJB+WaSROb~Q?cY%9bs+PNLE7rja1ce2-T5~1eULCPB|?T#!Jdn6km`QsbJ zc1g&0y!#t#M5-bdV3PMKzB;&bRf3A!)(E<8n(TpucE)rg}y7bPulzI^0RWEbME z%~A6+5WoI>8d|=T7`$5sUIw)>D(sz2R8fGA6Ou=-nt%7?&1WQhaD9U+D0uW1$GwQZ ze3lmRS)kdiQi0*og;zc2a2~F^ueWjIr!TQ58{g4-bIp<%9N`OQ!+Fb++7lY;RgVkX z8dP;M_|=Ny`m3|rIEzjKX{N!t2-~Y{B#?3?-Ttn2!qqA0!u>U#TjiF6j%+ZqF!Yj{ zU;!1E%bR&ww>({)P!W#vfw_m)PgkqZhhDg0mMO#m+aV3}cMWTR?DjBlcOIk27lEBi z*x>f!Wsj31Q>Dqah+<@!yeV1X@(1tB&XB#JpGqb1pz#K&E*CnU3fBcI6 zW-vUp^r11PnvIB=TV<%>G8VaK9>@K`Yp69RW~Z+pzCm51$f9SH$C)iNP^NeJqsWul zh?Yz#eg-U{^wF>l3IvY*m3c`c8xr3;j$Esj$1fLOVi!??QEOk}tS(N<<)4$pRF*Gh zPxr%wlRL#jL1aHZWieKy8+rQe6v}w!vQ86OfULo4=>C&zLHhx=?DP!twf16RsJ*YR zkQ`nKBSx^+D#7H7FnTt0dZ{<#vg@BZT7_Q{O)BV*ze^I7XAD=cf7b?;uI?H`xr;45 za+v;DTHgno$Bs?Jt+-aqm4mq-bo$v&6djy9Lfwp!8y0-|@kPD2jZt6Ny^Duh;akBJ}@U zOHLKYFmxrew#RVZS92+BqNLww#AyJCPc;_a1=0#~S*mKHklueIx?rk_ndu+vSIa9e zTbLa&;n>6p9@lsk5vs`bA(8=UcuDL>beT%rPg+Z`lD(JGn9Hl8PsyKtTfX&)CaYp% z7m}@wMY88jmiDZ!`9YjP%4DsQ-u~-nj@7Z=#o{||9v4Mjtu@BpZm}0KY^@7E4i0IK zQtAZQTjm6TLi9C@;q?Tfi$#{462ovI}1vKcwADX+(s za7S~Pc%^CR_i6%DH`7SEw*Zyhp))=n)w)c0w;ydyj9}>F0i(;;TzUDzxTum7J;A5NHwyVB+`*x(vbPrp#8alD3iS0UR zN0_uj&cgf#X}q50rg)0Ee9-0KWK_FGm(&oPr*1E1W`;b)S&5Q1U;z% z*62U`k)V+z@gn)!jV$JM{CN8Z3Cmr+FQ4jOYohW6X%ge`y|(5{$q-a(EvQq(AxC2T z5GksPJYR{F%uEg__E{`@zA#x z9*rP*?O}Cw-J85^?9Sim6AjU+CT~QD(4Ll875iDRYQ@P0voil275#dIxv?-#8LRlI z>Zh+3iIBb{&`i-$-b@i%5FDlmz|OSv#78@~=tB4=hL8+aT|L@r9-QnSYzmRzlz1n9 zY~=Y;?)0**4H)K_cNyZ!v!H~2@)clH4%SWdV-3^(HCJx<*r}{!!Z-gS6uKIZ9QpqO{vHA0il8*!-0`FaNY3WAH)qBF z>2YetQi{=&+%jQEHX~x4fO;v~iB3gSrE{iJ)-p6o8~LWTBq3Ie~tp*+F)A;Np1_5h4+TfSM z2A^_dq7bAglZgaMw!I<-NZ5!KD1f53bR3krw;54~ zj(8o$@a*tye^*iD-Btgxq{zkP`9FRczCAzgpNb`uSTm(g83*{ILntf-D@$%{D&8Qn z*jAHVBN@kxGdFg0#6}`fjDDe@b0WQ$P+G>$Nx4xs8>Ilk`qaHSb?mFn#BFcOR;@e zQx{ELzGdo?!tM=I8MSh}d1`~`K?Rrwo2c#YtU`3SyUqRRO>_{V_9E2uM$?;bjNXXk zMnLWjlNzDt2O~4|M0FLyLNoi{kE|4*=4!H{$;vlORwCryFinZNeK3MTEki5N6Fl#{ zA2}&-s?p>`lap^;E8^I_VR9md27FW0#GKrZnB+UA{Ky>BNxqY!rZ$?|eCyQ4oNSuX zn3K&>86h$yIlA`7u(X~_{^{KW#9z2BpnH>?yQn2m*Ei3#$=st}g7BJFg|Y+|)}%p) znalk=_rKviyVK8ep=_=-?IT^3z(A0Hf z2ljtd8%K{vop{8@68}wUm|4ah4#s`O9>l{MoE;ur4}R+Ju;gaZl3^p!vXKTh{s}Lv zB#z6z$BERU6YqRvr70!j;LT{vQz5i7-Cw*KVK~ikU8VniW~p4F={^bYOJGNS8i*3M zyO;^nMxe3z!k1|3SqGT6rVA3cbprcWx_+tn>L1u;02XUFhH7HyTXNyZHH;My21FQ3M+c?7Mif3hq2F`)L9S(48EI*5IE9-n7C+@fLVJEbEokZvG66D?G zDWZzc&bry?0v>u%Efh-`cSZ67uSCsJk>E)>{E|^d<&4E~k-?f{BTf_na$|0_1rj$#=|0~&qg(E?Ws_ylH*qgm5rG-X6*YrHf)_rF*mp4m`;I<}Z~+6ZVj)Md zBg!`ftubHtb1$$3?-#xHsH6$WREQ*(0!Cj@7c}VsX&CJV|HX(dszTQkoZ@yfbu9=cYrFZJ!PpL>8 z6ck+zT5ZKk7dMXJR^GY$WB%2okzqmrq@04Ed1@9bU6OAXCdW)Jeo8X!(1ba#;_+P@ zayH-eB?Czt2@I2KI!ft4Qnd0-t#Su(Xs&XR)&e%RSQk`dQ7jZwWr|mcRbGOAg6Wh3xJDzewTGAHdPh}-&y51p=g_DBkShyRFaT)?R;(Rz35Ea~OF)(n3Y5E*J ztVY`J4@Ze?XLX)rI3LpCZm^y)CAqRqA2`-E&DfmXA_04idR6g0VeQan#O&bskZEP5 z_#hTuhNMWHtbNPyRk}J)rADVqm0p9Zb0O$GXTo*7g@v`n1XTDb<!g`#qIfbi_&QwWd_^9`03`0pk3#NA$eJBtY{GAST%D3rSPB5REcR<|3shxYn zfcV03gV0}$qB|I3Gb>kcX#Y~7r(B?D(2L5h{ysQ8ZO&*?z`$Ghqr!MgCLp8hIy4{s zLe-;gy5X(w&7D!58dE|vOh*z$GFYn0V0JZ|+6`abK{=k!>XqY~KF!oYUve`F8$MPG zNaNqmd?#uoab_219B1dkGCX4nEuM}}WyRkP-u4N76)WrW`IHA^KK(bphC3C(AA5Wk z->yI^(hZV-kpiib0Hv167beq`3(PuqS15o-iRscpC9RpDGA(u|So9J{{X8j?)kwpN z)`&^61EP>G<~xwmoMHR`A_EX?M2k6}jTcu#EY9u^aZQu^XEE7;bag>0jh;}_w`blb zJ2&ATpsD4E@fdkA{B#l=263ez!Z)_yGgQZ+8>QtuH(yyzk+CipkqYyk72r}1Hkn}v zoMcAR!w5N4#}2jGF#A-T?hyCXof5YW<7N^pOPbEy*Rnj82?)e&%MtdlUXbREyt$p5 zWDlcqpZxHIPH!^xZqN{i6;zk&+Ju1BawgA8u4iJEbef2mdS>Vzku5efkdZTX@g}xCJXpXD z8WPj@%{z8zjl3}FI?{84vP`8>`S|WHUa6#fL zh5SwwhnCe@cnOxS$jT)|{e%8&`V*^*G;I&P4Jz1cHM`Bu{!`Vvr;8AThvxili9TBJ z+3$Agzwk-@+dJs(??=zr^S044+J7LeO)S6y^YTFV-zof^8NH?rS$~ax_k!q~Z@L!9 zp3yHm`WD#BK9Ww&E5igy`4HY(aQ_?$zA}JMmE5o zpHt#*PHXI?3N4$%sW+Jjb?~R{*J?GOMZnzrVdxESJa5{d@vAT5Hs8ZLVEB7~CHVFQ zOIbhWQLauv&OFyRdIUyJFmXXmctDFcF{`NG*uktrjXG$fR77BxD&n6z`o~5M zpABn>Nh0RH6U@w^?S5*|VOY*6WF6M)_1AWY7mYc-=TcGhlj%FiaieRvu<9vft`2lhezjUCxh3+i_88=|1#>h{sG3$7Pze9(c#e>Rz8_VO%wpLg#k!UL7;!yq^6{& z?tGT?vLgaL=~4kte!(1rDJ-W1Qk2yBl0+BLu_U*<(D(r6=IA3D=+VMrQo9k1{^)cNw-e>v9Zj7f?q~## zxPoj&_U5#?r#EN?0j24w3$s80Yys%}vmop zUz{5U2*ce@T$vwr3Zu%d4NPNrad`cvo>YtbN@^l}pe}xILPtRuG*U%`Ri){uDe-Bd zxwSE_zoX#f6X0tL9iz+AZ>e^E7X~6=TB=lbfmlLpmJT%nrZ}V2=+h9ZGJFK3l^%Y& zp`7uji-{8$VAkaj=-C1j_d(a>v*}YM8<%~I>7dckpq3gOFC=f~aa|Z++^Tw{O;VQ$ z0T6XcL~p1^nwQ>xjhT5D(XNDW?TECY#%6R9jhQ8iwlgh#rU_^~|0CVhZoH=@>Qaw) zLv1t#lE4z#^(nVIe#OoZI92%@yPI=nLpK&rzAjTE%kfi`h*P8ZdqkEf!t-&@oC!Z< z0D3+zC64hoSzMk2bVy4X)-#F{i+ssu|%+#Q?`xX zDpO`-v2IxIZPVKG(EV>5G?gRgn(f00zfd=A44K={P(>=_ z%JOcaD4uGa?ZaJyTsJZZ2U4xF&h}9&qG)VFLrx^@q-rAo z?gVrW*X;!oxs*iDX$H$41>`7dA=#G{^-Y&89VI_zXksyu)FjjtP*X*Zn;D|3s2kxn zsymJ3u|QW`C*+-^Ydt0PWWDP6vo*xxve3k)nG}4=3JFv^-Bok;k#2N)1`$w{-X$pv zPXs=`G}M_>BDBYc*N3kTulmDxm#4B!h1^)Ir<6FTM~K`Ctr*y$TChkIF*bALNsGCp zG9g^^^&*A-05i%cX35+`|1M45jb?I5a)M7+|8vTmEN|{;^o2b zJ@f%yN1x@2VRhaE6HwB~+iW&d>l44CObezI`1!iwnwD2MO2pFWd2w!@0 z+il2;4tnJ0x?&ZmLlE0xnRjR!!R9)x>^nfjmkCbF?*#;9IN52Ex2FG57UMA7fFA$i z(Z1u3C~NR-dKDl_3K2GzpdvP`#zUclEJ{8&YQZ$U=_flMbNJBn3UEqW2`x4NWKIIH zkN7!DKrJryHS4TTV=OEs)m5rebjELEz=kyQCNxC$n6kl+r&Sh;{PU(=l7?A=mFOVtZ0C1zY^aQcGy}{_n|)tWTux|iR;YtC|lsxP>v8udzX~TrkbRy zNW}@ZU{1j97fG+lE@Ruo!{DsXj=;br1W#ZWJJGyM5h=fZ94$N>Jcg*fAl-Jag{NkC zK;Z@9#J5qGa@=4s9;3e%I?4IYClIkGcB;MEBA~*E_u0i{#$)E-lA=z2U6_((yEGgQ zU0|pUp<-cm!633Hl(FP&fMqFS09R0;ZyF4ql&~U-pkc zfmWEgR8pfPjg{<4#{%`sL(AgV-IFd!dLp1*acY|0m4l=Z-<6H2^U)@Cevz9wMFa93 zH@Mb!pexhO*_9Y5XphG>jhLqK=BzFa9*j42;DOfk1a`kUrYii5QvO8mc^tb|TD~Q= ztpMJFZJS!v^e*6Q-~54;6tou17n!BBW@ql79FICzX9`CN*(wfXi>F%ZyvJ=X!FJ%nHa5$Mm5psT4|>%7WuL5^hg%M%NY}Cy^+-?5(Q?L zq>ZqKh0;wm-(7jVFKp<bQ?#@C{qB^U5p|{HQu3 zSL~q~;(y(R8{OCvTPm!ZCe<#L2boF_A$IKg*>{+WZ(=oo=Qis=z~y>oj5|5>L}~tz zAQ1d(8l7;&Xp}WN*DBf1gE zD@~P|dJ%WVS!^h?d*<6dm$ZLYuz{AD*hMpYz7f5eAw4n2vqjy*D%9b+pjm;16t-!0fz>oIqZ>nAjC74GXvb{8S6UkHZH`p$Z6#e!*= zZX@2cWGZgfcf@Tz66OA6gm~u>_cYHiIB}0fZV)?5jSE}Hrg#r(wx>2|rdo>bC!)?o z;=q2Frzy)6)=jM2$MS?)`zR)0mn;)j=gL!WzmHZF(3&H72-pV z{8sA!-~aP}NNO|0r-*{Rs{S=e8$XJIWp^ZqVH^MTbY$g|#k7j6Pd1e_BS2Py!a87PDjjWGS$SOW;u5{pB zc8XFW?v#l$W#UjJ(p5sfRuYU-m|@vBi%EY}Zw6uD*VU|sF-tL#~J5Ky_m3(;J;wJVG6%bpSQ34PctY^jW!ROKp5 zbC-%-W=U?7&vgm~>6D2$Uzo1cY)-2@S2xvG3y=x5%)oS=@Q$n2)Up@AqM|Wt#&eCP z%w*Lt-V4ILgw=?hWK~MZI;`B$WoHS6au0Vr7xlG_{QOe(BU=r|RL!}_pSc8<{7srY zb6Jx>QmWu#-4~J%oBcv`W6K{kwQzS@t>^V}=_SEG3g;1v8e+NA1@VMAY(=hV(jjLx zxDP1;1G!5M!U`+0!@6G^|7-o{u=&HzuSrWlV&mV>hR1O2Oam-0-W&v&PMjA@jrRDp@7iK_ftdZxce7-21_g(`g*9pzI|p3?8^ za(S0$NRPCnN<-VJR4Rv1DO?4suSaSLzW!+Q-PIn$pjSjH+1R8&EIw_kxlVj2qubSk zy4J7+%#$`vQeP+*gRw%sO+>fUH7?B`lR$zDm6v<1)Z8-CYc=D|8Vous8hKVU{Nxye zirs0K*~Qgsf2dxxssgZzGH@@&U2`xMi{(Jjb%;Kp}(I} zqZ$6S{umFM9<}YULD%mg9jhgjO5wUYYXs%1Y(yGAwv|Lm>6~W$(_Tg2Ezx=JF~*FJ zdng}MCGu2pJ5@v^N->Zo7|)hcB?Xt@Jg;+ln^8)OC{x&S6{c)pL3M@ckIP2_RA@6& zrqdcU%$g^*s*XOZsLo7%ek=9$%)M4o8enKwt0)TmzyG%=3Zzbc(yF!;ClRA+kj{6L-`xe{UCinw9OJO#8y0r~ z&Gpj;r?spPS2tv-hRO~07bj#6c;%aaRf|oj4SxfMgzOfnTy>{%$(4lCjM*oRiAs^Q zzUJYpTz0WLy57tRy6iHPp2e1(&(a`}JiQpt2c+@+zRZ$T*fE#(9`nRaY^^Y+DED4~ ziQ+>_B^G$iUMU-(O)j0Di+#5DuSG{QB0ZWB{6ELwsvxm3+rVqz16^7 zU(F!AvxMX&ujZ=f7vGd1wkn6r2ypij%~rIJTzW#fzI?x!M}BIs0;B)BtD5z{%aZ8u z)(oRxbOm?YGGB?LUd}d*b}9*n>2lF__x+yumW2 zH}N0lEZ5s5MsH_rZmE1s!EkDi(HX1*8<#&*1?>5E!&xxNHL;BA=#EGa3-I8e@tf5A z?{RMgf9}-ta%{?j`YUPG@@*;g>W;r09vCIh*C}E;l!?%Ih9)^?cS6z>PR-xqIsd)} zIE~S(ajLKe#BPY9>tnV*%;c>Oz5X`tf0*CFQ{>If(3?$H@1ywshnCUZ@5%Q+7`=nm zzP|rq6QB2ZUuSdf;lBA${%&jI+ zkKgv2GYhk2i!*92{Auu^cI(aTIp)`Zve6k?ay(YAy(xL`+jB2)=qa2~Vgf99anl4& z`IHYTs#LFCE?vX&MhiS3j6B8aIfr@m+HvKQ@>*CnW-$Ok%dufiSUP^J{@0hC=Ch`; z`(NE=YnS|A@auW=04v`toTpWpkRu=h@&$rt2waMVA$>emh_ zLwG?r6$Nt3Xwx3MYT*T;G!2PayLr(3fl;+q^u>t2w4*Pb=u0>H(u=41U`bPO-f1sQUI4CKX&=(Y#=)>*cE^ZC*>jMnm1jODAem#?z??2T^if>GnW zcbBIxh{Wi2^SoQ+IuR>RiszL~Saec0pFzuYtrbRgTX|&uaw9uVWU##>cI(65_1zq{ z3%bKS#j`2AucTJX-J$bUc4qB}C1skzD5(P!ULk3xQXXQm7ojtWqCgYZUUaR{F7X%c zi(2j1Uw^$ZgWKBNnMbeGbO;L8&M!$}jrX+12lB_{@**XNrx*P2_(XV2L`jKugacjh z1GdC>COzh8iT3s|(u^BYqBL%_nc5%pM}PE3fAmLx^hba6M}PE3fAmLx^hba6M}PE3 Re>U~`{{iCe7U%#F1OR6P`91&u literal 0 HcmV?d00001 diff --git a/litellm-proxy-extras/litellm_proxy_extras/migrations/20260212143306_add_access_group_table/migration.sql b/litellm-proxy-extras/litellm_proxy_extras/migrations/20260212143306_add_access_group_table/migration.sql new file mode 100644 index 0000000000..67e75e84c4 --- /dev/null +++ b/litellm-proxy-extras/litellm_proxy_extras/migrations/20260212143306_add_access_group_table/migration.sql @@ -0,0 +1,33 @@ +-- AlterTable +ALTER TABLE "LiteLLM_DeletedTeamTable" ADD COLUMN "access_group_ids" TEXT[] DEFAULT ARRAY[]::TEXT[]; + +-- AlterTable +ALTER TABLE "LiteLLM_DeletedVerificationToken" ADD COLUMN "access_group_ids" TEXT[] DEFAULT ARRAY[]::TEXT[]; + +-- AlterTable +ALTER TABLE "LiteLLM_TeamTable" ADD COLUMN "access_group_ids" TEXT[] DEFAULT ARRAY[]::TEXT[]; + +-- AlterTable +ALTER TABLE "LiteLLM_VerificationToken" ADD COLUMN "access_group_ids" TEXT[] DEFAULT ARRAY[]::TEXT[]; + +-- CreateTable +CREATE TABLE "LiteLLM_AccessGroupTable" ( + "access_group_id" TEXT NOT NULL, + "access_group_name" TEXT NOT NULL, + "description" TEXT, + "access_model_ids" TEXT[] DEFAULT ARRAY[]::TEXT[], + "access_mcp_server_ids" TEXT[] DEFAULT ARRAY[]::TEXT[], + "access_agent_ids" TEXT[] DEFAULT ARRAY[]::TEXT[], + "assigned_team_ids" TEXT[] DEFAULT ARRAY[]::TEXT[], + "assigned_key_ids" TEXT[] DEFAULT ARRAY[]::TEXT[], + "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "created_by" TEXT, + "updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updated_by" TEXT, + + CONSTRAINT "LiteLLM_AccessGroupTable_pkey" PRIMARY KEY ("access_group_id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "LiteLLM_AccessGroupTable_access_group_name_key" ON "LiteLLM_AccessGroupTable"("access_group_name"); +