From 225884e57a66ffebd3fd782070a63eea16fb8edb Mon Sep 17 00:00:00 2001 From: "Anmulwar, Sweta V (PG/R - Elec Electronic Eng)" <sa02405@surrey.ac.uk> Date: Sun, 5 Mar 2023 17:10:27 +0000 Subject: [PATCH] First working draft5Mar23 with delta=4 --- .vs/QLearningApp/v16/.suo | Bin 92672 -> 85504 bytes QLearningApp/RLsync.cs | 6 +++--- QLearningApp/bin/Debug/QLearningApp.exe | Bin 11776 -> 11776 bytes QLearningApp/bin/Debug/QLearningApp.pdb | Bin 42496 -> 42496 bytes ...QLearningApp.csprojAssemblyReference.cache | Bin 424 -> 424 bytes QLearningApp/obj/Debug/QLearningApp.exe | Bin 11776 -> 11776 bytes QLearningApp/obj/Debug/QLearningApp.pdb | Bin 42496 -> 42496 bytes 7 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.vs/QLearningApp/v16/.suo b/.vs/QLearningApp/v16/.suo index 2afb6892fcff982c26c0b12f7ad50e027797624d..bc59d5026d25c5db7010cc3e41ab3f114900bd4d 100644 GIT binary patch delta 1231 zcmcgsZAepL6n@X$)^skNAK9InEzr{PW7@(@)H@9cDYj+VMv|FGj9M<xz>l{15m@AM zz1dr7SrA%j(YoM%NaUZuABFvhAS(Kxe-TKrA8KglP6eR?Bj~+6=brnV^PcCtA6(B% zg{NQ9qo-3}!g&oLYC?z%F*iRyk1qm<6u%{jTV3(4@Qmp-q$1%l(`K$2j5Nq~Kn87+ zwLlyV%IXyZ7`!Ul<uWeP`8~Zr$`=;%S1rp|hVqs5iu)KG@>ycV*0A#+mo%wbWuWqS zjd~3#$0ODvXqD==LW<7$YGyC0!d99Y*#NP$G13h&G>A5uHb%KYLxX6M*MxYqi@X?& zc5~1zHpY#~G$A!qynr3{AgI6}R!ihP{1`@vBYfwI(vl`XDw^!pDDL9CbUK|i3tlmp zeKcXi6(o4XHAEkxA8{RV1EEFS6i=5=a+%$ai_eW&E8kxlE-Eo}b!;4V|7iE3-{myJ zy6HMW@=b^Ab^f-!Pkmz3o|f<>smhSlf!Z_}^jV6vlGYuB)X368M$p$%Kc6T*^LYMR ztK(HG*F}0Q-~gWL{k&#BmXj{cE<Fi7%muKC^#LUJeuEg9gAir}C?4fN0QN!-dghda zc}S1}uo5I`?vVuMm4lAWWJ1}f0>(KeWP$MLlPUSXC>>vKB$=V!jc7|rKH4&p9zjSf zE=x`xu#Yxyu{T!8fr$nG>ke$!o&#IpxkMB&PZnhSa~T)Ix@Pvl29CjPz%jo8c1GdW zg0#KTunWt2VYl`{H4`dffVOQ-3#8=(53D8+Y6FD@aF&aXUzmedH=cqvA@J4)pE>5J zf>fr<h0;9f<QB%%6FWK;h^61bVu1W65*QcoC^;Z3TYw_Dl*vvCkR%n=g;^(6p}Fj# z4HC6~lwhqU=%iB(DNLsXL%>=BP8DqzH`DEPk($&omp5>5=9IU-`dEbFgz|DZ=zk#t JJ-fjPKLHo{Ym@*0 delta 1362 zcmcIj-%k`*6u#e`U3OX4btxc=1p*-|tpQe85lUfaU1<D)!L5lUsn!ZrN@{@z(ID1c z#29TXf>*rO-$tXhXd|7pla^>E#-_X&nx<*er#4OhfWB-R+6p~)T{qikv@boA@8-;z z@1FC0cV=Se?6Dv0qyAFPlHp~{MX5%Zo1dRoRh0)PBZYjymGi!#wx6(s3VKBB<NMGo z;(Qoii2-d8`690M+E3HNGe);f;~xL<xn+v4C;1s^d`E)s=(S&?hd0I|ImUkHG1$Cd zOt@WvjBH9?fSAi$B(}J&W`^i?H6bh>y8bxfa{fo6XEzp!eoqv6B2H_r=wBE`j)>Dr zb#J0hYqD;{v!fixjsDyzP55I@r#b-zq5Ix;e?me(C8&aN(|72(l)`DKX2nsjeS-Fd z#cbtY7&YQmU5iUUrottHk8qZ7j&PoEfpC#fV0^G{hF1iR3@@FC{(W#{qG|O<cY+^I zwQv6UB;{>yb?=xQdi|R*%8&GIMA7UHeZ&~pFqoMbwMNWtPK<h^vmDpQBEh21sHd9s z*n|>vlW>brV0;miydu@-8M9J)jDg`F_wziANANzs3UPVvm}~_C;}7wo^Z>=)9@foz zSQqv0qwBDutTJPOj_bMx$nOEa{GDT?yv?D1X@|u{b;n}q(NK~RplyTf^IzMF|F;?P zYa3pZRt0v+?||H_HCc@1&{!LLAn(@WfE=hoiR`Q<m3QjVB`q8DG<rBipH9)&E9Ne# z*P}>o)lnuh8&LLgJ2ib2K5Hu_?j+Q2l?Zi4jm*gwh^mev-oWIFM&!EaV^8W)U2DN4 zY7lg^#%$!~R(itRP|2un*xxx5#G?^K8+-d%}i8EU{})&n%Z;-_oSAHG%tE@xKY z{z7UC)mlZjp01tO;vF$mQ*M^8f)8?MEzU@PH9E~JbvVl9je5B4%V}4k+1P-+aI3?5 z6eX5vy^5VMttNWCqGNZptaM<hc{+qXmpR>vI>^!{yj$?n;~lK>-$x;aT7qIz>q;@& z5+LMjWRq%*%3DlMR$^_!QpR+`l5%sZ>IpMXyf<>REzQyPT3k$XlwFom<Fr!7e&bJd lAr80Hd6!Hb7%|`cbI(Zcw)e6EJq}VBPAXQa1L7Ag`yc0$hQ<H@ diff --git a/QLearningApp/RLsync.cs b/QLearningApp/RLsync.cs index 5e8256e..ba89edc 100644 --- a/QLearningApp/RLsync.cs +++ b/QLearningApp/RLsync.cs @@ -10,8 +10,8 @@ namespace QLearningApp // private double[] delta_space = { 10, 20, 30, 40, 50, 100 }; // possible values of delta public double[] delta_space = { 20 }; - public double alpha = 0.9; //original value - public double beta = 0.9;//original value + public double alpha = 0.5; //original value + public double beta = 0.5;//original value // State space public double[] fps_space = { 10, 15, 20, 25, 30 }; @@ -34,7 +34,7 @@ namespace QLearningApp { //keeping deltaIndex as 4 so that RL algo could get the FPS 30 value, changed it to 2 to get the better Q values - deltaIndex = 2; + deltaIndex = 4; double[,] FPS = new double[,] { { 0, 10, 10, 15, 15, 15 }, { 10, 12, 13, 15, 20, 22 }, { 10, 15, 15, 20, 25, 25 }, { 10, 20, 20, 25, 30, 30 }, { 10, 20, 25, 30, 30, 30 }, { 25, 25, 27, 30, 30, 30 } }; return FPS[gammaIndex,deltaIndex]; } diff --git a/QLearningApp/bin/Debug/QLearningApp.exe b/QLearningApp/bin/Debug/QLearningApp.exe index 942955cfde5732957f6bf7e169ed14591c43790c..dd85ef5d8b654d2ec43c4a78f954a79055056d3f 100644 GIT binary patch delta 676 zcmY+>OK1~87zgnGH{0xvB}q4LQEBsP;~`)Q9t4H17#~oOf{GM!@+6{nrIw^vYJ5SL zfq)p1f<1Upv`fWP?V+~d<79+lYHd+3qKH8$NC{3hBh-O!;kW;pZ-;M7g;HU%+>y6J z@9dkqsM~&UnqCT`j3;LS`$U3e#V}>4D#oZ7Z_0PAbxan62fua$2V#IGWdOQ(lFo@C zc8zw3_v{>96^FH+J+WKe0QE*w?osTurbZdi!IakqMzyVU?rFC>i?u{+w~ax4o($BI zElq5n(@B13%~b`Hd_iUx-98n>_#5I_R_f<9+J?cjdyc=RI(6cN(kJ#&s?e6~`9+HN zx;x?J9(a*2DhmA@`7qws3dit*HOP-=N<;bvb)lMRXV0}wGV#jQ1i!1*DS)?1kF<u= ziqd(R1@T$wlFWkmuJqJ+Od<Tv6y4kKdBcMcnku|*5DP<>GncdA6+@RYT`j_=k065C zcIM70g1P^+<mw8l*q{iOw`5VQtL%o%qOv<Vvt0w4FMSX&aZ)}5xa?49r`O!Pb7*?K ze#8<hBTM^#mhU^+p0E~~X-+M+ZYBRK&d54z$r7iMDf7Zt9?maJA1$p8KMagVK8SMi mc(5Vkf6FVoBW@?6tZB`p{F<HfI{v;t9v1I+0@)vA=ZwE@fsU~N delta 686 zcmY+?O=uHA7zW_?n`w5}B}tPsf6&tAr)jDLNx_3)u_+>03X+3Rgo4F`h=`YZ5v^%Z zO8qG&3<Lx{1U#e{5f*yXDz$<n7ZnA2Xut@H5v3?q5pi}iLj7QdeR%hq8FqGldVadJ z*mdgMq4o03KH5`Wo}$-+DD4`}0sBRqWyEnxQ%w}95HrW&)Dbx|xPaZjXawL=I-rT_ zU{>VWHHwP2><kHUm=7F?F7*SH3MV_g`*PJ(L_HtORp%Jc#gdJ>UG1?szLS>Vx6MK` zZg-Y3sjZTZX2RA&^r1#_&$goqO2(SZt~%>h5HT8LprtfoyrNy08g%-MI&F}N6H4#c zrqt<<<eKlLf+^=sxD6NF$QKla)+P^1Lv~oiQ?^B3tSRNSZR$oX-N_#D-{iv^M+?SX zzCnI$D&6N>QXiDg$}E7dN*81nz)z(W{Q>oWh6~PVj8)x*9+<-&UDt^P5m2h=npB^o zb$GOk2;p%jbG}mu&;Qd)M^|tM+Y~};M;69smEDk8SZ+qva`zbbWaZWSFe7I_7On4r zUbpYo3-UMj_D-&tMM1}Y<gM61kcXbl&fc@nDDM>~<v5>{Lrf%+J}+;Sd>?BQOHcY+ tpX%Am;!@&h;E#;|Rn-2yV&!<4nd8>CgqK_1p<gbR8L|ACFI3Lze*vSFl&}B* diff --git a/QLearningApp/bin/Debug/QLearningApp.pdb b/QLearningApp/bin/Debug/QLearningApp.pdb index 7c90f68523a5a17da98c8732076e7c56d750b7ed..59f8455f6d0cc789d542866017dc0fe548410b34 100644 GIT binary patch delta 1587 zcmdUvZA@Eb6vv-a+QL=36*pj`s|8sZP}<AOu#uOxWIA3#7hYZVVNMJiFsXpXp&3xd zi+o@cva^K&VY4B`Xmlyug`h}?QAS9{l#rk%P9;WzCWLf}F^h5fzg^-7Kl#<0od56K z^W1x$`<&-IxBHH!`;I19qECFky!zsegwM_mjl@kad3L^>{L%2uwnN%oda~L*6PxLr zF1kiDQ6<L2H%6|$)%f_t_q*n{-Y%JX=zsC4wPTK(NlWHF>(<W;H~tDgm~b&#`}?s1 z9S^6}XrGSvUskqK3W!?RnwktPO`V5!rkj++G%b;zt?9?12+$d2G<}e$m8}`c(9(=` zYG<>(fx5WgZrR@zAp{8_;zUHu6*%9*QgI*T1$z#C%^|x?_c+NhP6v3wkqq5*#FLpH zIAluVG<lrLcuBTEf0763meQ7KBkJIZEE{wsYkYq&3fXXNJVIEX5JDf|&TNz9!KgYC z;6S#G(s?!epsu*i=c`lhXAe@%g*xgvN<G)8XNh`4)Hg-_g8E(5?~hYIS{o_I2pWi} zPu2*H(2G2g9-~e&EU79)@*{+G59V#>wZj&}EzDbvC)Ck){`2rSN;8^kLup2HP5eWy zk-C%+?jsUJ23wqISa+#&lFF2A=XrH~P0!3zfUS8s{!>D9+mWRXbb>E|d0;(Q2A&3A z0MCFIzy@#_Yy{r{o4}jkS@09^WpD*-2G>C!2nb0$CJf>v>;x<Yb_jO*ETk3oChRz@ z5OxGs1FL{N8Gi9T64b!j_3CcZKSj|YRsvJ6R!pQ8wGG@2z6zSb*T5w3buP-Ezg%#T z#@JfmjtYcR3Bh&sd)QxKrT2KMAfJM~37unep_3N57P`!r3iIhMuRu3g=SqgAxsITF ze6C(33%P74rP*ymhLFp|!)`4%x}%ZF>{joL$QHopBCkT1!_Rm;THfc0MppG1kH<(G zN~Nb(PaiAq9+ij&l<8twLj$~7YLR7pya9`FfxAF2h!*L_4heKbHx@4Tf)WZR35Oz= z{YL0#Yq{Fh&z1L*!Yk!&`idoQ14-QG9Y7yE@Y*zFXKRHGT3O*I7q3;wRKZj^NwYjv zc?h~%>7-9tS0&SJ&aE23%d1ru=r$roHdo6O%id}~*_GAm9HLo;YE49vVt)P$31?~h zltl{|>IZamMY-Cvqpm2cIUb)i(QLxJA2pkFvl=0)c>z(0Lx{Gr!Dm7rLv`xmzRoee zc(iXFqGjBPXa{!Psz!AIcpKqyoC=JO@isKTMX#8!8LA%)`*UG`G3+mg{ky8K+dvPD zatQfb_!qq6XI+bphLo%pQzQiy@3}uB{@d@ZBT6p~MPeUt4Jk1_=QaQS+x2}ArPkom vj{g5rgOPR3zL|%C+v=I}{Tj9R+0UnnyT3c}VN74_J>|eyrdF-cbtUp|4LHkj delta 1528 zcmdUve@t6d6vyu=ZJ~y4MFcjxu3%T7bnWBEng-~gbD098k>As3Hm6Ls@oR*{WJ0A_ zlm*5_k8_(1i^~N4gBrG{i3U(ZFbjdkY}LgOlLcgn#E=CHCJQF|ecgZl<-fk<en01) zd*8YDo_pR4ET{qts);gf`o*)`-z_|SIMrXYaaOv&wff=H-}uLVu6fG;+~x6`&aaN# zIB=P6CX^Y{b8gLQJu@3e??p{N>eCB#&i>Kq&9*muf4n%wV>L-<ViTV{pQxU^(7eUN znRV)S7Nmapw@eRF7hAI}(DLj_s6WRjr`yy-gKW(?0)>Mb<tsUZMBQxNYk`*UjZ%<J zjwTx5w;kr4193u-5F%B?C4B(n7qo2jr+C^?Kr6iNkZ6@NoFU5QX{QCc<V+(QKXgju zV4D=82L4_$L+?w2^qt(1YbQF#BYAe{TwZABcmkr~x%&t)eOw4_nEm-iod=`JNSLqX z+bNSH`Flvnf94O8C-4{b2B`NA_5Mx4ObRYipNslBsqc$aWy9)tK?YDyM8QUtPzkLl z5;;lA0_S;pUmA}2(>}9)0xOj1gs{LLWO9X&gb|k=qa!XOueb~}Aa9}{mm;#*;<n+0 zKKFHMkk{Q^%1K%aCn?OfqJo~ILIfO$atw5XFM~zkD_{lqDu_9v5$pv|fWzQx;KyJS z_&InIoB~gQbKq$(3O0j)(22){UObOhhn9(!g?2&>Y36%HX~~CS?T$^`!1Ow_AnS^a z8Epulq^2F*4xRx`U<a51cJiU($@i+%?|b&p7+XE131RJ{+vnqr$=u_y(w98yDW)l2 zg3hvOznkW{9vbDL{l&D%bI@hhlvtp)l7lFL){-ECt(Vx5B~z!OqLJY1^glckA> zWGYp921L7t(Rq$Qqp>+&ubOvw6A@LJ<MkS7S+4fhYw3dg=`%VamTx>Osfc;0+$<Gi z|9YH5N%S`G1rT=~z!^m{*bP1b>cl~0CQp_sHVH*(tyD_$P-T$5<+;jI`jvIQCQ9KB zUq7z+q0g?OLbg`fq19DARKd5aBzlRd`Z~?<Xmu7eQthS)YicCA!>*c3csWvIhOWW0 zi%qo>Ww5WdhYICLZ2{4YO!Y>h6xr19gN`QTwPR*Apl|Hg(6D^*)C1*2c`a$!)<}yH z>wev0)Xb=asO4#RQ+OTTZq~ONQKC?d@`YaIq}DW4=5cr%*bnbHjSyDFs|mxp8ygSu zZH$lc8Z^uY+Kjji#h!}UvoU)<W=CW8qGD^7Q3F?a9r3$(74HnPrrk~<Ij`LqPvf%h z^{u%7_K)gL(CR|*xCcBTIq9t~)xUpPed7sA4u&3R|1UYX6jklG)!F%p@>y+*iwql9 aKPw-a*}d}nLhhULu8(rnN`|h=@&5p7S<}@3 diff --git a/QLearningApp/obj/Debug/QLearningApp.csprojAssemblyReference.cache b/QLearningApp/obj/Debug/QLearningApp.csprojAssemblyReference.cache index 215ea7b359ec0d916a4f021f89f4bf99a000a11e..5485901991f75d811c511f8b31437067d0d8912b 100644 GIT binary patch delta 13 UcmZ3%yn=ayKO^I$$pMTJ03S32CIA2c delta 13 UcmZ3%yn=ayKO<wq<N(G903O-|6aWAK diff --git a/QLearningApp/obj/Debug/QLearningApp.exe b/QLearningApp/obj/Debug/QLearningApp.exe index 942955cfde5732957f6bf7e169ed14591c43790c..dd85ef5d8b654d2ec43c4a78f954a79055056d3f 100644 GIT binary patch delta 676 zcmY+>OK1~87zgnGH{0xvB}q4LQEBsP;~`)Q9t4H17#~oOf{GM!@+6{nrIw^vYJ5SL zfq)p1f<1Upv`fWP?V+~d<79+lYHd+3qKH8$NC{3hBh-O!;kW;pZ-;M7g;HU%+>y6J z@9dkqsM~&UnqCT`j3;LS`$U3e#V}>4D#oZ7Z_0PAbxan62fua$2V#IGWdOQ(lFo@C zc8zw3_v{>96^FH+J+WKe0QE*w?osTurbZdi!IakqMzyVU?rFC>i?u{+w~ax4o($BI zElq5n(@B13%~b`Hd_iUx-98n>_#5I_R_f<9+J?cjdyc=RI(6cN(kJ#&s?e6~`9+HN zx;x?J9(a*2DhmA@`7qws3dit*HOP-=N<;bvb)lMRXV0}wGV#jQ1i!1*DS)?1kF<u= ziqd(R1@T$wlFWkmuJqJ+Od<Tv6y4kKdBcMcnku|*5DP<>GncdA6+@RYT`j_=k065C zcIM70g1P^+<mw8l*q{iOw`5VQtL%o%qOv<Vvt0w4FMSX&aZ)}5xa?49r`O!Pb7*?K ze#8<hBTM^#mhU^+p0E~~X-+M+ZYBRK&d54z$r7iMDf7Zt9?maJA1$p8KMagVK8SMi mc(5Vkf6FVoBW@?6tZB`p{F<HfI{v;t9v1I+0@)vA=ZwE@fsU~N delta 686 zcmY+?O=uHA7zW_?n`w5}B}tPsf6&tAr)jDLNx_3)u_+>03X+3Rgo4F`h=`YZ5v^%Z zO8qG&3<Lx{1U#e{5f*yXDz$<n7ZnA2Xut@H5v3?q5pi}iLj7QdeR%hq8FqGldVadJ z*mdgMq4o03KH5`Wo}$-+DD4`}0sBRqWyEnxQ%w}95HrW&)Dbx|xPaZjXawL=I-rT_ zU{>VWHHwP2><kHUm=7F?F7*SH3MV_g`*PJ(L_HtORp%Jc#gdJ>UG1?szLS>Vx6MK` zZg-Y3sjZTZX2RA&^r1#_&$goqO2(SZt~%>h5HT8LprtfoyrNy08g%-MI&F}N6H4#c zrqt<<<eKlLf+^=sxD6NF$QKla)+P^1Lv~oiQ?^B3tSRNSZR$oX-N_#D-{iv^M+?SX zzCnI$D&6N>QXiDg$}E7dN*81nz)z(W{Q>oWh6~PVj8)x*9+<-&UDt^P5m2h=npB^o zb$GOk2;p%jbG}mu&;Qd)M^|tM+Y~};M;69smEDk8SZ+qva`zbbWaZWSFe7I_7On4r zUbpYo3-UMj_D-&tMM1}Y<gM61kcXbl&fc@nDDM>~<v5>{Lrf%+J}+;Sd>?BQOHcY+ tpX%Am;!@&h;E#;|Rn-2yV&!<4nd8>CgqK_1p<gbR8L|ACFI3Lze*vSFl&}B* diff --git a/QLearningApp/obj/Debug/QLearningApp.pdb b/QLearningApp/obj/Debug/QLearningApp.pdb index 7c90f68523a5a17da98c8732076e7c56d750b7ed..59f8455f6d0cc789d542866017dc0fe548410b34 100644 GIT binary patch delta 1587 zcmdUvZA@Eb6vv-a+QL=36*pj`s|8sZP}<AOu#uOxWIA3#7hYZVVNMJiFsXpXp&3xd zi+o@cva^K&VY4B`Xmlyug`h}?QAS9{l#rk%P9;WzCWLf}F^h5fzg^-7Kl#<0od56K z^W1x$`<&-IxBHH!`;I19qECFky!zsegwM_mjl@kad3L^>{L%2uwnN%oda~L*6PxLr zF1kiDQ6<L2H%6|$)%f_t_q*n{-Y%JX=zsC4wPTK(NlWHF>(<W;H~tDgm~b&#`}?s1 z9S^6}XrGSvUskqK3W!?RnwktPO`V5!rkj++G%b;zt?9?12+$d2G<}e$m8}`c(9(=` zYG<>(fx5WgZrR@zAp{8_;zUHu6*%9*QgI*T1$z#C%^|x?_c+NhP6v3wkqq5*#FLpH zIAluVG<lrLcuBTEf0763meQ7KBkJIZEE{wsYkYq&3fXXNJVIEX5JDf|&TNz9!KgYC z;6S#G(s?!epsu*i=c`lhXAe@%g*xgvN<G)8XNh`4)Hg-_g8E(5?~hYIS{o_I2pWi} zPu2*H(2G2g9-~e&EU79)@*{+G59V#>wZj&}EzDbvC)Ck){`2rSN;8^kLup2HP5eWy zk-C%+?jsUJ23wqISa+#&lFF2A=XrH~P0!3zfUS8s{!>D9+mWRXbb>E|d0;(Q2A&3A z0MCFIzy@#_Yy{r{o4}jkS@09^WpD*-2G>C!2nb0$CJf>v>;x<Yb_jO*ETk3oChRz@ z5OxGs1FL{N8Gi9T64b!j_3CcZKSj|YRsvJ6R!pQ8wGG@2z6zSb*T5w3buP-Ezg%#T z#@JfmjtYcR3Bh&sd)QxKrT2KMAfJM~37unep_3N57P`!r3iIhMuRu3g=SqgAxsITF ze6C(33%P74rP*ymhLFp|!)`4%x}%ZF>{joL$QHopBCkT1!_Rm;THfc0MppG1kH<(G zN~Nb(PaiAq9+ij&l<8twLj$~7YLR7pya9`FfxAF2h!*L_4heKbHx@4Tf)WZR35Oz= z{YL0#Yq{Fh&z1L*!Yk!&`idoQ14-QG9Y7yE@Y*zFXKRHGT3O*I7q3;wRKZj^NwYjv zc?h~%>7-9tS0&SJ&aE23%d1ru=r$roHdo6O%id}~*_GAm9HLo;YE49vVt)P$31?~h zltl{|>IZamMY-Cvqpm2cIUb)i(QLxJA2pkFvl=0)c>z(0Lx{Gr!Dm7rLv`xmzRoee zc(iXFqGjBPXa{!Psz!AIcpKqyoC=JO@isKTMX#8!8LA%)`*UG`G3+mg{ky8K+dvPD zatQfb_!qq6XI+bphLo%pQzQiy@3}uB{@d@ZBT6p~MPeUt4Jk1_=QaQS+x2}ArPkom vj{g5rgOPR3zL|%C+v=I}{Tj9R+0UnnyT3c}VN74_J>|eyrdF-cbtUp|4LHkj delta 1528 zcmdUve@t6d6vyu=ZJ~y4MFcjxu3%T7bnWBEng-~gbD098k>As3Hm6Ls@oR*{WJ0A_ zlm*5_k8_(1i^~N4gBrG{i3U(ZFbjdkY}LgOlLcgn#E=CHCJQF|ecgZl<-fk<en01) zd*8YDo_pR4ET{qts);gf`o*)`-z_|SIMrXYaaOv&wff=H-}uLVu6fG;+~x6`&aaN# zIB=P6CX^Y{b8gLQJu@3e??p{N>eCB#&i>Kq&9*muf4n%wV>L-<ViTV{pQxU^(7eUN znRV)S7Nmapw@eRF7hAI}(DLj_s6WRjr`yy-gKW(?0)>Mb<tsUZMBQxNYk`*UjZ%<J zjwTx5w;kr4193u-5F%B?C4B(n7qo2jr+C^?Kr6iNkZ6@NoFU5QX{QCc<V+(QKXgju zV4D=82L4_$L+?w2^qt(1YbQF#BYAe{TwZABcmkr~x%&t)eOw4_nEm-iod=`JNSLqX z+bNSH`Flvnf94O8C-4{b2B`NA_5Mx4ObRYipNslBsqc$aWy9)tK?YDyM8QUtPzkLl z5;;lA0_S;pUmA}2(>}9)0xOj1gs{LLWO9X&gb|k=qa!XOueb~}Aa9}{mm;#*;<n+0 zKKFHMkk{Q^%1K%aCn?OfqJo~ILIfO$atw5XFM~zkD_{lqDu_9v5$pv|fWzQx;KyJS z_&InIoB~gQbKq$(3O0j)(22){UObOhhn9(!g?2&>Y36%HX~~CS?T$^`!1Ow_AnS^a z8Epulq^2F*4xRx`U<a51cJiU($@i+%?|b&p7+XE131RJ{+vnqr$=u_y(w98yDW)l2 zg3hvOznkW{9vbDL{l&D%bI@hhlvtp)l7lFL){-ECt(Vx5B~z!OqLJY1^glckA> zWGYp921L7t(Rq$Qqp>+&ubOvw6A@LJ<MkS7S+4fhYw3dg=`%VamTx>Osfc;0+$<Gi z|9YH5N%S`G1rT=~z!^m{*bP1b>cl~0CQp_sHVH*(tyD_$P-T$5<+;jI`jvIQCQ9KB zUq7z+q0g?OLbg`fq19DARKd5aBzlRd`Z~?<Xmu7eQthS)YicCA!>*c3csWvIhOWW0 zi%qo>Ww5WdhYICLZ2{4YO!Y>h6xr19gN`QTwPR*Apl|Hg(6D^*)C1*2c`a$!)<}yH z>wev0)Xb=asO4#RQ+OTTZq~ONQKC?d@`YaIq}DW4=5cr%*bnbHjSyDFs|mxp8ygSu zZH$lc8Z^uY+Kjji#h!}UvoU)<W=CW8qGD^7Q3F?a9r3$(74HnPrrk~<Ij`LqPvf%h z^{u%7_K)gL(CR|*xCcBTIq9t~)xUpPed7sA4u&3R|1UYX6jklG)!F%p@>y+*iwql9 aKPw-a*}d}nLhhULu8(rnN`|h=@&5p7S<}@3 -- GitLab