From 76809afe426527705d5a64495e526dd0308bf5ba Mon Sep 17 00:00:00 2001 From: Dimitris Stripelis <11239849+dstripelis@users.noreply.github.com> Date: Fri, 13 Dec 2024 21:27:31 +0200 Subject: [PATCH] refactor(baselines) Update FedRep baseline (#4681) Co-authored-by: jafermarq --- baselines/fedrep/README.md | 85 +++-- baselines/fedrep/_static/cifar100_100_20.png | Bin 51608 -> 51125 bytes baselines/fedrep/_static/cifar100_100_5.png | Bin 54293 -> 50075 bytes baselines/fedrep/_static/cifar10_100_2.png | Bin 57701 -> 54765 bytes baselines/fedrep/_static/cifar10_100_5.png | Bin 58541 -> 54133 bytes baselines/fedrep/conf/cifar100_20.toml | 11 + baselines/fedrep/conf/cifar100_5.toml | 11 + baselines/fedrep/conf/cifar10_2.toml | 8 + baselines/fedrep/conf/cifar10_5.toml | 8 + baselines/fedrep/docs/make_plots.py | 50 +++ baselines/fedrep/fedrep/__init__.py | 2 +- baselines/fedrep/fedrep/base_model.py | 162 ++++----- baselines/fedrep/fedrep/client.py | 319 ------------------ baselines/fedrep/fedrep/client_app.py | 186 ++++++++++ baselines/fedrep/fedrep/conf/base.yaml | 46 --- .../fedrep/fedrep/conf/cifar100_100_20.yaml | 44 --- .../fedrep/fedrep/conf/cifar100_100_5.yaml | 44 --- .../fedrep/fedrep/conf/cifar10_100_2.yaml | 44 --- .../fedrep/fedrep/conf/cifar10_100_5.yaml | 44 --- baselines/fedrep/fedrep/constants.py | 21 +- baselines/fedrep/fedrep/dataset.py | 108 +++++- .../fedrep/fedrep/dataset_preparation.py | 1 - baselines/fedrep/fedrep/main.py | 123 ------- baselines/fedrep/fedrep/models.py | 33 +- baselines/fedrep/fedrep/server.py | 1 - baselines/fedrep/fedrep/server_app.py | 80 +++++ baselines/fedrep/fedrep/strategy.py | 2 +- baselines/fedrep/fedrep/utils.py | 241 ++++--------- baselines/fedrep/pyproject.toml | 154 +++++---- 29 files changed, 756 insertions(+), 1072 deletions(-) create mode 100644 baselines/fedrep/conf/cifar100_20.toml create mode 100644 baselines/fedrep/conf/cifar100_5.toml create mode 100644 baselines/fedrep/conf/cifar10_2.toml create mode 100644 baselines/fedrep/conf/cifar10_5.toml create mode 100644 baselines/fedrep/docs/make_plots.py delete mode 100644 baselines/fedrep/fedrep/client.py create mode 100644 baselines/fedrep/fedrep/client_app.py delete mode 100644 baselines/fedrep/fedrep/conf/base.yaml delete mode 100644 baselines/fedrep/fedrep/conf/cifar100_100_20.yaml delete mode 100644 baselines/fedrep/fedrep/conf/cifar100_100_5.yaml delete mode 100644 baselines/fedrep/fedrep/conf/cifar10_100_2.yaml delete mode 100644 baselines/fedrep/fedrep/conf/cifar10_100_5.yaml delete mode 100644 baselines/fedrep/fedrep/dataset_preparation.py delete mode 100644 baselines/fedrep/fedrep/main.py delete mode 100644 baselines/fedrep/fedrep/server.py create mode 100644 baselines/fedrep/fedrep/server_app.py diff --git a/baselines/fedrep/README.md b/baselines/fedrep/README.md index ece30edf0943..d67730e4065a 100644 --- a/baselines/fedrep/README.md +++ b/baselines/fedrep/README.md @@ -36,91 +36,90 @@ dataset: [CIFAR-10, CIFAR-100] These two models are modified from the [official repo](https://github.com/rahulv0205/fedrep_experiments)'s. To be clear that, in the official models, there is no BN layers. However, without BN layer helping, training will definitely collapse. -Please see how models are implemented using a so called model_manager and model_split class since FedRep uses head and base layers in a neural network. These classes are defined in the `models.py` file and thereafter called when building new models in the directory `/implemented_models`. Please, extend and add new models as you wish. +Please see how models are implemented using a so called model_manager and model_split class since FedRep uses head and base layers in a neural network. These classes are defined in the `models.py` file. Please, extend and add new models as you wish. **Dataset:** CIFAR10, CIFAR-100. CIFAR10/100 will be partitioned based on number of classes for data that each client shall receive e.g. 4 allocated classes could be [1, 3, 5, 9]. -**Training Hyperparameters:** The hyperparameters can be found in `conf/base.yaml` file which is the configuration file for the main script. - -| Description | Default Value | -| --------------------- | ----------------------------------- | -| `num_clients` | `100` | -| `num_rounds` | `100` | -| `num_local_epochs` | `5` | -| `num_rep_epochs` | `1` | -| `enable_finetune` | `False` | -| `num_finetune_epochs` | `5` | -| `use_cuda` | `true` | -| `specified_device` | `null` | -| `client resources` | `{'num_cpus': 2, 'num_gpus': 0.5 }` | -| `learning_rate` | `0.01` | -| `batch_size` | `50` | -| `model_name` | `cnncifar10` | -| `algorithm` | `fedrep` | +**Training Hyperparameters:** The hyperparameters can be found in `pyproject.toml` file under the `[tool.flwr.app.config]` section. + +| Description | Default Value | +|-------------------------|-------------------------------------| +| `num-server-rounds` | `100` | +| `num-local-epochs` | `5` | +| `num-rep-epochs` | `1` | +| `enable-finetune` | `False` | +| `num-finetune-epochs` | `5` | +| `use-cuda` | `true` | +| `specified-cuda-device` | `null` | +| `client-resources` | `{'num-cpus': 2, 'num-gpus': 0.5 }` | +| `learning-rate` | `0.01` | +| `batch-size` | `50` | +| `model-name` | `cnncifar10` | +| `algorithm` | `fedrep` | ## Environment Setup -To construct the Python environment follow these steps: +Create a new Python environment using [pyenv](https://github.com/pyenv/pyenv) and [virtualenv plugin](https://github.com/pyenv/pyenv-virtualenv), then install the baseline project: ```bash -# Set Python 3.10 -pyenv local 3.10.12 -# Tell poetry to use python 3.10 -poetry env use 3.10.12 +# Create the environment +pyenv virtualenv 3.10.12 fedrep-env -# Install the base Poetry environment -poetry install +# Activate it +pyenv activate fedrep-env -# Activate the environment -poetry shell +# Then install the project +pip install -e . ``` ## Running the Experiments ``` -python -m fedrep.main # this will run using the default settings in the `conf/base.yaml` +flwr run . # this will run using the default settings in the `pyproject.toml` ``` -While the config files contain a large number of settings, the ones below are the main ones you'd likely want to modify to . +While the config files contain a large number of settings, the ones below are the main ones you'd likely want to modify. ```bash -algorithm: fedavg, fedrep # these are currently supported -dataset.name: cifar10, cifar100 -dataset.num_classes: 2, 5, 20 (only for CIFAR-100) -model_name: cnncifar10, cnncifar100 +algorithm = "fedavg", "fedrep" # these are currently supported +dataset-name = "cifar10", "cifar100" +dataset-split-num-classes = 2, 5, 20 (only for CIFAR-100) +model-name = "cnncifar10", "cnncifar100" ``` - +See also for instance the configuration files for CIFAR10 and CIFAR100 under the `conf` directory. ## Expected Results +The default algorithm used by all configuration files is `fedrep`. To use `fedavg` please change the `algorithm` property in the respective configuration file. The default federated environment consists of 100 clients. + +When the execution completes, a new directory `results` will be created with a json file that contains the running configurations and the results per round. + +> [!NOTE] +> All plots shown below are generated using the `docs/make_plots.py` script. The script reads all json files generated by the baseline inside the `results` directory. ### CIFAR-10 (100, 2) ``` -python -m fedrep.main --config-name cifar10_100_2 algorithm=fedrep -python -m fedrep.main --config-name cifar10_100_2 algorithm=fedavg +flwr run . --run-config conf/cifar10_2.toml ``` ### CIFAR-10 (100, 5) ``` -python -m fedrep.main --config-name cifar10_100_5 algorithm=fedrep -python -m fedrep.main --config-name cifar10_100_5 algorithm=fedavg +flwr run . --run-config conf/cifar10_5.toml ``` ### CIFAR-100 (100, 5) ``` -python -m fedrep.main --config-name cifar100_100_5 algorithm=fedrep -python -m fedrep.main --config-name cifar100_100_5 algorithm=fedavg +flwr run . --run-config conf/cifar100_5.toml ``` ### CIFAR-100 (100, 20) ``` -python -m fedrep.main --config-name cifar100_100_20 algorithm=fedrep -python -m fedrep.main --config-name cifar100_100_20 algorithm=fedavg +flwr run . --run-config conf/cifar100_20.toml ``` - \ No newline at end of file + diff --git a/baselines/fedrep/_static/cifar100_100_20.png b/baselines/fedrep/_static/cifar100_100_20.png index 2421f15ac6c6a1c3105821d4d958ee79b1ac676a..3f97d08a4dff0220e11e5fa012cfabcc72aeadf9 100644 GIT binary patch literal 51125 zcmeFZFyZ1yXM~G z?|SaH_doEwI3EX`IkV5+Yp?ZOJ!L>5d7hDS(&$SVl5I_l{QwZ+3vp^48xscpSf8zmXr$xM8VD|0qcM-WOPD z7N0GgtzuE)(aVz)`0(&I4u^5col!Qf@qv1cXtOp+$vziEMs`ll!=O7)aOrUfo;nao zOL2bttT%LehvD z7#x&{$^}dF@FAw0%2=&O;jELc$Fv*mC@v9^#o=oI<#A=>uiw8}vJ00J9UA5{6YY)L zBPio~%}L~}j!sG0)Vb}agu$mN1guE{E+%I$X+17aof=SAJ29U=N$cv~fBB7l9t=e$ z^444^Q_2HD!EbDZbpu`oPEI_H*GGjS2R(eDk&$vLBqRAcV?tYL?T zuKs)B2Cp?VkS@9|E_@!denRo_@v`#rygtXa>V^6=hnn?UlaH4tAb(ov`QU=h^jY zzJ?Mr85e7g6&YbQUM_Qu*ZTF~w(F1j@n0}c zMGs%!?m;Rlshg`YNo>0+kgM_Xi^1grIX^$Y>R}$OeDxI1gg8!tcn`SaxZ5-H`fJ0~M~zRD17Qdqk!I^%y~XJ5M|C?84HhR;>k zbcRgrn<%%57jn?o;rbDcO!0{V%jcs5w?05|`X zLoDNO-uI`{RdlxjCL6pXNQJ{uKS%#kN$AFMPHMuh=Jcv zByql)F*H0}Y}|$i;?|dzPQ>{Uh%lS1R3<5@RCH{Bt@7_;P>9++8a24-R*=rzlPE-_ zrWTmstn~8bL8s(-sr!~TD=TZ&T4tj7wn2q0<0*#T z%PYUfoDZLjeXjmw#^xk0=#IowOlkV_A4HO;u=$o?m-XLS?(3pTN=je9fA_hxvA1`Z zyq>Tryh}sV`+;1)BTuW8g2!04HjF-sRsv7j*w{F$eQmpTrvYp3tE%!|RRG996a+ZP zMfcid8Zr0N`!~65M%Y2#%g)cYJF0HDKDWtyl{zzDyggMN^X(g1Do@ad4?J$`Z;_fZ z7d7(Hv|D$X*G;hPSgUite*OCC%a?`AI)=jG2uePXO34KT1oQ+s>19VhL$5>pGr_bh z!lU`D27W3V*tCU_5>WAXEY8{#*010`QK z!RVu`U%x)o)rmVhJBtdapCAut11}E9$;mxD^S1VuzZ;Y|Ez0}v2GR-dY;@QN_?|j$ zx{F;LZ*6=*ht)Tdcewq1tCZiz#>T*C!O*6B4|-`&l;XHCU|^<-T#(A&xD2*^H-n`v z>4_u`@1*+f-y+v_d~1YCR{nqqB2fqw!qr@8aRf<@v@Nef^m= z^ypG5ce!nc${7P-M~M7b=4A`B7Zy$hBzoF1Z^n_>-NK5K@@lI zHs7T4g`|y)=%Xdina#}1XgAJ52^6151=EqgnGFpoAj^H4n9vrq9h)l_EMh2(y{>UJbL0wI6}<=H z_4l>5wSA6{AJ32UR8w09`6mN>WN#6EA+E2kF0ZGTtZ>JOpGx9=rwc+P80@C~($uSn zli2_|m=x-)Zz=$Fg)k{8Elu9I5g7aV^SfU2jJ&)a6RI)e;@2uFGUn!t(DUcdgMx#_ zvW%wJPS)V(F<-w1r86gqdzI)d9?<4q9C$@HU!8%hBkX_a8QeZW7T)&9?7Loj6ph#^ z$UPvA(&39VUipWkZGId-?mTquph9md^i$Q<)u~_fxwVrU_{xCUA`;()9O{q0!5b}7 z{l0zth@)PhJH9S}E{<2nlV@{*L}O)E#A#}c1^V?9XN3&4HlTcxHf6={fg)TyxrKle z;$X!vD(z1mdV*q1Kqpx@Y~>o$*&1?}LD+feSuH#}5kxg(Os53_S@?&kDcyfN>-K%& zIn}qtUI*sLMH-{ZNv#@J7Mqd0`C$zMv+K(7UP{tN{VOHeHAM{<=c zgYHZ(fMjg#>RKiW9=%cG_%@B`&~HiDs6jwI6%9?kprGKnpYKq%%6c_2W#e+nfKFO% z*c%}yC-)n`i(4z*&epj^hHu_{@t*%c?mZO%a#*&CiVEV|7vyy!smmg~Y@G^Qrq_kF2iacll)lV6F2t-|n*KDRz zqVG8*C?N0~q~W&~eJRr`npo8!-M*FfTZy;OmMEw%9RBrPKSw!%|98vcy(g|*@t9=k zbW}XXHwqihS*1>!i715Zlif zF&!^4({*YiO#s{>FM zvo5Hs6Li5MW7oXnco}fDVQ>bQx^AATb_op&TLAg(*z5&NcX;$QeE>)eQQKF^&2@H;(aSOcyukyi25rEl6F^JrGqkrs?gWWHWNKcD&^n!w9e`lnfoSbMHqCh+h zzLGKn5f|6HQb3im`&54;g`v=`@AGI4vcqQDrRJc#;P-DMa6828BG%^{u;jE?7wv6r zZlX{`SlB~OPG$czS3a+NpQySK35EYYycRm@{eWwhDvo#-3_a)$Rvai)|6WA=-xqlp zo8~z=V8gucHOKdi7`ARR!u4N#*3_ag2Lp0PH$60c28}6!X;O%~-)zbMB|iSSrlw}o z9Kya*RYOBTQLzVR_iTLlty-ILvExGPt*HAVf3j6FmdZ)NH{E{(Z8DODW7ke2KG8o7 z2@A76(yX11YBQz>A@}|(CkZ8G=(z0)0N{vG4fNx@xiPTyC~ZS;{~RCu)UZ^U@!!H? zr0xF5VHKM3WB?V4IqZqOy?t$AvHi3tiQEs6K)c~gU|~WKp9Nrl;BdNt9yD73n~Flx zSD1x`rC#C@xZM+1dcZ!T0dfIVM)+t*wRTIyR**U@y@N^u{C7Hehl9cVe9cC|;x`?8 zdMPP7ITduJ2MBJt`+H1G%u`d-N2-~MXs~%KywgG?WeUhApnA?A!#W?Xszk#LJm<0R z-Mi-rG6uiwe!m@bW$A>wc^b5wO3|Lpoqv^F4`^rJfVxy8W*O&6_1GWS; z&4k$@1yfo6dBnsNlaSB_XbBjtkLT6VXlGB)(zM6y zGGL2lNJMf3l|Yx*3`qP6`rd1g|NQxbM)p;Ja-OZ{7S8$_2VqY!tol6KF{La6*8jSpYpi9B}ZSRH@XgRR09PXLiR-qA|EZ5_I35>STx(UvRR^9qy94-XqFX zjK`Gr_m}LGLW!T9otc`OV>*ITwg(c}0bqd#f1eVG^j%!cq7a+or5K)jZRC_f_V;If z4+u-md)F`VAAvx4$**O%l$?DtZO+t$D_Xux9#gtM=V|cm{=a{lKp_<0uGC~#OcW%9 z)%%=?2J$7-ve)3_dS%}qdL(82|TgkqACHZP}4d3jt`6p=_1c+_Kh z`gh=CFCgZiJM@osWN8Fz@uZz%Z@_+lL_WlUeNT3A@jAc7kch*$u!7v&7EAsTyGg+a`92?G~F85tR5|vd_BophMxJ zLpf?e!6n$Or6Wk_79^KzY+_OkiU=Ca0kj4PVKm^WAe*x-EG$$VPuQFRkbp3WmT2b+ zID6@TKA4Jr3VqM{4}ygf-iMZGn*5DZuM7Q-GOIyhr-d5;rWt`L)&;a20^*K+^)gwC z@BVW|Mq;5^Up|+Wp3iFr^g*~hH>a?g*5~+OuL`>ts|gjjnH`T$`FR%@YE3-%Qbu=4%MZgm+qN92^M{Q|o3F3BLeLdraqycEO^DB$$DN+ix#y)4+eb6V> zH}LCaHNYa2eC7n-b)9bkxMsBa_XolxJw3hZV!O5)@CxCrvcZth(D_KAnbmKFYPj^W z@GTE~=w(h~(guc3X>E1_)9C#hO$C2+bnt8KeE-Ptf_!CHIo%Gfl}lX}68riib#RTq zkh)+l&=>8=6+l_;{=U<0qfX#DOR^A5tVUg5pf4SoK{WgZ7ugi~1F$UcVSX)^oRLgF zLcFpuHRU0}7+Si!yZ2v)C)dtQ$b{=XW{`Zpu+BI$_NJ-VB5L!u5s~H>3=$ACvRP|` zjg)(L5iC;`neR{y$9H_fZJtH&9*p!M?~xlVc&afN(6a6v@7;F25`=uu*RtZpy?8;* z1C)fvV_O$3+8`GJUuM^-h*(-O1&p`~z&jQWj;*%4=wvRD(PnOOFdxP_oo~{Zf$8b0 z%^rVCd!(@Z#he~I*UNf~9-^%?eHcibQDu8>2VV6Bh?7{RglCpKv}2^248&D^^|UV z@n)a>LOF+CWqxJ~#{ERvm*(#ouqYltw)VwN$i&IwaW&4kugxD~%6p-LB!L^SVV@T) zg*MwI#kUN= z8S)GW5P{YPXf^pzO+ZOqe>UB0%=sX&FJ|1$d~&x?N~1v zg?H!@Y2ickx4^<(U+AfPk5oFPx+C{MFfkG+F5&0r-YbaY?h3ofBJKPnzvFR)37}ow zfRv0^IWd6n-}6acSusyY)C>3wsy;NKZl<0)yr`Kw9F~(aw&lKgJfgaplOyUdDXLx; zJ#DX`rk1D9CZExN=C^*>*ug+I>T8yOj?@cU#*9^UrE#DrmEv=B%TZCwpMD|MX*#=bkahaN+Zniq_IN|6(e~nc0ubryn{Y%MORPcpLc}8tcH_%qP4=JnmVlrLs%(BXY3iFg1z)qckg4+ihUuhvV>IV-&+s zQhW+ixgOk*JB>N4@1$e)MA4P#KSay)R)52zl5XBKF!q)E_x&+aRi3iX zc)rWj`JMYj=C|jkccN5>4S!XQbXCP6w(34>6qpUQo3|PXCQ>Hc$Coy%C#A-DICcC} z>Wvn5Q_)w;bcU-PmVl!q+nF)#j$^zJ-fRS6>l34*Bn=+*cG7ax0KI`-0iNXDxUG3_ zf&c=JE@c2907VpJCOnWJnpMDL@2EqVcgU?CiYnrthviD(%iIz?GBr;d389^8 zB<)C{K_8G2#;aYJ0IVX~7|CA*0EtmjGG(K%F$Jxzm)ne@3!nexA{`%q4lwKoSfM#N zXk_;2@#7!Nc!1+Y+>-hRAM?TY%x`LApm>dq)~@GK%|TX$u6 zOqmq09P`o-Hs%j$VJ3s+&})^iuzbVYvBMboH(_DvyMd}DA-un{?RFTMMAK%KF}}yf z7Q3#!0Yo4)I@$shSKs|kCU)&ITo}O6_XC@o0NYgtwgwuYqCge$_8R&z57hn@Ab}cA z*SG=IB?-urGqhg-Oy}BJ_BL-n{yyZ4xPj`9qv8;paXh@N-5#=qN@B_h=K7U!VD7cK zn4V<}(2b5~Axnl@H1K-Nrobr3(Nvo~zuMQEjEBj+xRpo0zx><|sxod1Q>TjtYA#^( z3*cJ+arcPE%gf8u)YK8kv&YA;L3%wkD$VsRdWsJr30@fw&c8S=|AOJmbs{_*ss52s zjwisC6~>1ZXE0vPGWR})kY8&nD4u}8MVI(NcQN&|VjV8&6L+3`GYI2hk9^OSdrHYk z=Swzmw7oRt+|2>ddj>NefS&+(m-?Oo!P7Y;BEq!mD+@Xe&?5anRf?dMNa*Nzh7dnc z1XA$&o~N7~wiK{lI=i|a0*B~%4C5ZqjYa4J073^a`fx3<%Cz&I|9(uWuoS9=?poT~ zniZsl%fl?G<2;DnJuJA*>;TdT|JQ&1UC&0ic#vuIXU|a?Iy5_ zw%n9s@Q%I#lX$My{ALH0 zT28-fl6*B9g-!BGeD4NYfdecyv#KhNL#Lt$JRTa%UjtlL0;CnRd4r}67B7>5tiV~j z$;(-@`q0_MCHY-^ZDuATIyV4BidLi1tW4^>Kl&8t_E6PA7+ZFBw&B)9Il=` zs6JoM#qb1{;3-<40dV~fsA3eNuFS8bu3Rk|*#KKW)*+d%g#+H;5SK1s2y3gn%E)Lg zt;PD~w#iXIKV>=>rivrBGm6!;ur8mVN5niTCO5yzN-gJBt*rk7ozS15lCpj9YPOeKvWdHyW#eJWcDhbQkGXT2fL4 z0B%z1EC>|zzNtG~N$g1w2ybnbMTqT)>-!z4Aw)OWA+(A0=FJ=71I7H{q1o$Wp@PP1 zZ}f)8+MS%e{s!jYYfViJqEQ}9g92b4zGW{b%M3feD&n*S#oVWnm#hB}XjZOBn>6Qi zDWt#(37cs?yrp7J~e?dfj7j3f{T z_E{#S<7l@Kt+fEw4V;$UPNvjPsi`~SDbJ(zOaRQDRr|3xH@_G*El(G1f?>_%Ob-{IBQG*yJOuv6vneZ9zo%w0%})#kZ=l zv2Cjxc2U+BanRxB#Q(>SdJI%IrLVzu+G{0#wF|aXEZBo+-v*7biH_72vHBuO)&j*^^JOo*Y%z+GE4Uk;>v^@MBmQqMrWz2#d0XHV#LKRQbO+q z3F``fe#_9WhwR*Ax3JZqA^!5B4Nn2pkB?51W~Yo7i%h~i^E9A1+CnpkI$tn{D({he zuv7M12aG{)?4niwd(iPCxjiXTo65lPObIe$v3C)4QYpZt-9I>p2MXV;2{1_E7dwqR zPH0_MToMH)TeHOU)~K!vVH$S*&D-}4FHiRnCcx6J0*)klV+n)R1O|@L`QaJ@4!}wa zDBGGfuD=f&z}9v>w;_2F(vV)!*=6BVZjK;-<;KC{Y!214zQcbd_~y-E(0Det-Lv$* zqmS6D*q+&WQQnnDK?X>*Q$mO+H5+cO5gN(;nHE{SWfe63?1iH6vRf~Sn$VX!W-Bm7 zjNpjBVS=(9U^gun)NU^vPdXq05Pt;RR)@x`Z;e-54t1vs;m{@8h6Oq^_QC#QW<4sL&!5U2UO43ZfitcIaurkZv$1v2)JA5 z+uaxU{De-jn`6aKk6)2JA)rXznzu*j$D^LJys((iFOVoe>^8?`yxn&M3K4_1xMBq50sEu7l%bSF_4Nu8bTGaeOfV(i*re=DG=LUIdw`tAlST?tr$ z4}jxM*ZrN#0*Kpa1sNSRNlEvikGE;M(6V?}EL%LU86FBe99p#yFW5_*z5KW~m<1GW zWRYPrCTL!$Ui$LVH^m097EscQ15o}2HS4U=aP-pwJ)d^FW`h%0fr!rx3RU2BNJz+T zbrhftLc@gWDHr?P(92A7?;E-qZ%lZYUxTzKt5||=mAv%$z>ho@o+SrUVKwFrqCd@WxDpm7=P`Bj4W~S? zta35RRw+T=@{@o16f5AY+h7dzKLAs4(WCK#Ce`nl60Jr%5Gmo(*C?6Qf1taz;j4`r z{REhmjSzyK1L3jqG!=!P?+RX6%xtI-KPlQ zMFMm^1mb!VIx5C3Ql}@M5|TEsNr)V#UMbTS{~=^N;)CHo_~L@xWBj?w zeMyzR;xHU#>NRbY(6Gvp&qN0aR6+h$WpwI^VpS+8#}+WJW>eH)<6H&xGc|@@jtTYD z0W5C*XE?6`T1|CLuZXACpL&roEFaj`j=bm+_04Y#@DD*Yigtlzphay;lSh?Yy;WQ8 z<-krlY4yJSZTK@Sc{8vOctGD)^W+9X!$d3V|f38CC zJnU!N_BuFN3#7wh$lA*(cKTOnxGg`LCwdbWF# zImiA9*T*Z@SI>hBj`X*kXmz&m&ei=rl3MEdf9Zl9W`P=SFPs^dsc&n~OL{a@y*321 z*_~9>LXO8o4<0k# zFYQ;$7Z>LFvg#P`OMrb3a_2koS4>BCZg9z>GICf?@~7HHOqf7!-D`~7VIi!&%qC zri+w$cfg3FkIIT>VVDu{*FuqtqUCz?(u%o?AI%;Ca{VrcqXsB{T>A3{@&?H+Y8`xT z=G~LrOqc#8f|7d=t;!~nD02)!guo+F<6&*)$f;Xvm*-Q(Q|`x>(%pE+rbf@hdl9{b z{@tMy=JLPVi=4-;E`6_YEp)yau6=kwxA~XX)y@nBeH7(|oy8I&j=4+*j3uZPQrA16 zZI*)hUy*Rg&TcMktfKNpZ-@tWTE@UnOyRfBXe$zdw+?i6X12kRpRxdNPZj^MuQVyv zw6wNfPpOC9e4wTVoQ<@+JhaFVA#WwhDjQI=Z234qvz#2}(?+&~VZ!?d)LG($+ zFrp7hbaGKUSNooob)DmpZ2Z~WH!m9duX&a4i-qwxF$G}mLc%=v0x=26s8hH4-7OQ= zHBnjAB-DtwGEJcR>;tTZQI#FLK;*GasW^`D$Q2kZk)U2+B*_>)0D}M6*fUeppSCt5 zZQxOpW^dBV&YsLVM4Oc6>T-(&ZXlP1cMQbolgWi>O?n&NM1O35S68*itiVRq@giiY z`d5~xX|27O4@v44$MV&d+*FC9Y1YL^a<<*d3Ed{fTtq*MVn@V@huf zyF6`4Zu7@#Dv!cj`4E*qD%w@AU!Lpo&wUk5L5z_KD0oy<`y z(aMBlI)8QK-`n76^1^;R1sb~{Ka~!lEO5j)I5=cwWuKvy`24?>B-EQ~6h?wn!Y;O~ zJIiFn-mgH>nX~ZeX8vvUkVQ1&fbp!)c-s4zS#nyn3*}C-7yf}ktlZshqdx`_Ej6X} zM=u=id7}_JmT;3Rzs>S>lIjEvDV-VP{{&Za_^6ag7<4Jan@^VOsz}_WXvL8jJG{m{w>*Y;ic;rg#o)Z>YW|MW5EPfT(i?u>U2DMZUsXc3(u5pKWb&v7BdAoe*ZJ4&F$ zUC68Go6!)PN8o%4OA_xRjKEZu!zx@pp;VDCZHt5NQ?9Y&_{8HMtMZ*Ki z46W_rhfQ#=jC{dQjd0Fy=n} zWd4Sr`PfNuS?K8}bjMNxBDo6w=cAqnEiz%fLamcUj%qjM9TP)>n%bT=Iv9{tLL$wO zi@u-)J`ClrGgeT%ULleh@TyaJVbjSfD3RcPzNMowR)AYJCXm|cpMS2`e(*W@zFb@< ztTXMj40iV_=70CUA%QhEfuQh)PWAjr%>3XbkdQ0t)7ok7gu()P?FYwDtGZsNXcOPoH=WSJL= zlfB7uvrK3^JVbKdlMVYp4L}c>!kOF#Q=TNbN;V;RIXNyj!);awj&zphUV+Vn-)`Bw zAT~?uFzUJGJ{*scw3husGN43V;$j|Qyy+g>N3&&s*i2uWMQCy}#(prFv`^4l`P}E_+$%G($zkH5LTJQ@rO|`iAdERzvKEM;d6qm9 zB&rF(Mz)nTJ!?-#6+!-k<-FqG2&=iuO42vlgNkqCK99@r+mfZTJtr+fKY~mjWL|L> zx;`y4;@7sTE8C;^CD40mc7%a6Ay+~?Do!4*!-r=Adm_E6CbU<9byBj~C^rM+5QylA z_Ytd(#NdDT`wQ+}pZ=)$HC^|aC3)iNX-L#3f`1c4AID+{#q>9EA*k9$8}&O30=S2@ zhI5!5w|+O122_C{tac2m*xBlun#+AxNdtK3J&A3p+0Q@n?1$V#)^m=zo|FZfqGuwg z?tFzThpG(ryZqrD5AfXI6}uO{SZQst=d~M`@_9Kv2~I)nuLXL!xk#pNvY2cS%^~`! zrG0i@lsMY5-ZjTkQn&LnX3j$qV@3b(hT?uVKULwX23HU#f&xUTA76DGC&~ZLs8fYs z)7G}owifm?FEjMA3x@zt@xVHFL7z~Zg)OB_cs6t7i7PPR{tfC0^3Y+UH?cN6of%>L ziGyk4HgvQ(8wY?V#s;AU0h0vhpYi+JAt{XLfH|Z`W7NIALN6N|83&?Y3L=TpOo#dv zn*&zbs;hy+cx}T<`LwkHP3Kb6hd)AXYfjj|DfX^U$l%?5g#NyCBCXoO2o8l;`}>(D z^%7rcNfn7#w*?=ugvGbqQ&I8sa`DfF+q=AlQhDg{Ad^!IYXAa(2YkG3i*E2@1qx!zj~$%efC*XMCa-!`oM;H}DRL=MjE*Q!Dn zC5#gUmGtzV;y{Y~`2&WogBx%s;037gY__6+}0m<`Qjty|{0X2|w`Gj#rz zSz1mk^BvupC!LhP5k6{CWs0U{{oZ7hnlqfb`t691zn*$x@&Fab?$#EIA?#KtD>2`q zWzm@Dad!*Y>J5cok%E@-%?FI;hwZyTxMBYrRh33+3T_cjZ))JLa%hw7_trj-TdacA zOkY5w7y{qGOF94BTOlKj@^%DE|9m~aD7oA_9kM8B?pI;7%J!+`eb(G%^1|ix9LJ;0 zAG+LHn9_G^9zlTeOQvUbzR+_CKRA$|MLa)^#q-`*qGKG&V;{{Pf60%{ix=-$0q|yLWPs-&Y0fY#VIN~ADLK}R9#0dXzgmvAUT~GKtg6nf5J0@ z8dVyZK}u-)Sa$z#c<>fqXQ9U3i6t7=pgVrDD&-ctWVSd(CC%^KR4$$BSRJ7%?^i6u z0VlUKBx^qlRg%1(G$r)3)tK}y8#pW0`w;0xis*a#3u>K=H+d7k(1Ga>kn^+B&jB0~ zAC}@~QZvcYIsP}^`D6@&3Ub5Hi<;&M^Mt(X++a|#74=;36K`wm=X$t1cF{>Lu4pta zCo;tPNAJ9tU9l0fkc}%hcu9Rb*-?^=mBX;kN~@_K(TCcu#MtHNVK-@-~)Xi_EB~w8Q}=9%<7I zSp;Qk;7i8cN;>7my60~W>CdCU82o`3g|=ORhhOY{WDV@3aB?otO**q!1=`TwEi4!# z8x`pM%D&691E@2Y^+e%UJLYSB>M0UOr$`Hk!jfjL7%yLXY2^dM*=E$4uj7F@@XL!P z-d2#Sd$^9-v5JpB)3W1Z4E#fwMFh8eEv(%yE%Qq-<+UzWwkpX7x?Y-gIaOZJtn#Gn zC2&5Zu1`&X6eP;17}o?mbl_o=cl7mHOjg*@!a=hY@b$JY$;p}4eCTB@2eM#H=51IL z_79qw^Xk3esYB(^xq z%ZsN1WAcB24co@!=3Ccwg4AtbxcGjLSXr^E(+joKd<)v@g0|W7%+C~j#%WFeX1_wE zER2bm%yh`WDsC6mA)dH|)5yI$JpIdxc{iPluiWq1EI0vB4fGVW{g3W}J-E&-s0rKL zv;|FM)z zw`y)U&WnR4P<~D2@A3E3nMXJThuY*~m<|2Ec>us~BL z)6yJXKY633*3gx^WMDu$ztN&C?_i=YvU6#xoM@1!k0I{ncpu>NYLQ#ww|(8RlNgxF zoPM=`%*YnZ!@$$@4y!BlQTAvU*}uY)qk(EeQH`h*)ahzQH2Tm9unKN_P9akR5Ly<= zZJ-ev^uGu7ErLhdL3bkfZ3i3;YlMd3<*)P8%c9;`d_Ya+T=iaOX>nYxQ!}vQ1qlE8 zpy{%Kl>BP*vrJ{aj9<(kmZ~FEt=cZ#;=z&Ck3Tt>45c{Z)!sjC8t2TZr?xx`Zkm_f zpW@9c%n2L{rz&A>6*|@K$ti%v^(c9 zrlDV-AQw(%Bv`o@qw5;>Kc~5%yfz!B!v5i7#)y}k z+C5KeN1RKVyUIkeVq!?{?v|^o#rjnE-5#qtJY?}bI##Coii-fkF5GEjb{ZR7t|ys4 z?4a-P@~m=UY!s}e$=^6tVISQbxQSqGSDlofj92}KXQl7h%n4SQvdmo0q=Zye9E?_% zRO44P2a$c>Z+5Fx`gVV6eO6GnJb|F8RcTKnA|hg!5|fw+wDpguH`hRY{?p<|?VHfM!s+GWKI|qt zxm3O_vajtCSt4rJ#mYy2uXJ1yz(pqNyte}5$%TcDqcxzo1j=*ZEZs_}Sl zs;j*It;9w2D)Okh{VV+~^uu{L(IAx&`<}KQGNj9HWX3H@zI(ZR&%;LE1Py*<+#R3c zbtfC;v1v_%8EDx5I1cw*DS8x*lrTAbpuWT5Qc**hL_+gshr!F>Bx&0-f7xd=I$Rp4 z+wGuxwI{c*;RWa%1BY&a3;A~}nAZDd@QQC+UALZVC; z`^RRM1On1+dhXFA8h9TvwbArI>yu5t;8w`BcW>vPYj8DXEKk74{YwHM0G=0l%OE@W z9xL*S`gW{|hLNc?K_Ib&7=5c;93{^)8;zJmgAY=Z_X*Roh?H8>b{vrMJ2!DBCKUd6 z9tJRH=;XIT^A)3pg0HZZrOdnz-qDsuC_c3;+7ofNf0A96g)S-`Qc77 z0~%=uRS}o>j%~8a2R^aRBkTCpdZQBObsv-|f+<~(yHu4*V3-E5BTLl3#;D>+H6V$q zycv|O>TKFfden$qy+Q#2)~GU#g1SI!5SrT z3~ZAR{MEMOrKC!?5s89CxC=5nX*QP8UXKV%p($mbewPbn>@GUbhNo{Gb{XN{RZ$o4K;LqIeu zpfn~!JZewD0k@vF5;we8S^dc)1{`bz)q97>MZiKFbG!ljI#CW9kJyMRE#8S(&BH%{~f=?A|mLBIqP` zXuz_#czN}?JNfV(dtS%kydQRwS$EQX{%KS6%CnV1ExD8>l4d%TvN(T}`LH}oc(U;f zr;C=D7aroszSa|z2yYe4O!{zVS^=DF3&M4pnQU5{ zm>_H&$7DqCxvXwtdzSRaW7y{3DgztUg6uBO7NmwZU<95lK~SQspq);`TrJ|c6Vh2Q+t!u!H&ar)a%!<_Aa?O z@9EpM%+-1b3mYbo0!9p!v4tE)-Tz10Vem;e{64NIar>x^Vl z*@9MS2mDll{}bO^P;!)Au{B_Q5VX5uv4&mfA~9!B9L&z*LTmY%+aq zS!{DxD`;HW+P13i>>ABU{zO|~yXD#M&)p!A!-rhnq-$}Dmg^z$!O1W*FHcY0;wbo0 zp=C3I_6Z!l{Qe?E@ullVQ13>DDANY|sG7(UlS{Nws!d>TXX?m2cYjj`7qrvkV4P~L za?KAtEO#lbJ*oyRN8sQd80xsW!l3E2pn@Pbg&b(HyDJ&JM%m;nrP>4v@mlL&Z^KtUA$Z74B8R#z+!J zHp(V%jrPphp7Tyyx-oyr^mrr!vgy5 zbgSQ0DlLTQP+ll^z#E&8hdlGrQ%;*BM$K z9W4zY<^>Hp+&;_oZ)bdh~BP2KZnW!n}4nc2ZF}Ir+($ zO)sgV2TaRLL5(>6e%eR%ZG_*cNHK9DS%h60TFu_pD=&@H5VRR=7)A81WazxI(3RKy zYY?2y{73{(=Fo;cK7sV`>`BPG=U@ZNHkwrC>Z1OT6`UeR5$?>}Z`I5^KC83%Y-llr z;_;z@o(HyCzJ6sx^#@c9X+&M)biiIm*G}05z+1bxh$*mzLsFKyfy*?UideaROdN`5 zgDT5!xb4_A=Xt&Jes4?C0GDSMUA$I3)VJ8pdmDHw?n`u5o;B1TM`;MW860{KI!;*F z-nlUT#M+(l$k)Is?2%9gN|j635%8)cwSZae<&!wldKRYo@kX7x@7MSXu9PMveEHoy zyDXRWj<4>1k=q4Qb`-?KTbEm1EJ5*0@EUM{Y(EB6sX~CQUge3bUi!vlP_!gVUWxGv zeB+LJ7oKH~x!Xw7RyO9#_c0CI9W|bvUtD{Xr-D)X5uj=jO?3r;v9M$Kv}ra5s#{Kn zt4;iJf+jc8J1M8QM`qS59G>9LEB~9p{YDzO`>ZbI>U-3XD4uk?*vLdLb^Mbzt`ww4 zWDQ*h60~!ZmoXr(p_8P7%g16%Un*$Fhcp^k{Vq(I#G{=}${_#$+mik*<{DlDpRa0N z6V!3{?EFcU)Dz)O-Z+lFnPgBxBo3#m>Bda=krZK`1&T8v={cB;$NnWB!MhGF+01XG zT$4TtnL!Jb>9eP^Q4jZ(hluH{(8~f$efWSevi6cSda;fV2IEV+Fx9vfN!AA|PA`Zj z^7sbrW>k+uJ=7v00PX|z*H$#I-1p4Zfki-x!?az2+e3D;))Tn+4(Mvt&s9};RXcxp zf8k+IkCW}M6-h$fY0F=`rVMkS;H$@q0jJwLJW}A|g+#&C%E%LTL9v*daK7>WCXpV~ zxw=s8k=KPdBUu4liINl<^i`7nV5O+h>Ff}H$3Y4KT19||T75iZ1Obb$9yIODwLV*5 z(6c!tk#jP~2tZxarfB1M zK$hL;kdy%eXd!SGI|YKFs`%V(cub6G*&L zekG~kbcQKn*A$PHIy9Wyseef^deMUL7DX>S(8*bt$ryn{?93FUl%z|26kG#yaGLoW27i73tB7EN08(=3$FkArmtYF7cjC z)Y_ zgr)yJOCj*|2QFUW_6wo=Ir^EdY_5zfc27#rTF!ub_nKt3OQ-(MBcaAHP`-*M-Yzio z0u<%mDNG_ak7&!FOuY+N0;f#A*Z`p7fj-HxzuXP})B_{vcm0`}=?sp47J+`KXp@A5 z1WoW)A;5`Z&}4}Ia~`VN+EjC4Ag;|zb2nLXjDQq(wixV#QDrv&%-?TYvk~xcfPM!S z%G_XuwgWj{aEn%K@dgIYq@>Q^%KyXGd&g7#$AACt<5(dh*}J7kRz`LT4WVQcrOb@7 z_fbY4M2pBCkxd*#I7p{qW*m-L%AVQBIM?&^{oStLb=_{)AAN40KioLyJzlTp^Z9r@ z?yt0t>B@mKb-8eZ@`9CVcEOKU2H94-j+Dy~XxbbNkc9atM1fT=>Ns=wSC0iN7aAA; z0uR&?aApHSCh7Z`x)_K>7rfSy4C{&~$gO_M4XhF@{0*-X%)?XSMuImSTvY>Z7EXyr z{Ys(Tw~4HBv9RcAghzU8eF#|wi}c3UE|{c+<>caBhN>RG{J{X|BoOxXg(;a?jk^d! z38+E%$hIf<8UQfz6e1+Tmj6PK3XD=VJi<^g!cC>D+n%ipmO6+7HeX|$id7_x`y^PS zp$o6&#pE1wIluY;&Vyvb-V{b(?>44C^~Zg1ttsYmoXh4JK9Z6~D&>hqk6`E#2!vIS zc=JIpnHT1y)EPNBVP$1f;5AT*1#CxlPR^$#FG%A7_rW{(mSOhZ9hioh7WXs9>Hq(u zO3zkjm+C_PGo|Qpy1ctGr_UX#E2gO{e#%~d_jA(aXvRG7o>W{HQI`H_T~GHrXvBju zRT|kg|Gw#lp~ieqkgz3`Sb^I%(~w{WVJsNeGOD#o>{K8?unr{m~ylR%=W(GUDCVgzV7^g zf!hhJtAoSzU*`?EJvD^l(%l{-@8e19b37^o*jp!6RRthcVq_Gr!&z2Y`3f?KFx!G~ zea%Fya!NYDSETNKVda#(rE6)4&wKTMW;K3XC{q3kk=~EibDbLr<#rxt#*88>He!2V zL)^i4a?$DGe8!~j7@X#^a(Bx6%-&EP<5D{Lu=`ZYxyGl>&l|Ky3I7tlJ*lNwwZ{t2 z;L$NKGNJ_AMuRr3fODXu7i<4`00L(=^2uPVJ^0!>_#6U*WD0xbgU1x9-pM)tzCqWZZAz=V2kOkRtuD-6PIe9wj9vQPne6>LF@he*4l9#|LbQPxmU& z2{0<8q>b~GZ#i#|u1_HDkPiK4(1dpdve8O}^;SHdormXgV4w;B4^&}PN=I=7x3)g` zE>SH7@vl<|TNYnRQMICauw9TKWoaI?APi;7xa^IAx?v>~(ez)cbpa)fb)LK{%k2yK zvHX$}ib?`*enoOUg!MaYDT(hhAD1=HH10m6c`R8wQQIqLD?4h3KOprnKwcER0lJxRg z*kA}JTw&(aE-Kvfe=W)D*=imri5&9pcM;D(x65pH;5m5iC$VmS(Sp|3-7*WBqOx#L z&j0&ilNXeI@aP(ojk%@b_YVF8IQ7Oa*qy0rW0M;W))YE{7CUV-UA z4Eo6jL@vIjl-%75Z;Ir3Pn$n`%`HHS+tlaL)efWvJvQ)tUGG$i3S4}^R8VG1SwlwW z7&KyN!)xe^w>4_MetD5^h6FYc6p&Yx(VM3bMROhL_^>Z2#-#PYWx5XJXJn2!1!w1j zbuDmq&8#sWqPhD!V?dBUpH-8IiSo5;Q$6;qE2lQD_C%gw6>`iifC1pPXzJ$Fx%VNb zqMIzD^(I>v$?d!>0_II!`toYI(asW@@iwW~^k83aXv3e}eBwM?8vY)$jgK zQ*~6vVGLZZYKHvc@rZ+bpY?a#`|6$ZqD)1f&BEM=<2^_o&=DE(K;vOH=<*2_0k(XI5iSlQkyWsWS zdx!9tbar?^{4{SY*+}a|Y4B4BvsVkjpL$r5Fr&T>-IFVqlcaP9-u}~g^kLJh3 z5v9NPD1q|}muNAd3V}585>OV2;9z}esCO=$Lf4`|zyR{~8V2pP)sZJJHs17o&xUFG z@44WnwS17&rnL$RBihe@w>9GELal3tn9WE{j45b`4wXb-zaD8sn<;8zng_b)thumW zUL3^{4hm8lm~{_Ax(EWbe!DAp9%b*M)x@ik^{+rk-S~Afe7ccA&xr>o^51o}IIDnJ zDJR}yl`0a#vhT)H&UT_9rDNNSM)7&q=IgkBb1!EjqN>hx|U=M}eq;;Qc zOQLwhDRFT?Bdvl8J9u;pO~L*^Tw(q#8$)*^%{OG$^_JobKD|!VI5cT9ZSz=dqdstT zj+@g#_#Wkmf>HU%sT>(hB#Y1qW#zg)+pO$tKZth*IKc99x&x8=s(_|9&s`i{#h2T; z@kD-~8@y%EniPwZc&1(Wbdpoz9pft$wW7;i8JLA~;>&+fX~X^1zjP1z{_WeqN56{B zy<`P9JIICAOC1rRWd_GrQEwh*&mK9?NR`KQ8L^pKnUyastbTPsmgfnBEUn5Jv9?bs zKOtv+{NGqZG=~az?|Z^^1A}o7GJt^0s_vUf#$0+5nw?u7PMqXKXm`xe(@@T-u--*X zOKC8duitjz^g7L-y})qD?yS^V4bB_z3QmRJL~86i1;K~D=s||O^+1Ka{=eUIK@z$A z-vQBPenmq%sjqCvB7+#3+n0;gZR*-L;d4qcFz~o76VV$d3UeV7O{ar4upzyD`xb&> z!xQ@;JnQB@<1Jv_)5|=HFx^CcxoX<+M^VAb1#7IG!Ts?O|Fsicq5eqi)#&K)xd6^P z@|Tu@pS|l@b9vo9y3TrDjNgfQ&ABi zVK?p~O>zf^`;|1NcyYp%DUIe@3@j!P@c}di9R=(J50O0}y;LAmG7rQqkqeKU6~)7r zDgA|H`r=eJ7!!pg-77IG1ZrZs4dZ!YG9^{ry{GAV+sf1PEJUPi-B>O>37)DSK9aV( z%ld%r1laZ#W!s6}Og2M?xEJu_PYl=}qJ$m#aKJ4vJ)Ks^WC?2~np zp`d_DF(7jAe$^;{8f#ELR3@-^_HS>;HjBj}W$#BdvyFDh@ky*~y>hnA*M8?*^w_$n z3T{1*Np7<8qnb_1mto_D`#TO*@)fv#0J;L>Z8-$RC>h67c`411QS=Y+)m$^{EFruP zxqV`xakoRW)6pVm&l+~ipSk@3NNsYFKAMX*jn?}fGUSSew=2s&44ypTg;CaP2uVqC zGXXVivOO6Oox*mjWNDS<9QtUtb3~bj`*NDg?Atlk5YkvW{OZ8|G5`II~&){%r4)#lT~rZ zl%6f+fDxleNBi-<2)S!aUw)dE&u25%|SAzB2+t& z-R|wBgG80^>?>kkYz%OPI`4(QHR`8MU4Eo4qBI`gj)%3K8yY*uqc2l8^#$k6Y5>fF zPvybI(qI+|9ww#s$Z?AK=-D9|9u1&4K|uX2A)VFg?!rDh=n1n@aq3wo&Qak;wE8Ls z=5O{}IJlPE8VDc#B8XW$QFVj<#*`^K@$hj8Ao(156{bteI!@kSBG*7AnqO2jzmN%8 z!T6gBC@C3<&lCG8za8#0Ujut8ztZ)oc@#x79URyfI>0W2l?&JEyLPizEk=)`b0zfxf;JShY8vMq*L=PXMW=-=a91Z?VM(I=ts(hPe63x*_QeMSWzvFm_W4uL<&Z?hHi_JY37c@791svcB*e=Qh$ay6b0iS`7(=9Q3x7`(?o4Hv z7!6oDe&R&LQ$7XS`{!1{yff-1_m^V*xOsCbuPbbtL5{P=E%^XVJbrRON-Q)^)wFoo z?|Ji|bKW16r^pRk;!!{t812)mToM0 zCh+`i0VRkXU=@Ig`}u$jpfW8;oKezcktK7I$eQ=o@@?%H?k1oXeg-4dpH1!%s8laR z7yv>tU*TDw)4lcCK1zhX!mR(QS6&0jd)u6NO&h%kO0D&tQ!q>B~^mQOFvud+w`(N1`vpu4zSteMu58oC4fZq9$toR(GPG_ zfs6XUSpLlCHt&vb#{jSN<%<{1;K>3j6O04GB6mviA$ei-cXGa9?n%}9TLS5+#P;xB zhu)1l%{5ESE0!w9du;Q=su^@v>nm%X+}h^V=Zn7*n3FWC?GknTc$Lp*Y1Z|(@F6Hv zkeOJ5d4rFLF-=N(y1t%XZ08;YuLx!} z>+6;Y`#XHGN>y&FqKQ<`7Vko~BEa&^s>lEAvFtaXg?AED_MTt<5CTcQVov)l3Q-I& z8vs2(_|H8I185^;V)KDF420n0$?`70D4;&GiiqP^6QqFg2pP+ilC2wI(}(7mUr`3I z1N7|GX>w68>z8CnsMso<^Yac$8}qnA9H6TaO;PAJvXV5yK_%m_DTYuU?=O_^qwF$O#7`ggQ zw*-MVeB)eR(NmXk|K^X^PhAXmY`u9(`rn-4-GO{L3?+T46DRnmsG_6!?vDt&|6x@^ zPTioc1PjSh^FlXRZ}fq{Dnk6bYocRXpZDq`yVvegg5Sk(>{8=U!wX)>FNdBFed|$y z;)XQlRrRD+5TaK5G8w%2OaD4dGr8^{n?DXqX@m`aX?d+TUN7m9^h-_+rZn}E(Di_2 z=_AZ#<{{N>a?3BAyuaD_`_G>hn8+lTNqs%?q~VWmJm(VuNC@sNEjey(ce*JuP*!)I z`6@$LQgz#U9~GdFHw&dUnqp)WDLx|A!)DYxK$QJQVr^*9{&V zrAgHh^!qfm4<^^%JcSI_%(fqQ@`lU#@GSNRX~sv%i=f?#yj!&%Nr`*g+VQGsMOSFH zj+47UMpd$Q?&pk??(dssnYIwUUZ?YU zUo)N^>#NqJwyS8a;>u_akqb(%BHQ{p9=IvAwD9~1D<`}Wz;GSI2HRB(epo7D4QhIT zUvq=ukzIDEXi3VI`(ghr{Vm*@v!^px-3%Fu213yZi8CpyqT5SXd2Y+Y_>~ufcJ0CW zqb`B)UsTVYB^Rmon8h_bZfR!Wxo5ou`BBT9&C*W2>LIpfcm+}**bnBkh|ayz#(gDd zahAf_4s=Vm_QB*zuAXwt)lD(zg1mJL+I6k?OxP*g!Jl?GI8=4>~hoS~rGO{{~of`U|GOfU)ClN!)N zxBwIg{QCoJXH{`Mc^EGj8jSy>l&r`Px0Oic`a@e9j;Tw()tYwlhO~6&8DCqz-l6yW+r@uS{~|Eo}oK~wIk&JC?rV`=^1eoVtYCgLFh zk8QPap4sxq7kec{RaZPgU=dSt{rQ#s`k$8yEe=#^u^<(JG8p1is0@a*H*=mE0|Sp1!%9uoAf0D2Q)h%_Xii@& z9G1m+-K&?6@h+6;c17Qlm>Z$e=qsTK6~Njb-wmQIB75LVMKp~sQDeBQJlQBb1AMH& zE&$ozzI*qCLK3J~JuR&7I+zr3T zu?*|SC(4$vKStgOc~6rvZ3L?5;k4dIWlMkc9}+=!w!V-)`ZQXKjeT+3`t%4}VmviW zk@{K=G|{+c8(LAaB~J@z#f4#)sm#wOu0OC&qAKy?v(J#Ovqv&Lifz_7&%LdyjB&iH zi7!2_sdwovqHupe1ISRYhuA=$xx2R%k_V{d1@`diJ9V*j!KZ$6-mHFj*9PoC2O7*& z_8Kr+!u~6l=-@h^5&n4s{ouLCN_8r0W?{D~GJljuV{>LW?F*9D8*r?^VEG!p^r+?y zxSoIq`)N%kaRJ?%!dI98P`jwCEIV*HL1D=+ULRS$^<=TE?hAIJZKJt>xftF1SUDt| zpG0h6hZs)sdF5!0M{P(fB-249pR)8xZK4HfgJJ`_?fz}{{s&Cfg6iH6Qay$)p!_y zb%r-4)C~!5ei_S9hE-ua2j3MGI#!f)|9aEhPA`L2gg_B}1qxDj5<1u_)*Hx?i+pcB zzTerCMkgj_k9d1B)MQc>t(SDJuVb>t=<|`Tkwj@*-?eTX3Je&K*>ej&pP=rTJl}|J zy5B3~FvM6u40<}@TEF`d+s{<{<@sJTv+N-*w&BAi(07X&eWxl>e zqZhs2kN!H1n5l>eU>3p`tm&qSbORy6oF|c9#tSl!9HDc2SyY%*AA zFyKr~ZdG`BpahX>DfiRV$-}IJdAUbe$ta*363O4&zK)~kGA?w`{i&Mt4o(GX5|9b;;Mw{ELu=d<|9Fj#Avy$ z-Nj>QmF{!QBd?Tv^-IM32O|DGbD1?o_>WADWf(tTwgLni1Q*-vG`}&%l-_hjks>`qN(U@*vasPHwO2<*iCx^1= z>9s{<<~a#{SHcBrft`XMW;rk4|KdsIyZ~lA2<5;W^-+U1U>ra$k2<8t%Gk?9#2&PC zhxS|g7RsgoBuoczQO4+E5^pX{7>u!)8d*6bwz61@r7PpPPG!#FcQ3L$syV%28-lV~ z@%H_*WAJ>6yq&^>%Pe8CX;OGEVX02Blrj6W;QmWmNd#Z&y;gKty}%w4%}*l?qDENK zE_suo7oG<*l^+dEw?J+wcRiQ~eeXp+F!8Y+V11bz#6MeX^TruR%m_-6Hmh6jFrOW4 zTvn6{zwq%WvSxDN;Z<@F7?ZPZ0LRlqz9ZK1mHZ&^sTGi87cJfce&KCcU;WkzH%nSu!Xr6;}; zC(&cl5T?y~fgP%8A{IAlKKo_4P<20U$+m!@kA{dpaG}X2Or)Z+b5+61Ve7~m=u*^W zL(&wf>P6Ve;)SN)A_p{fz#ya<+h*LqGGm1MbE`cgS~(F#ZF1b*GqKx#=Ug{lE-mcu zg?iPfeXVq=*h}t=$c4azV4;?jZ*gh6)zeQp>%AttVBCrLS3hzri1^k*#J{Zz9QxWD zuX&aIB&|#8F`U6E>KQkXho}f^rD_X|Qhm=+!xolTJ+8XX-GaZ}FN4{CbDkh?25w^% zF&#zC{W8~x>gqU4{Wru2h#3*H4W*-~}g16kD^+3Nr!! zR5U31Dx`#KPD{PP##M|koL4Hl@Pb|y%4yWRQVAB5G|h=HUyeE^{VfIv4%QFchu8#J zvf`r~?Yc<*I51;%3w#+*m6xFbK;Em{|1GGQgh?5Nzp%<6X54pki_0Z1C!?5Fj<7cJ z;N+<^R0F20sIwp^e8ndqcyW|U`}H|1X9g?l$!~&DYS-YAb_bsZBf_Eepz84fZvh+U zA>4;mW+XaA!iJc>hc4!5tJ>jQS-$sD*|UNEdONo3*E`P5jvr5Adt@MjHelm?7 zCcN!~o$;Ou5jWkFKT<G0qJLql5-@#DAnP8r4|Vx*OR!HnUVFJ} zUcBN;J2J?WF`YMDaRb=KN*zo#kET4Ge2QHPJA8sZlCxv2T2z6M>05A+SKJD(7_Gt2 zgIk8^^MMk_@k#S{?uR+9)tT2xtQSywS7CT&{TeGoD(@mY=mSVArusV@qUWBx-#253 z^An{+je}-$E30_w80@k&ujtOTC)OvQ=c2o=dYV@F08*DWQnKEQ?v$6RvLozS6&K*v zSN2(yIUQ>4k*9V~bbqM%bXxYCI8^&1^bN%}SG=hTyhAzy7aIQVb=`TuSDG$|8F!$` z#(h1S7JkenzZ4VF79OwQb>Bj%TLPYUbXp^WjTQJiVJ!1bY~JZ8 z5L0sep5}usJ-5lR)%n)^Px-VLB*)Iz3bWU`>>?R(eWP{61#UjdmdoMJ>TNAox_YY4S_gOlZ0fS+h=n zca3RWnDAi~Z0|JglQ%0>#YG*`=jIUSXzaporV~%TuL*oVPR4xVmv|QBk#9dK_3VPP zrO;H!L9!ZQQ;tm)%yrTka;D~AlrtCBmAmz6S#AE>EbI?I>L)uLtU{>a`MpY8_Hxb3 z;O*Z1WU;uJdUk8-CUb^FiFWrb#)XNiY5lon z`ty%DqANLdvIwwx(pJ{D$_*HSu})O3KV)O!)or4Aaw)S>*WH7|thFbf2x62r?Yii` zJ2{pOJW?~+>K>;@zHfvUzxBcYh*zOHWb__m)l`3=vZO8mHS0WUH<~dbIM&~=^md1& zp6b(8ppV!7^!QYpSBfm!6iM(W+$n1`tcx+AJ>2Cp(RzqZr-fcW_~G2*gyiB_p&porOXIS@>^F zk!vobJ60d<_>r5!9)Z(Wi|9RI-rXLmZyqAp?Lv7=%+0RJc9D7un=;(H54%XT?R*I3 z`lU=jXa~P{@*sjexe0G+bVX|<#g_DYu8<^sUQX0s7Y`RsorHy#kh+6XFmevs(qIh! zoRSwboaSg_PunGdtTCH|1AUQ3c-)x!;V{g#g}qWHl#ZKYT{8qR`za(wiNZYMcy`^M zKFu6z{7Z%9rq+q(vL1fxrDw{H!y^!@993__BqCLk1X-8 zXWEc7&lJ&~MuGnEe#YV)frV3=Nh6crW^?p^xW47_ocf>;+V3^RtD(BXl|+5JTWT_J zVYOwh^3-J^}cmQGvAjx|RVPo601oA{iIml2brh00jp zduP9u=urOP{dq>F$L+so+B4#e&Q{K;{A_jYd4F1I$)#8`slb2n_jpO>59~Yjmh#s0 zHL7`)z4{-9&|RP|HM1_rdwrCzC;m9>OYBW&RXXePBi*raJ zkqxFg@oImrEZ8n#F@CYLV?{jXD^HZCwvM9*{^uf=QL;5DW;m9r9le$X$-e$W+L1h9 zuB2HX9_4B5xQ|xIkTXKN8tMn#V=y)P`8N7z`s%L9=4|6Y_6w0wHWk>J{E9h3eV2-d zIM$dl_Em2lHsO>S@RkDHkg4!~T$qaj|}<8OK}%0(5SuJMi9xUg1u;m@nS z+SI?@LX;O3Ljfu-H--_-l-2A<* zRzkiLbJ=6vc1~AzI>By%E6~Tqr{84D1wBzkD`lWvmA&RNK8zNdQo_YynY=A_X)xEn z5_`o8s`e$jcs1Owp&w7|z52QBOY~jX=(0C|dEd51`~p`@Z}~Hi2=B#y4q}jeq4@eG;%`fE6zgDA8?$2^y$F$H1)~?D2CeBYh~KIHM9X zBV3OhJHhcn$3f`zT4*pPKGI5P$2mNcu3S35#CkW?Op5$d^5@|8f}7^>*w%N1mS|Be z?rV>r-s|^xk2{5(6a!)|k>t6}WU=S|lg3vLK zo9J}#1Z-1Gp0?c%?}^=C&W(tVGgkRt^z9D0t#hIlTRDyH!Nu!X3hf+3Mr6PtRrc5r zcTKKr;^4xBt+mfQ?_PMLyp(oDq2EIj{mcGPtfafWvNf+Pb{daha4D2OY?6C}Ya!vo zeF?-9%2jlshj+ZYG~TLRc=g1cjaPH)T;6FKl+dCbm))w%Wzulxs1G?~rOlqX0sU|s`fgun?c3XNXAE@^~>}0AucuoQp z5AzAG)zXC zzi@-pdbrGDF0RbMY6fnis-THc{Mi0RH5dR{d3e48yso|JF?v^W0yTND*cds~MpE}7on3xS zhjok=N>5;S7y4N>jmlU<=BX(dKI>cCC>MbnCmEFx&)pZjXv~KE<^|&VJ&GqN;W(SrUSjx`adnMnR ztn$M{X&|*Bkm`{eYC=MZ=Y-Wyl8SA?QYBW|k*22*jJKxN)}0ij0ay%o)%GD7{})E^ ze<>$zv?nXD17j2vi3^5?Psl%}BVm@&b7$_?w>sgy(}Xab6cXpqyXY?G6k>LV`tu)`ks5rqrI+?smwngn7_^4@nAWY z;BVrl1x-&3p@X;f&5^RRp7YylR&u{09Tu#IwLaB7D(@dHY`TkF#h#(Qc*4oBeDnzW z?Lh^i+Q(2kW$2*@CXX?w{w^K;!}H6NdtG$QeH<(;v3MDGfBT=0Lz4s;v;iICo;DL&yb$i9K& z|L=yC#?@_+UV6MF>>_QkHm$tRso}?`&&FViNs8X3gx;;MsxeCCuM^_c@uWSnVuASi zQzTBq*7G+Fk4a>A;C+2nBPNE*;ur901v|I+{^0P5qa?PCpN!>u%k8cKX)t{y+}iv? zZEmh&5qI+W*F+@1>XdvT$7!!b*QIe@L!+Rv(7Hv-c3YF84UF{e_sl|_>iSN49> zB~oZ(w0Y~S%_?c6eq(o}xNeNFdNuY1a(^&h$E+!mDZfls;N5UtTB(I*#gx_LSGU9i zDK`(54Yn~+Rh0(BH6N1@=XN}0FKuHI6S%ca$T;~s<=tHw1AnR467mGXz4vkt8*CZ6 zJ*U|>R2pL*&v2on^2d)ypz*eOWiIWnW5lYZ1y2$iV%-Yyo=gS@%)lfCPlQv19yT%lR(zu2BUA#PbYgqcZ}Qgy9ExfsRf% zhk#q=EX34;k6{h`z30UwSQ)%))znk|)}rLND}1Q`s-;oXW!w_Wh=4Zmsr4Gg%8@vY$x> z*2)Wf2$D3cU{4IJt`}$S5oD z&%4Bk`$cv$24mg?iRFsA(FyOR44n)4WOj0Aez{}luGZOSi{4L5>;m_WpQL#?((ET2 z@gd5?Kk2=YB6auIB*9V<K*#oWJ{`m5KEPHeqJM5#vocp+u+UD~k#vpNDKKBt*pe&=733S{(W*$QsH7~r zkFDRatN3trG{wp*wIOFbr*PUX#0<@)JCjs8c3Us=1aERFJ8CGo~pu^o_p|QNly21rMfV`A@1|QSwg@&$u8^F+8b@fABE~Be6n}j zmhf7_#o)seQB_TqbM9AMDunaX;LOLiROMee}{HLY@q6z}mw)K0xi|8+U zc7?{>o@=~4(qiS)&dF%XAI{>Re9%xaM=@7n$b$a;0?o-?+J4m^>jBNR6yrDVqPhFh zD8uJEgj%H#?19GbT#kFo_)}MT2z8sgoi%ROY5XCW?ipSP9AzB~p#e+w-R7N66`puH}QF93`3Z2bk`k|$1y`x(X5&-ZYg1E_=)=Cr@pF#57zYPf&2^U*a` zE!9nQM$<1Mt*gPaA>4m@KhP#hev%JZ;)R)F&u93NV)XrUxlXGF()C>NeAV(MGY+be!Rbf76Sq^PIP4~ z1kK&j3izrntU@bu!a4o*{QWT@8mty^^Beah&zAt_VhZ#(_VQ|DDz9(74#^bZ=6s7i zK?OA#BV3pouQ_Ajq*IQGLMWM?M0pq9#=YW=mS1qfD@XP4Lq^I01+w-XIVB~raq9bt zPv~dx{f2Av)^}bdL`fF7{<<54X&kOI^-JAQSs0|%^L#PNUi|Ye!Kw#H2~De9ITakb z%HGuZUmnX;-${8qa`WRINB4VQK+VKzl}z^S%V4x$Ixm^*?apex6W5YUd>8f5QuOx8 zK)3Mz2;1e;W9vSrVjJRtMd7VnRLkD5TQS$Lcb=1W+KiCtVb$3)5I*K%HF7{g5nGM> z^!;ao+wHIFmBJ;v$nMk)iR`%&ENH`3y2*PU-17Q6iuWq3>cZc07R1u3tJ$;Qn#|pK zE)~EndX4g|!mRY54W{-5XPi;Op89B4wpSEDnQ0kfWE8Yt53qFvN^kI-YFxg208VP6 z@MvNLM^+*lvi4$)9E?mSWPWkK$uYXVbZRl_w2fA(GuN|4SJk8ZYpU0i3$ZihCF2c@ zPwHatBAZI@Lq1C_Y>eln@>vM`=Sm*A#piSLP*|(e=FIuWvd9`ytLX#ZlWdF7G^?uu zaU-mgO0J(YYrN=or>(}O^ab-r5`_M$t0i;n2cYj;p-z^lI&acIlJ?Pb%67^8WJ$ex?H^; z5|y>LdW&v4g=*uCQcO>kh-Zm}M^R~oeaCW8+SX|oh8_!N9*wK$kHH-C{ubYbgWYIO zKbX(GS$3+1aDnB;57FlFBqBcCVo0r2wSS*2wusK7QvT1vzL)k1Tp*r=|7F=JfdZ97 z10*XCo2C()*tL(=omo|)$o)bXAHr!W`*D>+-BZ+RV@J^gbZDF@obv{0;w%Ec*If#` zNLmeyM;ivT%NOZfFD1WB*gmV(%wkQ* zHD-@+DvflCe4Jhx?2_Ea@g?V4SW}+j=fUtfgrzuCQm99*Ve2v>t#8m|ehRMd)U3Ppu@i{wO}z4@rmXk{U#cH#7%(tcG9uaZukYE}8d-26`ZT*|;% zZtSIJ@oR}YDi2L?%5y_zwJ6k z?vK(i?*S7u=oDXQ6@SW8!rJfkomFj~KDfJ=^#aWm74}{uKq}f5;H=YfcrmQC8u4)1 z270mUKczQCRsDK%hyJXa)4Chzn)2yHo%uO%y(vGlkP3$w;>N`^zmRJe=B9fZC(iV{ zu8&W3*%SRMN`5P#6?N-W{ca9*R%;FAc8Mar7EQf}ot+oV-w3M+zR;m2?_U2JtNWZG z-Zj2H+@dn$_-WeDR=@o^xOI@k%@6&Z(yU<4C;GZvyG1-!jLBNbnVVaT`F7NO?W#s- z&(i%p(>)d>NI;;{iu%wcBK5*K=je=vkL@j?;~+ecy)gdByT*;sX=kO8G5w(b8cK`+ zu1xuQ9Dt4l80zHP!LQeITEkx+7Kmssd6-dI^|V5{^8>Ac3`Vsjh{RQU2F>ljz%9IU zbD_$;FhPPbr=%_ZIImBpx3X^nr>UH=cM$4v0EE2PP%sj!XjoX{ z@-zT(sCMT05^IOF*rtw29#0&7;az8(d9X?D$mT7&0fQNT{n&HW>mEI#O>#@PKb_b; zmCQ@zqdG*~nj#!)SlT6yF|=&~OhV?#C}#m1y4+ClISI?P>Vv!ENl#79iHm(kB3i<# zh2NCX+%^X@ifKl-Pu&j`tC^eS(FifbowBXObrF%);sYrl!S+)M`euY|12gZ{9Z+5zJ&R2?$dLKPqi%N zw7iuH^8I^LD^Bu4`M=*j)frOJiPG>l#loA}b=dtUr;7k_c8td4)I6+=FHvW?Eqicy z^Ca5Qolx&W&`Y%?`duF%K;nW9mRiv`zjki_4}Fin@GtfbgGZ%3=Cu^HL8bO*(%Fp0 z$tKca_le7jRp)mU3(=^I24)aQJwntw+NAiGruVQ@(@-KKQEk+Lwq7yU=B4;f9yd1TRsh8RN$tpN-P=kBb(55( z%>gDCeit}NNnk9%e%+04uyJ1_BwfLnG(VnoI0*kN>R^Y&`b7dnKi3#k(TZo!ee+AF z6a-?Sa0L5ewNDu^Ibvvw)5qA;1w36>IiDO3^(>z>FP4$*a%F=rQI!4kGVr`q8EvX* z2|gv*Q#S4vble%NIV(B+denhvjrzau6$x?@d|zhAn)i*CTU(ZwJjS2%`z}N_7=2n) z#?)-4pAD~*(IUN(1FP{9>S9eUOS3-Mh3oS$KFYZv_*)rIThnjnIoHYe#*@ZIixhZZ+JBT)%FrKbQ1)U`os+!q$RJk-e@_#X4ELm?@R zd^+N3$WnOddI-#-Z#`%$risx@ry8}ed^{p(**gBxnYkRuS=r}*juG1L0stJ_F0nhq zuC9vZKP{hP(e?Hc+am_wa}J7O*Tb+&GOT-kcFP@vX9Wz=G7z7zTA9 zUHY^J*HwJNFMU}YSY&|{Gk!gjUuc+8UGNC$X;d;y6hAq-l*en@8FT!P@5Y~Kp{yW@ z4Nk(%-Hz&?bz}!2LVV?jby?=24J9#b-mMW*`Qn;7!XW>FL4#Pgub*c^Wy0U=;ISL( zSY20@B^%+qH0JgFXSTJ|CXFFNMNDuY9bQb}AU4!=Keps)+t;b$L1e0L1~u@E=y5o$DwH<5{hZeD8-Nn6ZrPjDPBa~7Pg3`1ZEW;aLEK!#A+-}f zw(2BM;Q_8M>7TiJfgH`3SsqdqV|xlQ>yI!RAa;bH_-_q)W8E`SH9UC?hxEta<{<^)`> zSrLyB0#0&Yu%n9N^qm{**w{dNTXWCr@-m1$xE33;QBs|GH!^{z-bK{1p;^|!*@cdU z!hDh-|8Uhw?;&wM-21PBBgR4!_xWYVX1LN_JxQhlGN16$88#=&YZ+FkjIRzh_n#fi ztQJuIDmnIp({{|=pV_3nKi3?fYoCChxo6RIkUcAqG{UbDAV(P9uEA*SP?K z<=mU#o)AB}H&i8XBI|-g@n&j;ypxLoE`*P}tKWLYFlTfQ(HHcf@t%0Sr5=(q$~?J> z8zP(|uqv77aWk1uE;r+`!gDwsci+^F#70gjrKQ$=$~8+u&3{>wbSRC!<@a%4pSVyH zO}teq|M&iav)I^@^2pL@BA&r#Ln|B&X z^-B1|Wolmi#It3=2OsCJYwcYa$qgNG3A|ER$={$cXECMU?=krSARg)syaInqnOAti zU~GHXIdbP}jY!3KZ?eddGh5Cq4|mSlF}W%84W(~6(@boUjRhy{^SHW?!&|3%X6*Ui z)fgFep_!xy+(H*cz6hBtP)Ii5)7bs9W0=w^RJ*oCpOBhgJmtTY9n`B3VCM?$o=9eE z*0uclb=$3;lfF~_zUw;%BRXPZ^WGB4xvK>)Zl+k=Ir!k-EU!Lkj7PH*>F}i1izLu6 zbB^SNSbS%=2OGF6$|i^=aOcIwieoj68o|c%9^D=`_uO(h=f&J>Yw3L!%gz#vMzxF$ zLEY<0H1VkWwhRL{8|f~L2@TAw!eUy<@0mY`U9B9F6bz-p6Y-qUL!9pHft_DdCI<`M zzZ#kgsjDgz%xRbFOe%+@Ve&RN$P0&h_+-sIVzPNSqQ+!>&ik0zR!Bn-yE1&hN1VHU zo0$2|UF@R=yG_Pyvi+S0vcy47@=u{0#c;r-@{w6}V+^68n<`4(N;+wPo@{7L==^>g zB4WTZPywz?9NtMFm6oM28?ZzKNc@g{c>H_mAGnZI9;GU`d4xRtCv3Po%;t) z^BDg#E~;jo49m`Zc*9ia#(GDi#m-jGPUWnfZ4G(Uy~z$?=WnG-GJISbv5p57tnuPp z5O<8@Rc!uH!U^AnD+H2Kossj=iPFDvDxc$dQv4o^TNKb??gi{|%~YD&;Q3;w_O826 ztmc|f%|Y1B^YrZ}E@!kI3x0f7{}U4T!dr&-XOk**s{!z~{)WiTU@ zW5Fk4N%=_s(`#{B*T*lq$WnakaYhQJA9e&>M#exDoaki>EfhN1rVS61OWgWb*Uo+_ zZ0xD=XK=)gSw4+ScfQo7U9qptuRlcFQN#Sq*&KV!LJC7~-*iA0bDw!kqCjY4Bea}+BFrqfVz#&qeLy0?>nmT^8&Wo+SrsxgvE(_R4kVnU|KO`en_w;{^)XCC63~m#0U47m;5Q9tBlr zI_f(!y62}uBgva}4RIbD`2sAJhg;R`*J^^eJ~7P_ z=OUD*4wu;;c#>^%mDuPhNm;&o0uZ~MuLzap+5gqqS;kfMM0IJrQOZ?kw?|Eaho?HeIxjYZWzvr|*4jd07+0IXZ?bi6wVN2Daw` zXi8QWA_0b7=Qn6G*Sw~ULEU7v0w~Y%FuNgXZN@LAwhtT3{)>{S_Y}|CDxF%2nw4!{ zKoJO|XlOu_*lS5{VT?uE_7~jnVftLgPmKB}^C9GpQ$}@}A*XiPG2h zwgT_k#H*AVaNj9G^@EZa(#8pk8Dfw`8%B{FXB(T9&f%5eq zrM$nB414vj{*Zy=F&H*gO_dUkR96O$WpzQ^0iODR#c(dG3CxV2I%vYsI8tL4-WuXi z^17mA($mjGqlnK9(f^k(aA3_+mHv<6>b5?fO|@9|YEYUh;RHE^*(f0tIOxmAhO1-UrW$uO1rnHFtq{-~}_7uoOgO57TIwp>2Zrz81hOitowh2(oAwtNVQRuY=D z1I}cx!kzV$xjx>ZepMJ__+0rTxdE0PYIh#iG6Y7_T<_>e)UfK>rrtXQ0D338dF|1W zTkpRqB^LmC4A_4G4q8~HWaEFW%?m{LR&zdl^N8Df;3iS2Sx#+UP;CpY_!J^_0#CGP zTM+C==j`HzMuNX9N3i_37UBM4eV=K64)~L6G)EhHO9DSqOPkf_)V@p$fpQnmr+b7} zm%??fGo0bv*YdaDN*)H6&X$-D-EjFOS^ifHEGMML_}QHa6-r3M_5H~VX9~LykdX>j z?#O|5n;}}){^rSmjQfLU`#hOQe)q$f(hLh~MvTMj0ehEO3r!kb9wbF3MQ#Q((h>u3 z^H^{Z;;fgWY}mUMV1&LM9*Vl0p0*^p&6~P>d4iu+7;{#Lc5NI*q$QLVbjEkP@`t+M z21X$g2^5TFf2KWTo&#w=SK#d0bj2ERqI+9S(4bnwefuiG?Wm}OSU8P)ly%3m?LYl# zFNAI5GdFFSXU4z3utV=^r=ZSM=Ie8c2w`jirrg!E9MeSyB0#eE;;Mem#n_GRB!k&I z4%y}G@w8v$o(b5;IKC;{M$koahf~nJxrI2j1&b^VuqDNW0znjFbpB&Aem&JQf*KTR z;Tccgg&>Xb zjW%+EHZcvVAWp)s>jC28bK8aMJ&={kt=7OyYe+{4FQ|{|GEDT~72yLSVMiUv^W6#9 z*4!9jH(^wah<~)Tc@VHb1)UmD{sB`FoCHBn1ev$z7TihZH#)utqVwCb+=tn6Te-^TO!6~hM4p1B5k;8HERDMrjy=zu- z(9u|LI1o?4fOVr4;SH@?>)}g7#XsQovD?eDzn+pd>e(@AG)~1&?(t#2G`-4mr7w!x z+D*k8TXQsPI)ldWlCV6Se;3!{XpSCgz&vlf(X_ucJlOfIJ<*f3JpH0Kc}`@y`27Hi z5hD3K>rPzrP!4>7GrE5@2AEk_;NfwiJOt`-rVcHepTUU0sfS`9EA9|#Z=(IZEuDe7 zHT|eMjr&umy?uF8p-&oDGZ-Ds(KSy(@h9ZUCV`+vQ34;PgNuy^&ko*ZpWrkjZ)oBU zI*>D^g^|)%td&N;IIUH}B#Ib@%3F3svy)QZ_rq0J^ro5Ht!em^JdS1~{M|ImQ_pps zsEQBp>m`nnXQlLDDh~3(SM~YxRXuewLn*Fk6_p^h1wf%F!{P0+R%fa-4l?+3|=d3rAHi8K~%f;~4iY8TbK7)CBEO zL-)5!;Kfo{U7}F9efHU3nsH(0f@$IMBe1{D$~CT1`hk8?^%=$a^`L5D+q2zZ(O;bzlB8w3A|x7e_`W~>RCKLL56tIx;ND^BRZl=ktu$XJy* zO>i;N6PL*tsQ2@EIR7aQj=H*uJZc)FF?5r}c+JT?yg+HGiy}!^x4T!?-k<5zifEo4 zIhK8BE7lIZz?)2hfzEuc~OS5-1-MIHRzwm5ld3*Bi zEg$6{?Fk`dhYWXahcTN|+P*A$^5E+sI{PixkcCO1#aT9ozx|mGd1B#&oqWj+?i+Wo zf|)}Y9xywYv&#j>MBa)0d2#Xbl{FjPX9uB2fA+l7r9A)irKJeHlj?rw+J|!OeBF3M zMgdE1Q4p}k#1tWzldW}Yf2L^3wu?u+-qb=Sdm#3M;QHi)Fz>d-4az5RrWe zpK1*UY1$=T(~G*@FPoojd130ivedw5) zrNVx26=I_eCXxgv2cLO&F40i0;=#bv<0JaR?sl z>NB#MjrM!6mlqAKOFYI3BZ~yWyqfIJ#gaWu{6|8USE2$(!_uk0kRG$>s@?FqIMWYp z&?C(`0*JwW3sP9r5pU>}+zdpILvEuJ!>x%??UF3!=;`&7$d+JJf4F0VE>g5Qduq70 zT7Pr8Ffs6@32-p8&WIlJ*2>?+e%J$=*ryUOGkv9a4m19sj)L{nJ3-a-A5FB|oS$43 z)XfD%g^(QpN!k2ZH6@+bq>Z>4TjIaMt}YUAOc|IPGuJgm{Py`v-Jz26rntaG3J9xw zTWGr)4mxE($C530LS@lZNZaM+1a7WB?lM)riEN>TaDyuRO5dNb?sg*d#8vIipiVJP zz6MMWnAu|{oDsN%0es?B(uFn_`H$5MGDdLRDIXEMMBy)9Ldex3nj_myP{PSqu?JRE zRlVFA!Q(P#-daJ=FMOJESWjkiJcU-fv?vN-IePJCuKpvB>qDEfV|BY zhPDLKcP)qNMl(R0DN+o}Ym>0}*EVX;qp{OmBQEff&ovL8g3E)-%%TB` zsAeSt$je6L`XAwEDTT`uIA23Qid~V#`@)FD2)+De9sHD}8INu!@r<|3#mn3_FiyB& zn5lVHQ!dG+4r`3XA+lr0LJOCFz-acQfiPp2Q}?Z}FSZcZ=+*rb=x?VwxxOl{x@mpq zdzC(fdtRAwc4pmm*{YAnVTx0=A}IP|Uo2fIlJ6%vrpx$H2XkRwj|2~I@O~L>p4up9 z-@E&W(8|s`WHuA3W@=g&U*qo|y^j&E^w_S&jW^xX)4>XpG>(;f?AX`fFH!;vA%tcA z(-0F(Lss4i>2Y#Z3`-0|_i4(nJiAt%d~-lE@`o>~l0=}{VZY2Zh52W$;_1iXqrB0L zK7?)Q<8b=n$Z?)UJHyIxlXXOAGA_~shs3W0i(cLe^3$c9s1M;iV^_9pvJSbGtq4@wx|f^d zFEm;`SKfaG5jom30XY)|1zZ;IR##h|j{lOduJB89bkQ>>@x5wz?AAR2&HsE;8(LJ! z4=GqHc%_~lxvm&4mzA;vdQ&KCMhV?wD_2`#cvwg=P1^9`jsH=1`WMhJB}~I6lfNhq z;<9T?ALN3?I^TVYnx~S`8fsM3Dv}PmT=g{`#Wyp6l%ISM;{2jUjd=078T&9m^P)N0 zIpnCbRd!oPD}P+e?v3-aKvMrD)qQ1CgD<>JY=Ns3PB0>uMI{s}zdJfZp<5(uwOCYt z`!3^o57vCSIL&F2&r!kSdZ;{#CGhf#++@oeWbY$25y+iQ==|I=sXE_j-Uw(PVh6VS z<#Cr2XR1K@EBKkTFNU~E>xc7#%BUem{V!40 zH5~=$5A7y0xZ9C$Bg>#{iUR%FIz9TdXG@O z3-5`JR}7C=XyY9X^h$kd#@w+7Y+h|G`|M;&jK#r#l2cY2u(25r0iky@?G(YqRt;Uc z3_m}Azzy}#%?_MrXi$FnKFyL^=c!_Ld>|)haIr!k>XhV0>Hf#6g`{0nqxzFB%9KJ4 z#(NE8C*qsG3d_1>aGaw9g(OE-$E2BB<8ti2Rs1$QX%);%UTPH##P{b5!RZPH`|_i3LRS z`72iPkOe}wG^;4@7B@qe+sfsY_;_)>p_u85L&c-ecVhDWkL(KThw%>@>=*txk=y8b zLtbtS6Px2L9-fn{rb9INQ65)5b-gy)XE?IwCX?Du3~TS1se5~-N5lkf0EKqZ3=#BOA&Jz|rK9lLZO{fcvyhhV*-Ij@RA-g10(fh$&#HbmxvPMd1uc}9Md zt_G9)wL&sbui<)vCEnDq+k7zCa`s&Yy2>`LnSSpicnLvhnYa(P#Dt^QYINyfXZ4MDWKHKQ(yVr9Xsdr zX`G=xrfWO#s&#I7GRn29a<{vOyR+ZntHxP!-i4F8-Le;xoS4R)z-qcxqQc7P#1_T= zrV_5zaHib#B@^itRb{9=Q9@~p!uhRJZINcV49^620PRm@+w(7EKyp*U;k$Af^$A;Qd|5!r1x%XM<$Q*in zyTP1jGfeP^p4C8UFzZyjtXujWto%d?>)y(=MY&lxUFgoLSRAAAd+DYs2|p|LKkW{} z_V}!Weyt>(FjBKq51B*W2+mD^yxh@#3+%^uQi0N6S+sXfPGnQ zeZ8Gsi-O_ZHT!+xFK#03Yqs!W z19Fh+9N{^nF0aw-z5yU@Kz};HnGJHiG?}QebDunlc=4evcx}e%?%Zd^rSH;lG#8I} zH-#IA`MSY#Y@|$b`!<>BEx*lsk%QwnI5;Av zBkd<{kiMqAK8;C(+v1OpEIP=`5iJct>puFfz0_2C3Afc&pca8o@X}JH%x=O#6sVzL zM4qT3Jo7f6>A!@;zb7$js%}vB?wM|(jFEc*kF}mUndzen?IGR$*JB={OpU5;5+#9@67pa#>|`;#46U2$RYULG2Ta< zclDcN<_k>0YunBcncwhpCpwpuJs(=J_PG~#o}C*?Gl{0erI_@TXg{Y5Iz;Ial$%)C zOg|MTD#@b2z$Xg>G(=RV>?ZceyFZ>xXc^Cy*(O~b-iB^LuQU>Ja4m~Up$(g^!o3@WY30s+>g}jie{?iQ@)iofs1*ES^dd7jcpKcLi=yk;R zA!gZBV)u-O9)2$K6DNf3*5xe%B9-vpxqXgaTe7md^UbKgwKO+pI4L5&H#4OeH7Hh` zOuX=}Cbn(rkI%9DaWl)Oa9cCsvt5HXVeF-JS;3mU0@xqH5PvGcMR5C*fU(4fl@Y~N zVG4C;t)un3Q?L00>6k*BUwp0!(o71yY&b{XFu4C^IWndKHcYzi*E!%pgC1gklx^0p zlyrA2@hTnfs_2kV^vrVotO{M*)lqm+@4Q-*gV>{q`P^sv?%b5fG`X^SvZhHlW?Nw3++*J9T6KCq3=^_n$M1u@-6~!HOn(;(f|BaoKb>7FqzJ(Rb_1BKz)9^8ke7)mhu;qxZ z`_<`NZ@<=yJ_gZbiSav_a{hh%=-oBw@BZ4b>gT&}RTB9IbJgfDve^KJXfxb-R7ozP zw%oy67`Qv~JBlW9#r|-u(Pt#I<@>i(K@+;KexpMwt*g_qZ{u+S^)!ljo@I9%c$RfS zF2W85Uwhh;&PVP^@6}{wTrk`{Ds1gzc+X-U*?T(J0HjT7T&z6{h*o~^*+nmXx{o-R znUEdbM9wW3;ws(+TDk4nz7mjejl<{Kl!50PGV#AIUGE)#j+_z6Y_3gNP9LJMo}`k7 zh-|MZUYl?%oO`DKZoM|Bh+~UQ$Kl?#)W(T^8d|Dw-5$A~Ta!$?v>Psp6HHk!ZA>+uJqr zBaszqryRML-Ca+q+y8N8>JJl=e2o@x+c+pC4&#s>tHj@cpEzMg%fh3qp1O za@i!Tro)a+49@vjGiA?X#eE#FmeI?Hi9nh_L!$CpxIu*;&ZDDQ8q~_zNH9nlMip@M z8_EgM&@2NCTZFh6?ZTo@S00E!hnbt?1-8}m(&rTO@-Z4UtIGvc%ZAd}PDyPJ;DV zmJT(v&JsAu-s%=J$yeV`#M6YmbyUdi zB8Lpv+ec`iD<`9$m4!P4lBJA29knzud@195M3^bxQZUM{A^g=&30fZA=^==BGw0`i z&TySLneHg9@;V`(q#dDXKA$DsW%{qlu=zG#4LQHdWgxAVH3mdHx)>VsYn0Knl*UE0 z0rAG-VJr<2mARM1MUNJB>I`cf^|hmS%j(ClMkwX5rt=H5JgW(vQx`O})qn(T$X~Dz z&(Byffe@m+jfM8i-jfw)V%lkC{7g-fZ>ikaW53Y8G%CnXSsJ(b&L~5~6G+WHxW)p@ zjFx;x1$8Qoi9zRsC*tTBAy{^WHV?GPm5Hco`cY7_uAkB1^IsSH7XW&h!eq3zWfT^b zai|GXVb_hk0C_deb+AjsNmB_Uq<d{_d*|1Ph|EBJL`<=eim&oF#+t3mVeBD30DDTTE0MuCiP<7|CgvVVM zk>fT=or49a1gR)7SHq=_MXC#|%FLz7zdg%}x`mMm3?Y*MPoH?NVzl(d z4hy3Ki{?zZc!2~r;H?+E^4xD71KxaBSp4<}J)ds@C5bsF7FT{VYs z?WeeMZqDuwH%K<|in%RxHs`grp%Jl%XtN5v~QZ?n&kc^4(i|wgV`V5zpkI7WKsz|=pJ|k z{rGAp>x%fq6x^!3x-&f0qK9D-v^~czzgcH!ww$AbXV7qP{c7rE!xTFG^oW$m?l2%YcCvf!C-2%bZ;}l( zIBjDr!;s@9%mEkVbRi~M(bOf9?X&P{JzAXeOJypR+QLuV!}HTUjif|Nx!;s;eDyn_ zxxONIMrXF_AhPN0z|h?Z|Mnp2<=h?D4BD61!Z=J7aYjy&NG-EXCiA1Gs{u^EQ{UR_ zwVJ(BuWfkzI7rE}Ky@xlO60;gHLo;!J$G)IIv=Y?W9yyT72ZW|KBtk<7oni9J`8Y- zK;?byM~YBNP^1!{1Y<@wvNKOoJ>F;5Y5aJ&2M&cCr_@_XdG_*GT+ zcWlf$^uZ-oNPl1P?1qP$+7_sSmOP8Ibzn_K^QJu zfI&*#upZ%$A3a^q!AWtSGx8e_D;uNtWhP6yD!cnlgxAmH}SnO@`TV(~3ovE8Bv0+L%uF@;l(QVXvoi*q4h7FjpsbfQH zjA=nvkw4xV_vms%TmU(+jBoCbpowpe5}$D7T1d&h~6 z%B6n(P&R16T6Fhx6=F*nhYO(AuZN4EWZe}#2qZVTipH)~4c;fT)Blk8%Bc4f@)-5Y z>iOOLX_06si;fw>rjelzwjAAmB~NwyPX4?+w7wQ}G{*5dEQuzlU6E`S=LWEoZYisV z$)ZZBcKbptn~=JW9fv7`CN?Y9ubTQR4@qe%s`_Gnik%P?&v^FjOzjl=4sFbi#!{w? z?94dHX|3o7PifCHx5!x=#DA(RSzMRIDXzlpNV-D#&b^>d;vsf*##kGO5)&blo3!(Z zkq`;@HRytu&0pkcB-Z8jy29`42?M-rNs@Tgp2(eJMe%A1A~tp6q-(8bDN&N9$T*E; zT`Gui{_EYh{dF7A(^#ZdYP1nTH`{|aXWV4KHpIJ_Is+3>9=!Pkl@mzDeD26Ox4=4A z-A9xC5f9iVW(XtL@stW!uh~la@WP-m8Mi1yCmK(t)sf}hvi04{Gi}jE^=B|#Nr-=6P={mecaz8tU9TjnfYK!PH2u$)0zxKE8`m{U zw=zZ@mMX3zLY=)5MQ4V-zvwya>emslCI}(dpa2zr_KPX3KF!wU#9hwz=+rRex^$OV z!@m#dvk8$W&F^|~^E+|R66v5c?IjYtP6+gs%q>>;m(_jGDC--LSu`D?!L<3+D+DDTZrCR3*>b21CWI{w zVeV<83%uiduIl(o5e1yUjzWBh7#A+~t(I+Ioub3}ETt!t_(Sk5A%;93#I+YLzV?qd zXag?(2!O>B8X~fp11k5nLBu-EB+j`BRu5W`_ST}6h#{bD+z+#Qh}FtwhwA3OKDALz zP&33Tk^e{RYgxz$YGnDNMiAoM$BHNt&umf@VPZTzpnLp%9$zsL8cJLHrzeGdz~t9V zF|G_C7GX7@Kc)D&}x-@8ghM{`WS6PsgwuYk$@ z@8f4M!^|k%5UrhaLV7Tose4(c*N*&fuTF6$R5FkH7ouw0wEdp-|E7~zaMrx~z4P$} z%*=RFola4uV{;WV_F-&l;Dv4WDtLs6DWF;vXc;HZhnZwDH1W-z*>3s5otEfe{ND`0q zYLhqad**w$2R6va2x^;&q_=G*(!@ba@duZHr@{Una_V{{m)Pvrzx_@lPhsrVLDP}6 zz!ochQ{U-70U^u|%+Zm}Q?ko5BaV7pc|n1lvH|y|S|iqf##a@qHMdaQ6vyA^vLKy3 zDp+zpw3W7}9Ww^^N94dCSKH-9R(y7tX+8+-+R_|?jfKgWmOhXMPrvTyWq=bPFUX}J z=ATq+bO&=ss&A-waa6p94*(JD^78TyJ9`y4hUqLuz;@2RpF&6)z}^Nh68N`hQ#J4c znF7uQF$$zWU)vhhm$tt-omgSn^=h#lXIr#bM_kn#9-P%QjY;k9S1ZdfK*-%5?(_bu zb5bCRnh7+pG0Zk>Z0x^42>x}WEx2n4S!Aa*ycMYGdu&X|KYkp(oH}T8hn4j$P~q^Y zc=7KQz1FdEm6eqo;25@qM8nJp&>$sYl+s`E2@enF;Np5E)!*F>YqhE}ubNz+p}J^3 zsDI}Y4eB7uran>s{-9VDtCFWsUq^Zl=(jX`yZ(GjamQo{oIcm=C~4T!Qs8S)^!+ z^B->zmhi(G{mt*P|NK9OHrMv|pFcx@-1tFp-k6x3CGfyZnAUb4 z>Gx)q|IVEU{$ISp{-56*Aj+c7*L;OGFgbI`U-N%I!|or`fcXp+jrQ#I%SMmd9e8LN zO8wWc{WE&#PF74k`=2iO*N6RYodP~nF_R_)^X1+9zs#ZWzk!lRJSZgc5+~lo%pzgPGLvj?|~(`!79PTh4x&Gadp0f@-_b zZ~&yZJnoWBn3mK%ZFCZKm}mvXGu!DJUfef9E4_({KC@~5&Aumh!D0gIojVwwB%|+N z`Q6=JsbkJ$Spuke6`(Nz$Lt=a(uM&kA^pzodTi+P8P_dr=8D*($IGmNRXR*oz8x9S zb`YflBG9*FW#?c10>A46_`_~M^y&d7c+cmM$8+v=9<|ZzIRI=%*3NlH$oQScN%H&6 z3X~exw*%}2}q+5}=J?#8YQtuW#NQRlgh5-U-AKtV8k`t(yma&qD9t6ttI%V=rv zgMD{})7fqRJYqW0;;HdXk47p=%IxOz-QFlyKxIfCwHr;~Gg*JnR>MKbraIui6JZ)B z>4{47v;&PD6;?ZK`~pn@1lyL^mU_$9e2Xc(8g$>iQiJ+eIaUHR)!>-CSMlbrv=5N? zqn9rQ0iA)FmG%3}J{#drfG`2TOwALO2`C^M4OKhM(grd}dYDyB_8j;Dbja#NMfScQ z!>`nPu>_QCacHd=q?0m$Zw1f*|8g|rN(z{s``hywVA#5LycHF3ffUrrsf4g_-0$Dd z*U%DmYq=@<0CEZDHxKVGUmeoUyC{js`Q zI2x>m-1TXMA-TA@BZh{a0zO-BT69#@pM|zJ&+K%1Eo-MgOZ$i_yd%lcD|-e#x3XG7 zp_KIX_3Q1kv$MN@{@lOMol*-3Y89?1b%0XUT@zVDhq`V|2m;{e&(wRa7*OS8jUyd~ z0S26|YKF}0V1~|x`bT7GGkb>bC$MM$z*nK&&oL?=z|RZ0uWLhV+lou-Eml@m6gO_@ zY`IrWssh4W&bGZgI53cf=^sF8ssPX{XR(}z67K8QqoogNKr}f%JM(G0$D2IsWId26 zf4-&>fRzcj$Cza<44V%S0e$M-dHca*+c84r0Boj#S?1iDZN$7I7{>TZD&AmKn9rl< z&+o9s7CaUG4O;a6{rjD#MTQB0A6jAYoe)D61+)zYl%<6Q2Ol2>Yd3Q+bcCq2>>>fP zur&|{7fAV)^vepv^#YKU@JRo@N=B1vwrnm3pLxh6W0(QG(_Q z+l_GeA1~s0Y|m{T(*gqn=It((fOMh(V_l-%w+iMzz>~saVq)aL^Xrj)KtF_+SM9Wc zgpiO>fVTJQz3^w%iA@i=)5eOr;WC9#qFa)ZDZrk^OAQ)5ctM+hRRZ&x-1VRe=Qjf7 zZ7YN!f>kBK2JlzMG4q_4hex#+SdhnXG6LWy9$X_P9z|Xp8f}6Oi7EpDtxJSd_Pl(o z!cxg`a|$s9{44^1Vr;;pb}WjFNXB{00Po(318_!0e_Bt0%Q9X2OHal z$^ZDvax&0I*SvP^+A#8X>6+vAT=SGhz^NARty}Vd%ax3AT51_GCidf{X*FPQd0AK# z&Hx^=2CU!xwIQ#qg!D)4F`arJN-VV~%+^o>Amcm_QVD3-Rs zM~)8-4OIiijvWBIP63Uxrh|{ktiWS$0L}Da36G6@kQ&&6G-0g9VRC7cO~gko-gLX= z3b~vNo^IQ6I$Bl@JS;CWvs@z(;iz^+^}Q||F-JvnVy^aV_3!?I`1!bPKn?&vW! zpR>){-e#xTX$0Wt=te|EjTP$_iGnfZm6o1WDRGYIF&!!+hy+SBaeIl z_@+85>-ImsxC-n(;0jRE0B=7md~|vMSdy4lS7&B2^Mc@=B4`Ue6V@?b8~<;lw!vmm{D6t5 zAn(AGVlYJbssjLXGZUZz06TpiDqyugAxm4pcZpO-I==DVz_ zKmtqxaEnoGW(zrq&vyU0tosw#BJiLJ7#f(gfaXJ@nk@W2F77&5g@l2Ob!kwE2`FL_ z1_T6P)_s7xqTe;klrO_!%=fE}vx+ObIBF=z)k511E-Y|4Oy1ls*#Yo^{QfD|ANfM^{) z2??$l@I)9`5b%MqiHTi}+sIykulSL#nGGE;ydkxjM>a2Cuxq5>5fF%(c5X>qSTI{! zT3VfN34k94gXA&_*|sWmJOVkz@#)#{$LyUMgeQ`3}qldCYPEtN~D9HO0KID2Y&w>03Xtb zIniTi$}kwr{bB-`2tOcYgxHK>!QpE&^+F&}tTZ3Zv4B(sgT^X3qK#A(R^#^Uv#Qc* z=(DJZ^KlZODWBeSsudI$Px=r2A27JDx9U-=)3y8{C2*Pt->S5qFfT*ZVI#b|Kdgaa zXr+Tx?)?0GqS`ig**)bK#+ty2FCOGLRecNKZNckyi8Oj{myR9*_xa7DA|@f>kGSVb z&kaD%)83K*F%1M^kWD=YK8aq|KNVp=KDMX@_Um1A1Ij?w!+P+!kR<8J2c*URd{kmI z2crWrhGalasst$&@WEbx+wfq@>gsIF%z+@OO9pN)4n%Y?vQLY)sjpxE_J&mE2XLjB zoR*6#+&cX=Zua2G6&hq(E+9UKk}|0S)~Ko9!3~eb<{4q|VeR$rOMZ6{6|x`Wq2e=E z21y2RvfkBo4+8%lJyd^CdfzPg{{XL+9Vq|+ literal 51608 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 diff --git a/baselines/fedrep/_static/cifar100_100_5.png b/baselines/fedrep/_static/cifar100_100_5.png index 17f25eb480c44f9f47ee851acded09262db25355..f22ddcedaf61be55c05bf6e57051efbbf02e94b8 100644 GIT binary patch literal 50075 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ⅈ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 Kx>V9M@V@~RAy1J2 diff --git a/baselines/fedrep/_static/cifar10_100_2.png b/baselines/fedrep/_static/cifar10_100_2.png index 75ee48b2c9707cace4505758247bde1dca52fa91..1e7321f85e01d2786b2bc1807875657eefa5805c 100644 GIT binary patch literal 54765 zcmeFZWmJ_>_b>WvK)R8T77c z4@I6W5rEC5DG1 z8N`Sk#2Dd+`F~&ipT{7A^I*n#(0KV*qJwZoqQUbT$Awndx{L7EbPd{$ z{jVNOO--qnXhx1~bb9YLh2wEG5~E`g%IfLScE{00=VyBTM(V}Wi&3v-`HR#09t|aA zMl(jNOH-mYB8jI)v0h{^R|~CtF3GroHwX9?yn?YP0vdsZHY|qDo9oN{lWF@)vF@w$ zL&xo^@p@a{PcJxYQn(B`aXN^^&!CrL#~;Q`@5RbD9u9~=0jsO#KIbbb9tSt*oq^AtY`Bb8?t`4*LaRe~_Xq#J=i96nHpTV`Wp6Wif>@?^=-YvbXDo1dS!|IPVY!xnl#3o=dw zO?-T&&iP!4vo53sO!Pb`2(9E&&wbX_M^7)kS0I0+XE0qTX$>A%Qd~@UCOS4Y);MXq z>Y2H=TZ<%|8*dS=nC#2X%kyl^EGVvzijR&)(oj=_LC^M)=LIFrQ>NZlR*!cb;2xQ4 z=RBs}dxxw2hZkr4X@ZB)SFKo1b#>ZPCnf&Z z(O9kir?c*;m~@#e`k${*#&5?<+`x$f44b^Fdff`fe&>Jvx)(2cp!jD{j#$=3>b_CX z`kE*h$I`~81MKsJq$H%{?VoHJM=*~2x#x2wr82*3FFnUD^4g^+wpXuT2gT9|{`6u; zIHvMi5PD=H%1jYxJ6XxeD~sY@rv0D!zn7FCwrl2h%CF-@b|k&MMZn(NINg8v@Zm&- z1<`=;CVTuPCL!%QDd|a9ewH6@kw$cyeY5ry1sPdz+Piw3GyywlZS8x|{n19RV{1L% z<1xh-FFu?!olMz~Ffhcw6hCKPaIQ1ursDQKv5nuRH1y$tJVG{(y~I!_4z+EiBq*hb zhwgxEyuRjheLVh%o&D$uMo@M|1(~a>E2jiSv|Rmd2ayEoaDf~Vu`!Zw3S#=Ry)Fic zh)0KBzkXd`sq#?7eFp=2ks&;0cKPA4+Ls~Aua~}U7+cFdNez`@AZIj02t%pjzQWM` zEj-BkbSHH7-KkbVn^9|LBpG@!Kh@8I0vNQhu|a>T{OReP%ad&xB_*Ya%y`C#%y0}w zsUuSz9i3OIs)3HkZr5`yrH|}V^73K5gW(K*k7jSdu{9dXk$ca3Iz4|wk>zuMv*p$> zj^rWH2Impv0D3l!!q$m0Qy!Df2+opZ)i-bMfI#;3y-3-{42D@*S$!`oJi0uS2`7X> zxVX6Wm6-MeY}4I;U%h#=QaT0g+voNdfadDyTJ6%)8Wm*MQxiQLBFUH(N<3@1SV#Zu2D} zm{xNya%y@yF)?wm+-@LUNUPq(sx@lP2&CkIHlsZ+!xt}Nl#VL||7~t&k8BV#FwE!i zQ^m@c3=ZyS8eB{X{?Qpb=;Iw+05NFYENO{bUVa;Y`3YTDQE+ry%!(iQ$P< zS6928YoTM}?|sI@g22h}C!wSaZ*P~T74y0qz^H>sM32f^tujz|XXgSK3KRN}l7g&T z%al=8j#V-+)YVN>x+E*o*t}1TZv6C^oKIf=Rx-Q{ zGc989zv8*M7;jnnmiDgQu4Z=Cl_7Ht##ktw{y%F;N=BBLmNs3~@9UX~0Mm~+IdO}j z7n?%feEv*bSyfe6YpGN8SMCL;Rw)GXOeaUpOi)Sl1unD)az8paqqUVU{rs9guzvpt z4m6yWaCCIEHYBh}gAK$AjJ$ce4;Hm_dfU>@j$l%*zo$n^PA(MTMsZ+fW0Y-J{of_+ z{5MvB%I`~8hl2=ksy3Wky1V6}xkGfEpmniVgkaY>qjvn#l8Nn9i}B7VM1w(ip06!`uvwYj-GFDM z_k~16M9#Bi!Vh@O`y3`u)13zvot>P{K7ORInikn@>_A^=IbWq|vDxbiM8`U-tmO0S zOXc}_L2m#a=&IHcDec7>#F&GH3nP=2umHJ5tJ?OS-{thY$>?`g&Ll~JcQX+yy(viW zSwtHX6w!B3ry11dyc|q-&c;1yR2xHYtmQsDJnYaxAh-aEB%&=Ciw86zS(lk`N3`4X zL4WAi4t<*N`>d>Zo8mgmfCSCc<)oKOAnCTQq!`BC!J{xj)#6?M+h~wxsekl1)cLo2*uD#^chZ?oQVz9f>^UwhlV$?Pol(-cg5Wlnq@e<;^bfOLS zJX|#f1zdc5erhTTOzBHm83{O-Ulis$?#qN3fg(R_m)0Ma<$p7oYtIByPl6)bD-gM0 za7On0&pH^+z+)d`1_!=WR9tuo8oZk^O~VziIC^gHB zcr4x#7Z*49EZXj|Rfg~>UMxeeIp3W^N~ZBqS};R)Poq=9otc? z-@xs*HBm~J!Wi*O5-kCRQ?PTgNX|=s{ujN-#!LUtPo@6l`mA7DiMh>fiy0EW)g6cZtd zR*J{W%nT9FNrKXIp8;WBv3R-Lf&h&)L6ZSP@d}B-7w1{$KXp4o>w2fOF2&w)JEG$p z92`_|hc8D$a}4*v_*xT!JUnH+Xxst<6kwDiqP(>1|IaUF!pElJyD{DS;Fv+MQ4Vze#{J&@PPr9mP?Yh>@jOlqb^+IuuwS9BN)R- z(4T0_Y_t{-{m3%TgJG+SZ_}vy|4V*M^wCI6(Kh=jRJD; zW)uRjwJn_Y%}`-2)L=6)F;V;)LXy;j(PR)$#;T&Ymhzt!eS)^(ruavWLiiT7s*5$v_S4h}Fp6@XyrDy$S-1~H&d21WHnDmN_4@8U-Z=Wt6 zjl4wcBN6&L{<}@53F+xEsH&K&5Fa*VDGQomb_zUtj|JHB%F2CCPC}54TfyAK=uf*S z4N+JOK)<%2J9w`&H2$JnfZfLAq_wTmSbKqe@`g{r>#;0D2yH8U$eO3igea>oJVV7r zi|&v1_Uux`rz4#)f^UX?=Vti#o?_UyTnkjcn??1aUD1?C&}wtd`5Y?a(+J?B5+uku zu`x0DeQAP3W@cu!%kPyO5OnSft7-P#)ppYkx7VlMw9}wyqR=3y4#A)vyfrsp0zFeF zC=Yu8TizEGqy$M$Xh3L#8=jy$yy$+&Oex)-kb+D2sBv@24*A8;^UN?=s5hzI>0N22v2l6qkb4}j+ zTNQ)#wA0`)qDoB&4jBaH<>h$*44|r`6E!oV2eqOTi3Wf;QGia56E*&ZV@cBqwRvAE z3<7Q5V-!5&(5*JQINH#ckOEsm_1C~K3)GtZPh(H?Wl~N=DQXAxfhX%y0-uEp8_wG_*^3?B_&FE@P)#LY(~9ZsiE6vFfnc2>C)c zR%;y*9>%WQTG^m=`>hh&u#O(3nrQ1O?h5YyLC_7sbCm3eRTZSA(NISM)tI3I9~B)9 zAQ)le#lHg7x6lF#0;{T$(EIF3(SpzD{m9V)-b%SQ(GgCBc%!KwYE#lgk>z`G@A>oR zrGV`KjXV{I$A^=V&Ewk5;)YVtn4zLDZs;#&K9K%wabCPthV8^?pu(oKq3|&vVIsbp zq)gAtmbDY8n^aFZBE5C@2QEy-N}uF#fg*zaE9s?pqyoJsMl>Z?_jlD?2e9jnR(>Zx zdh`f_@TvK*QQZ!}ZGkvsEDQaD^B-{GX!|=2yGv6xC0*b=#DglmkQ2?>{^~ViuHbcj|sKX^NfQ;6)3hMy_s^w*G9+n z)9Sc>{$;rJ-bgmJ=;^F+rOT9;t*`7ZfL@Dj05~Iu5%Ea)jPL0z+-02@Bv)%|YgGO- z*_o*u7RRIHlm#&q77;0XH!C~?ny>{=`ktO1DC8z+uDczeP0^b(M29#(vEQ8^tJL{3 zv$(OxlTQpaPrMn*Tbp%jgr&ugxo=R(?gj!}NlcPmtKr6{2;pu$wr?NJ_iG)FMLcM_ z%M`Tr!xD`##2@QhHxrxc_ZzW)AF%xZ$7-5RC{LRt`a1K&wC5be4en{)5-FaCg8jzDT=iD5zliP0+kGtOymD5e6hza5M zzJM0Av0uNQkJE^zlh43R!h9IK7FgmIzKZ5opG&I|P6obcqW(!6hzxmy!HH#MU-_lJ zsc~uFagcZ5A8Ko}mO7fG6{XiH!%~r>NiY&ppADMQxHSn|JLeQrF#J;37IW(NxQ$;) zz;u{w-gK2$Vo5Qi>+~H@p@^|0DP&~%?GNQx6LHAOZETNnr~L**_^D2mup$p0<}| z_%g&LeVdiqajtiBKm4@jd?tTnwe=I%RgBWyLHRW2fclW=o=6{*} z*J>y+kC&;*@J&o_Hj06041zr7YEmZ)9?_o-mau~3oOHjWsbsw zZ=adR@uBWzoVe+sDFK%$CNhe7jxhgE-_ZjqJs!M9;xBmC`M!3v6A`v0?7Ua`NRbj_ z>D~k0M5EE{@;Wlzc){;p&0KD8K-^8#RhYV09xjd=Z$RMjrf5}WZhPKo(W#^hJtgxO zw_q;LNG1aOV#!H|b-vHs9E8e1UbHMw_}k70T-w9|O=B<@xaWq9cRW#9UYN|AAc!`Z zL*0k4|3zzt1^yjIpYK0$lr;EU7kX!s4xDm@juqSuRA*vDYl|4C6t`F++y->ZYd zL4zHKar{IwHZw8gdXa{J|&%uSOWwPo2HA z8iDMe+7$mX1h5RQ%dih`nlUMxPw+TB?9iKM-oSM4YP#%l+O%gLm{V0!>v3ufJcY+4 z9qgQ35)aJc3?7z4chw$H$yDgE1%3+96b^+P5~(l^>hf_Z8vH4pUwZNqzNrDHb0H_P z9f>=PtY-=51)ydJo z2JxB5-uamj`;#}w$Pyw9J+dKZR2l4l2e*^OWOrk|0UHRliAolG z1ZYZqyoI2JYEKy+ftSRXa{NW~Z<@hOTMs2Qa!5Ym@K7ZuMMz}uqCtD3zk{{vpE>+` z2RGwxu6HIBuQQ`?N-}W(=@6uU9K_~S*{TBp1=y2=CE{q&vp57;TLqSFvkcqqGi!er zin5}8g%uM+-e_b=h+|pp%g0|TD4~_E9YQZh(}re@gQfD@BDOG6E>qEe$+wqj@E~VG zmimJD-m-Ro$s38|H{txwB~GealP)Mg^Q_DZa&Uyr9zxrMtn^yVGy+)h6$%!{L!Ejl zmt1M05E&LrF35k!yYIU04VH9`H?XxiN|$M-b;T)n@mVqJfNJT1lDz;c*Ow_qGdVf= zXTv4YfOH69r2OSl8ruUA$&xbdErX4oB9J;{?A-c&#K=J>z1R1#Bj(j*y;ZIMje`U2 z-hTB{y{ilP_=LTBYXV_Am6%?o_Qx_K37?E)y&6eW=;_HbY-5oJZ%@~|)o{5jz9-x! zCmMAQ)8r$|@VXi0OXQ5@ML*69(A?Q@1Z_=g9ajm008Ba3i}xv6jK_IYPJ! z_ye)Ih@Yz}>^G~#H+whL-*NE-KNX$n;3pc2@y>6Gn>vR&lj6XBy~dGWW0o#)z4oAI z5e`tWnKr5taeQTak57DX3^r;BXaCHMT|qA56COCt;pX!&EYe@3-?jQ;#`pzPzY4pt z@x?jOtY#F_h|lMw2WM1oXWSAlT4sq4CxpKm3sOlV8^Ow7+7ww+^u=wF_~RcHn?pw$ z5Q2wlZ+Gf9IX`^-7=(o5(~D98zzsT9c_}H_3l=hfRs(=8HM-(hpi$Jmx7Yz#Vuy>3 zd?e6nI8VpN$B}^g1{i|g#MG4M-3;6Z&}75cC?E-#kVTjJus8}1oe&!PM%DW3QMH%% zd3nijaB$85Qynh>*gL?UnoJC$5Bc&{>JI&RcL%y_-g#f)ZU9GyTcz7iHol2h>fxZ} zK;NA}=f+CF(LT9Pk6(B@zgLKnlFk<<-?3QC8@?zZI3Nj13E24#b8MTAJ)12?=haU~ zYqU$7bv$P5@(ExFM}YZ}ojGCG?{Yriw3gxSe;IP{IQ;zBV^NT7Z&u8i=cP*^m1hr& zk5eyuOrMHmct5Nttb;*?qc#3?up=kZQ!!d_34E4uhfF@QP6_cqzND>t>4I}G|4qjU z8Nq}Wt%p}v{&cT#nFx43qNcBNqLDdWO#YX$p6|lj7JG4e z4gl1idC-?ud*7CQ@|_)wGEg ze~F!@Qv;OjbauX$1%v)K;BUJ_X*6D}|DIcIcycoGvD!BjqM4|%XL#3qZm#Ft&p%Oa zh6gPi^l~Zq`icSC@qyU4>}=S)-z7(J{l6zrD;9%K0E#k2F?ZGW^Knwan2SISUH@kv zx^5g7xj5hWmdu1exRb_J@hQ$?{u6RL_21NewL7yMwTrVH4zg##Uwdqme?I+`+xd+b zqvQS$GNwe?zQ_jE;p$Ep}oFOPKb;wsSA~ zTk_VvZ4)ql?b`$BYgBUE&Rb@x{e6y#z4i8?v(+87{o4VC*bu6wUU42T4nJNy#vNf( zDrjLNIlR6qsJ3kONq_0_c*MlUa^6zBjrodqt!7M{m16|2C0Km@Zt@ch??!cqx17wB z*nYHaad|&^-30WETgR^WgU?%Q8<{7_FP|)W(%;U#LX&j3orzDR%1yyIsL#=XXNcZh zO&S2|CS91FF6G6*;id2n-1iYGVRNP?u+e#I7*mtR2#;3ll&aaf%E(egZ67lW@b0}R zMwk->EbsWtwWyBL4+GhlrRU1k~^MMd{o(TBGicIxqfu1$xMC|+cV(>;Ft7$umM z*-k!9_gwu1p_0U1pz^`5k49h+Ag`VPB9{e)7@+_K2H(5${p-yYne>E+eAF z-yM4;md?XuNb8wV7|n^4Mk;-{X9w@zR!w+mP2)WkRw8BMwNUban7(KDrK|}VcZ2{ z^3lq#Fq=$A$^*XQC0O~15tzdj8S@p}wCto$xu_ux{$U zQ5o+1?A*OsY4ClfIjKE`0j0tp-Rr1WG9CrVtStAdID9SQ7@{Q)nfRs1y>v1XX0nZ* zzu2^yzwj@cP;Y0oFNR#ERY9ft`B(}_>I=)E2#a&#!Npe4oAt;^!zM4&;x4xoCf=k{ zIkoH%vfb3W{DywCm2;&!PbGNgQe49UIRo4|mR5FhCelI7ZtXXX_uFTxlG!wwxCW0qx-5?h zzZ`bW-`=>Rge;GZycBK_`p&Md#Z2!Vz?dYT)GY+zwH}J1Y%5kH-%zFzkNqx68NdmM zec=DaR5WBO2OF*H#i!6P6;g)2YH$Z)80Gf|#zsA9|MyYl#a?-q6BFX*dA4s4R!df3 zIF0&?vF0>!>NUnQ0nCqO#W=YGLOHY z4J%~k9|#yxc)N6o&RS-oAavt2_Xv_c^Y0iEw&bUMcYs`u>s69=Dx_C7zwaaAX!Nu= zO$;8Px!hy*;HmK+Ylp_Um|T84DvH+a+l^NQKSkhtpD$I&4lILcTQftDA+HK+7<>zN zFY7PJg7gQe#Ju=o&u9?fW*@E`@c3OHYo<(t3W$elO@IhW4Z0jj zAPL6N3N4kt1X>nn-7=}qUK`dK;EsW_0Q*IzsCK=7X9USay=y_Q>5M(uZ2a)Cjcv`v zNDVBaIhu9mW0kW&vQvE{+L);k$tr13Z7k*9qQ5WsVhJm z^!KM~p(W63T#UZmE=C(fNA+?pjyZ@F1HD#ve<8w5tW|=+Jz~{4qfkbyC%RsRQJ;Lv zKJhd6uZefuwRsuM%P82>672m$%k%Pl0Qbk2&^muS#F~+0l)bZL!Q$7S4ox3BoKs?n zgl9W4JaP&1@yQM5!Op+lnKmyo9pRCh$r5_nvD++b3GmDnunGoX(R)C^`or~+Q$GsG z=vxzI=%}O*zQu)VkN@hbs;h^9QcsM^AHYkt2jEW~tp%t$T1{U3DBTyB&z3&wzH94A z%G`$jlYaE-NN;aWTk@8Oy7k>>Lmw)AGy+2FqbE<=)n1B)ig}-ee26FQFPt#g;Td52 z{EB5t5aTf<0`ly>%u{`5D6q8&N?tT2eTlhpS9^b|uC+eym|rue;f4fa&CfR$EK@|Sj_`;7zCnrpa&SVuH>Tv3iM?!>z- zj%CFyg}K+5r2Q^4+wrN>{m$KNWWq@i85`3w^=9L}$ln>`Bx=jso6**~Xo#Dg7v{wg z{!ztS(U&ebZ`K6C$&=-BlHk&^X%a(|aCgste&fN@MA8BUyMjBL@qe=$hhmbwL(75$ z2RZO-i`nvtq+<+%C9*`G7`-dj(Mo*%#f^J2ezbjcA(6hrG=j-66`O$>iVP4vUrzE^ zPE;uM*f&8@?Q7}Igs3bMgtnNq@kJ`Q)T9d+Xz-M&+{S1q2}ks>kCzj1wrO}9)sw_( z3dAD#cI8L{knW;6>wh8Z2H;41P!pCwgO6gD*PP~23^_1xP!WmlK`bvbV}OLG=YM@1 z5xLPU`YkhT&GV{->%?SVFkC(MCJN&@R_WtkfBFFUNf%8Z&Xoyk-+rBjUV9SpXX4|- zo~)zCQ0VsLGak-uCBTuLO$&wx=~QsJMJ&z(4)6<^cQp@|gTGnDKME#mwg4Hk!W{A! zAk8spK*KU<#1KdXRDetZN!_?ggv92L$-$SmF$@V91s#!Tw-t1G$89S~^q@Cxj-mjW zWPm0umRG@yY3@7dCBlyyU;%)lYqxbZlGO-Ww!8xXzG6^*gA--4t;i5|LlPq3Zqht$ zL*ret7~%2L&l32;vCJ`=wp@t!1P>kHo_+T|bNce^ApkOT+>3O+3X2L}=~LBSfG;Y& zZ)rIlGx_DGhdaO4ysUtSk`5h!guMW=d*VB1+VFp}cNq5^&5yFpOEWx~BmE;eIbCTQ0yaoQJCa$R3@ zzJA#*ZP0wP@lo&zt)#O9;TJwM&IfZVXMM23cRL{+J>CTT$$$UDZVD5G_p+=RyK5)e zW4*$ExE3Yke-B5#@oX9xoK}vt4AsL43(#4D1-@4`bl^&|5WFwAhc|)*t!j3^iGr#! zjr@=A|I7${XAl3j-y!qDD$p$hy$T^~{E^3la?%c(cPHTn1#SNR66kXDbb$&#p~R{71F@iQlig4heKxn>{U zEa5;ZyubTA_7Z_zbM{-2+r-)rx0>F*^B+2E(<=ECoyrxn3eUYX>L$}W-XhBoX%i-J zU!uH{m#4c3;M>@nFpXbCd8&XmOSzF38vBvZ)8%g%=dyfg6qwVU61!G@rRuXj-+#{u zztmhwK)+r@1Zs4&?JTQK|7$Wysq-Egj z6svM+$eJ&GxprGM5$o5XC}GxJy4Lg^M+hsgo9Vth7SJ~aJ9~&t4@tde-aLyJT#8B5 zrb?%0B@gPPcF}U0Me!vIKwjI?tCks~HO^eii<-w{{l%fL<(-o3U0~!4-|ug>Ru^z* z5}OOayRP)x?@n#ZWW$*J%5)pQf7;8skj%yk2+n^qePy1JRGH*N1+zF6V}Ytdkv|!x z_0z?4u+cAnqtE!|kSLqeyjS+Rd-Q@b(+>wnGG`oEby0G3o%5Q>?+=erR;MzML(*OU zY9|`#OjxSEXrFjJ{0A940#0yQNzNUbxWC!O{c1D&qPwbhXz>9F!MbF_Pg_oQJ&0j` z?w=p~>qCgXt5UvZ_HQT1Imrz6%aL|~>hWFND~~_7G3xF!S-E*5ETOMw^95cI%Q#yf zKrgGc{=BW0Dp*t}XAMC^IKEazr@0=ZHa7hpRU zwDd({gk$-P(THg)k37%;(TE}p9&UyPh1-}D%EySq5$-RD`Z3<^ls+?F)ea2|olJ=F z(EDy#N(#bx^)i9;t4e%E~K@$byWO?|{U-ck@w%qv zQ>*kPWm}bq@7pkDihd0&9pP>IOC>_19GmGBUU?j}y?hz|pFc%VRM?FzkvYc=j>Mz) ze@{Q~1GOmd2g_UL+OXG%OOk+{SUYX>_4Xq;m8(A9v&&%RE6W<(mWIrqkVY>+{Ebd4 z%z)EsTYX(f_=<5a@6p>q>f}(5-1MHWBi5x3jSEK{H>-?pDS{oKhyM9#E{*Qe^sO5c zobbC&1=_RwW)Z+=z5f3}Bfv`j(vjhhr zNX3ARK67cXi3j$Ny!qRE>etgnC`;m_oG!b!f5UPz3DDW5zn1!lJ=}@S3hsfq2z%Zg z$3`$Lb#4DXR>Ll@`wGhtUFzFzH zUfMeYo=bSgL}v9mx!+P?8t4!iXCoGur9~>imlCryqhF%{7&FkF``&-Mi3_-wv-7r* zy)L?Z$&%Q(_-h*r0!*m!N`}Pxu75{Y)i&I~K1`}0(&Kx52^rmP$h+1>2ULES`Y)%3 z!rH7^KEo@z5`%{xM?(sUNlECy7GE(Sj3*~2N213+G_M*K5STfLE?WG(lU;b@F{BMs zEQgD=>YjB|j&WqHmkI%zgK9Z%c*u} z9E)<_Rq%@b6<_!yB74N%w0$KQZTE&HGB)(|gJ4}qXhRwjCf!>21`E$w;Io~dK5;bq z*`g5vIGtRazNQZ#MhT9;1$c=Mj?s>;F4b0Vc_yfMPc^t-5U;X)YFri0cpMh!FS;y7 z^k-vv|4)?InXSd0N@~Iq10fux;= zgwJW*NVt)g)DuAT8(eQZYM$ounQ*Ov*cIbt3bl?!1-Kk;YZZB{jGn%K(S8)EZx(BC zYCP7m7SnS=EwBbBq*Nx=$?BuY9Ll?KWhZhNGssST>!8Cfe$(N?PR)Mzr|9MO{gg@^ zd%!S>mih<+B}SA8C4z12HWv3Y)wS~CsmT~v*vl3y?j6aQW-kVmxNDmDChiFi9NZ32 zXOQ=-9OGRSLNnmj1`0X>(<}pMOu-gsnbS%uMXnv>=+=-!}OCVLO({?ba#DcBxNw;v~+azKGx?EI%;~h6U9{q({>& zvBRfzsQlhn(06EX33)(!|6X=^cob07a7>31)qKeLSx3g>6?^x>5uwS|N_M>c=m*(U zOX*`Y=&NY!KMHr)Bhficaq={(vVy`MQ~A=79^_!wb{pVlfuQEG67>x3u15%u>)3tC z(K$W-B01!PYX1IYeQ0Rl?aj6^`>YEZEtaVBK3ufch*`YZlVz^fx;$Db@0{D7?sILSvxv2Qy8Tkq?)=?0uTIz_;vv6ZRa zdQF_U20Te9k1KeWWz}qo5rc{rp^-@py>r+%q?VnCpO6l#>)@`6a3NuegSCDdIl;CD zP$s|Hv12(X%8M@H>s0E}S@P*N5q>bNuEHnG> zpih^At`4}QCd+F*CnRX*HNO4V{VGvy6OFPc(P^rqs@672@BaB}y@^kG5iK>L$3_jA zZ`ptvG&@<~S@hO_CNv2i!mSzo~?_H{id2iDFeAi}U z6H=Ljpp2FCvt~yn3E&QCzxUwj!!o4(g@WN)b49r6%G{F=qgBXndDE?j?I|D9naOMg zKEq}*jND!YX zcn{v=b0W$`(!Wzq|6*@2e(LmEYpjG!AnjD#{*z;SOD;j<=Fr{=mMn$VsKS!^* zvrOj|?$|_zTXZhIiCp*P&|p49dy)a zBm^Qq2L1Uz=;mhDI9-^TJT&T`TSG@AmiQzA(0Q*^Kfx{3g+W@-&nIe&mZ0y-HQbhI zl=2vSIruW_-~2OolVLP}Aq)79ezT@^l;1^!OUmHb4qWj1*oSSS0&Nf2y@31JC%~-t zqcO0-PgL1Zg8D-bT(4m>aF6|^E|05ygjlsd@JU9*9*Z@HBWn$ilE)8e3Bw0zTgM7C zPxq`xRbBMZC4{N;v8b>E`}u;{kDhzr!)tR+NW$)bJQGX z?avOz&(Bp5oOZH|Bwe|-*=v?XJ+C%%jRmh&28+PMcK(cabRZ#q$a-jFVQ+tY{(%U^ z*|!*(XH685Ui6O%uu84RU{>?x^2SYaD^*%m*2$H=FB2UIH+$nu#-8lT>4ynGe~kOH zt$mJLaJ4d8og1ng;6g7{oSCxCi8P9)a!*D*S56WGr119gL`r{FDuusRu52y|ekh?5 zjkKdR&@IEP=sGpbM?bp>*vnM1$i31k<>@e$=J=6&iOA`)U!bV^PYJt+3kiii$s*))h znNBOz=X|jI>_s|!Xp;xr1u&igXnlAa+-|_9g%ew3`3jJd$qX)*P1>SJtJT4*c^juO zFSa4SVu`{zTs}UNzoU`0Mm~h%#d9(GX8jR8SpkPEmjj--SSy=K0T1L-U!?{Y%03{x zazf+zbO*jGdLQ3CXAa-*5VLcg|7<(QdEfVt@B>{DB0&`?_O}|~?1{2_I9^6=lm7;f zC4k_ls7w>4oEirdG5U#e5(p@}p8}i_^C{*{iz%C9u}wwZgZlZ zzLWR-F0s?~9M}0h;GOsy`#I1|_xB&mqP8#UWOH?{6r?6z<1O8mKp5-gQR6YV`9Vd{ zO`GmMCkwSwHasz&E+@KURaU!lpvFYO;V3blwC1ujEa)$1mqsq3?sS&@I=BxbcY-+s zamzs+9?e=;UGNFsfKGYkOg6>thEmYYC5t@V#(KT zc~oh9R6KK3NU1?yWUaGonZ+bp8UN7UJJYfvA{N6D#h-p=OERm$d}d0$g&cmCE2EX zfa)9f6TJ5WXErN-TwiwcQdny>zNf8Mf*hH$NjKpKq9P>@fezaBnh~ty$a!te zdml4mT!}IXa}Cgg+unS3L0o9PHvfqx!wE*1B7>pri zyC4CH9*?R~3D{DB`)_-IXkr8&Y)X9>)wh%{k94(qDgU|z2UwlJ;oMXD&9X_DOWg-AKm zrsf^yBzjJ#nJhi+4=GBmuCe zk*I!JS}yMd1IZvc8SN3GL^WR`!$TKr&JooPj0 z-LH@r+p>$WiTV>W;{aY+o<|(Q?azyqmgB&&<-P$KDTll)|*P=px|?#NO(J} zgyz6V7EsnMvDxkR687txGc)G-!!(@MB^{}lIp@C)8|O2Na6-Us!d30%U6oid^SYiZ ze^K`0AXUD(ZR)@GkuX>T9Wa%=3g%1SxYc7x7Xy*-bO9#xEL%1NFy=Z`ej^8ME)IGU z4}8`+#)uDyWIXmBn5zUtqTMl_3?$DkYzGrVLNFS^)nd5g5{9s_Fv|Ucx(fZ!1+X@m z9!ogtnwq)bTBpR-9y(|U>D%6rUEj-3QYesH|AFX?R?Y7^Ld%x2b&m_(EEWFh=XJ-* z5d>Okgh@-H^#C(ltXEPHt8^$HJ(X&i@jOjk>w0tKZuxno<$yjF*I#iHPIIJk&OI$ zXEh?X*H8TQwB2AowIu7OqxYqzoC~Tv`0PRfCVoagmm#leweNQ1oo`F;FNp3>fX>@@ zzc#>GNt;V@6|TWwMj!A`?@DBlDlAV>#eKt7Q5Fl>$HEPIvw?LLNPS-x147B1&?La6 zo;UyDAOb`EV})atD&7jz+p0M>@ku|KDJ60Ey*E|*!Z?H?4X5v00RD4R!Y_=kn^vGq zTN1ifMw!+mth|Na8^L>>p{Cqjy{Y`}sZilNip==B)aK8UWKH2ARAS!59ZZH)#IYi{qI;gHP4o^x53zd zTFE$v6Da4L(WWkaMxR*b$6#NDFgGA;ep(8{r-b8YRFrFRqJ%2=uxQieQQ-htmyY&U zsMONrv|5TO;s*666(UG=ggdV!xWv{eBEfuQW8Sp#IT3Fm#%&e=BC}MhWub?1Cbs2Db zAP3`=g8TUZi3RM|=PQMIf!NldKGP~xe!>-yj;=K{8YnX+P5-5wNl-iecGKa&a{I&h z=%06?9X-LwfRJ}8MM*NPL3;(Zgq&Cj5$}L?u5`Kn$Jy>~enVd%3wF-tf7Yc<6PpSG zD!I`sYj%Kd{lsZ+Oo;6XjhqT$_i&^u*7(D1pjuqXT$N~ea6-ZNLJade_W;LW*-%&d z5vTRD241=f{aDl!qa1q&kWyasyd-FRAVn;Nx~>JLPap6cbZ$cI_>B^c#tXnzXg&Qp zVRgzhHZ*WNlKfZjYkir5xzAGLQHb9WyQ_;`OU{caYry&xDcAyOrjqX)wZZycZ27^ke}yuF zT^}<2EHF)y3|!lH2j1e4Ac1H)%IiZ)b`LADxODsy>_Y3E*10HiTlV6V&P-DO`$m#f zG+lbFyX{&8edZ96${`CxruVKP-b{&{u7gF+UwRcfk;SG;IE36k^24x2(Nj^^oj@=+ zMQ_IZ0CMSATrRti^zhz!tp8Ntu}owO6ES8l`qfSAGkAL2@x)=5qXb&QF&ah)z3>U%4<`C*l6~eIt`Yd#AOT<}U?kx4#BL8Me$RQi<;D?BmuhecIcP?pD$_^o|BdN59eIK`W`1>gP z{=3@G(iQXpcMO~$p|~XZc7hkj_(k6o`@fLye4D^z$<3#2WzL)Fufd^VV>-4u(Ft@iN zwV#Mx0>YPFw9g5m=@)o>H*HQvj&a9y-VzrZ#K;K5$QLbhZT~V)7j<1_h+cN$M9YpQ z^ZJAsTDZ-S(6RP*`d8`#IiW8*e8Equ4-c>-WbM<)uE}a4=7u`gtEdDSaUh59KW&nK zzrHd2oZo;z{iOGXn+&)%y=M^8t;$O_rfQO4QrzoatMf|L4d{yCk1PCl=`S$&izu!f zN--tqezs-wy0z{&{PdauMG#mWd2$)aH3t*uinV2i0YeBFRQVr|-q%Oj0N*|O_w>9p zVzSyu9L5ksa2U+zM!_1vNVi>Nb!hO&R-{(a93GnVXI zLP)YbjFLUZzC-+s&A)tC}!%Y}OLUl7$sl1xU=zM|JgY@NUk z)N{s>O^x(f@B&h91?6ZAwEw5?!tnhjpXTe+kUulgVeKiB8UTq{n~CHy12F7Qr!toUHo-^6EV!~vp)pP z-sh^3AckA7=dJ=HX~qAZ%r-`7crxZ)Bwb0|leMEjv&Zl56G7SZwQ7QaBg2^+NbU?p zm4p8DmN*azc8O%!%-@c<2;K&sf~c>J4t8%p-=im-FXbZbZhm47LHwnSNJWZSTaH+! z3k#J?=esNsTbC?^#wCv8o+MmvS}F8hQ7j#IoE7KwfGA+0Y6l=rsW2fCt#L+Ns<`B- zqpu)2JXI+yd=0m)9;8s{ooW6i_Xp|!fAl9g;ya>loDA<^21OTo>d`B4y9jD<=nRn3 z7xM^F=gVWP!0){|Bx2Pl^`1Z84r3SDO+9UXr*^Jwh*s`M;#6L{Uzi**svsg?0KB}G zSv3g}KCl`;oc!Nxev6XU{sBb!O{AP-ulf`xd5DJ;WI2Zj>!x(N0rJC{p^4ZuR#$nn z%nQ?r2`FaAt=NPlhAC8v`%j`3NHQsbY3hb8rdZ@M-=YhB1E7$Tuu@Qc}C)T^z}^1`qD3+riX6hSuVYfo=Lqu@dd|1{Qs{@ zXb%!uU4~*bcy&T@wNhoovC3o0^z`B!A?9IhwVf%h-(Q|6%QjBKxvB{m)MjQGglshh2g@P9haSuIGjdk#l?Gd>&V0YmU$Ii8gc`6w! zs3(}rKxeP5TmE$0H7E=sO962grV9;9=f)SFZ=BG3@GO>K`JZ=kQPYR8JD9IHZ^6=m zrIxk{e`x&k5qeUyo7Nq%erF*gQ4%%P1;3K>MCX{|i&3SGE)fGunD);e*9V@y;0Sww zPJp3`7)7OEsTdRsv`a1INH%fVkRFd+u<;C~@>`P^`>fH`It|-BNw{+#6sVeRI2>FQi|uV>bET<57e^%Snjb$8s=)Gsub@o{*iPAuSb0aEG_>F z`nLYi*}qTqyIp})J7h%KqR>RTQ$ItEPmPblPd+PkheMaY$??N`ZSy@M5E1is2|;fUF`T%!71ETCPd)yoq8q0Rpjn0?sGnL(7eVR^}^mOm<9fff9A=g()w zt~lZrMd?ewyEI=ox!A(p=?y{CaUH6bfxb5KH&&1R+XepjdGyT0`oA+DO;Bdu-(ePv zHAu%lhV(N}jQ%}>B8Vm$^pDT$QBsZNKUUK!WZJ#n> z`K20iaVUTW@yUCw7)LQr4AI= zpV;uUra1ThB6f0tGTZphfEEM+AB69r3^U%(Kv%nqF`7lV>d8-KaPT8Ws;r?tm(4UZ zPKb+;#Nav&SkHHbd2ey}avE3K2-E;9aH3l9K%&T@oG}&JQg}*3CU!8O16HI#^ zqbP8ShYKr}awqTJ`;6J^qKMN3srIV^PlQWV)C~&`|Lfkq{{Q#U<-nRaV@GHAwwtE3 zasc&y;IW`e9N%EZF$+&vRWv!wr1;e6$MLW5^@%dzXW=Y+;hCqwD;UOxHqsMvo+SZ` zx8nOb-jO1@FFa2pmH*>l?3E0gN|pR>?)GD$^n8*avIVlcBhz33@~4N-w9cK*G(+wl z1qRViUb;MuIjgGTMA0{W6?!LPmjmfN>}kwnKHPsiSoz?GDtoqzz)y7gQd`*v?@7T{ z@_^_WKdH7QaVbtZAV{$@k_tyYKZ_k%*jgR%IwOiQ(Vk2v732S3KZ+qz>gy?zY;~kG z$X>Xm_Dht^zUGAz_6wC6#4tauS2hAcz*pxt;dKLG=fw2*fS`ZfUjW;ES=PrOB^CP# zV`m#p!TV6}Ss&q}9C3{27b_Nt^NG1^k6O3k&wM9i5pKdBfa>%VfFN1wy^_BO7wKIa zos?w@gR2ocH%Z+~gSVGMwu+%5pw%T$jtIH#e$spRNtYBVX|esaJcRFL6!H-#k%bKc z6$Rfi`u7c?j{`MMyJnkXo+dH9VQ?kh<}Jhtv^K+@Uc9vv&`qG&AFcCHyRV4+<_6?9 zJEgQzlfka5nYN6=e1=_S3AGyHs6W)lss2jQznZCIO9b+I&Q=E3lv>Es1FAK8qW5nf zCm=)rCO_@Zrxrg4bhMBC^6b}g>=9z1JDjJ zU{0Hz+JM%3P?6x|4YloToF?11{ZWr2Rr59sq8P)_#Ii8R1 z=}QM!T};op?lW{f1yoX4^Uow>3uxN2jDl9piE=TUX*eA+mM1AK^fTK zhU+M3dG*kr8FIY@3}A3~!1RRu`^2Z{Jbugm(ZaRhzomG51ra&s{h5%* zdQ)?1h0CrjV+jYJ**%G!DWC%49Lexh4z>T}zzG!nDhx!M1y8t1+7ZNqxUjYJSabi6 zLcIA{aDHHV68?P;I3(MSdnI2GV7;x$qjq+p>F>S~o!v#EG+t?!@gUcewMKM0# zKt?f~Q)o$j-6`}lj3I6nzYIMp+NG5A|K;#IG(-;Z5_yhr@w9K4VNg(R+^3drTGLl( zIKVJuY4Ks>XDe0|Pa4zl@*0mhHRn|@>HiIi6`Ki<*gtR-EEhkEmTX{OE%cH`g!ldeYH9-|tr_GwJvfUEWuJv6umeLOuaaR_`Pw~e{L?^IEz3EE7^2ZX2GRCk1( zSq~6dfKLP=@FKv}dmRMyp>iMpc8K}{Toi);0*(NCpvVPv_;ruTLoB!-9`xR+{vF0m z_8Xg5>R>2Mz`lK{rVu3-2oxZUx8m4R-^W!Z`i;t1#t@((Q~a-mf+nE6ed@4LeQlS7 zD|ra!53eFpl0-->q!2VhmAD3oB!E0Y0{`m~U`{~{>R&HP)P*-3Zj_jpJ2JM#os8T1 z6@2p9vuE3Y2*qE!EtLIcAoL{NtCo&B6UPn1#7r?1tV)kQ2PY?Si9W~$rs@o})cgYV zyBO{rei|L9(tM@Ovhkqy{-#|Ery~Y=6^uda-!JDPBpVtwv41!&0Dn2|=jT@q)C;Ro z%KI>ckQC?UoDiL1ufx-)PZ8V}V6st}S-VBFOa8}3BgR(K`#vX!0^Benh6W`uD2`hp5`e1@@! z2eNF0jKTAx;pi}+rLE1|?`wfs$=|rb0P&>VuF;=r-y#6yf;=k$ZzDO!uq>?;9|eT9CN{Xs_`@PVc{$f|4y_FY*tXT>Jj> z_AgtQYlI%+Q1GL?Nw2duJQLjM4Og7!i02CX`{q(|@0#nF-)}G!?OTPgU30{(Z;g4W z7`;0cYC58Lmkw*%PA1E@{pFU#ugYr8FuQ~zJLj?7x$RM};uF$I6MHdg5R?|# zoM4s~nff}pl)FKOX>obJ9+NizDh!NIPufh1#>(zFAOf47oU{W(Jnpf4 z`%@rM#w+XHccyh`04s5HWOv!we~6jg@Sn_?bDRF87Z^+yc)ncN;=ulpafpxQg}{q- zJZD%JOuJR{P3Ji`IaYAW-oRgV`0?nE2ZLZ9h5x^K^cc*eS|w|Ydxvl?8EEXqe*mvZ z=>C2nL;#XNV9{Is9jC0jRrSB(XYzSx)41aEBZiM<9iCM!mGZ|M%7rp>>N09am_tuF zvelkuRdhbJL0Xc{t6~}320Sgc~6})^xnIhX2#L@3^^3l?LdX>BQR+o%)*Hm zw_Y^@>JVbsL$pKH0OJZlKq><^qejGEfvi$M?`*9YvW*3xBWuqdjVCsNiR1iG>sY{2 zsb+V!2L;TbD?u=Y6?t3Fr@N1>&?03lQ11)&4L)%R+_orqbr_f6PaNq<;WUDih`0tX zm4Ms6o@Ixb-=_-XK(+{Xx z18gSZn`dP1Yw)Q0nSUpN!pI0Lk)9SZ$EoGe#n&&^Z7`Lbe9SixLSzc3f+rUaketC=1VB(AzZ`8wGE9DaW_J>pRY3-GKUxOGTs z#+@G0Z_Nrm3>}^NifGVU)%}q~D@e<0?z-TBR|9O`ptLqRN4&zt07foJwOX$`zts$v z{3M+%YN#ZIHZ3wivrFS5a&-p(3OV%e|0$KXeiQ5~in3oyztqg9S@J}+x{)n3QAQG; z{R5o^%dP!)Y@2pf_G#=tlAS*@;BhqcSJYhEcKka5z1we4PvGHdk63_Aw?Dz2GjEUY zRNt`WqqRKthW$0=1{ZRes;sYa5whm{%Rf+)*zTd?r;b{2_s)EWjU^z3LOKBBXl=)S zI}y13(-64jaU7oO+>ywk5*nd&fvTZ&zk#J}C>Ta1@Zm}1cQe=^mmAl?4&z3P?h%(0D-Sm>wE+UGTxivqlQEeX0p)G(~k@_`fl{x)1V~ zVvV486Ay1z`H{ZBdajH_kSkyXMh@hgE`X|AlSDBcZvn;|@MnK1W~dP)1;$}?`iC%pf|B7 z{C9!!5H}Et7ae=pO=DogQJpG6L^yz1S`S2ES>F{q#nl#Oz^i+-ZiMrdCyvDsK>1zl zTC|xk1aCy}vg!jn1+t}FW->voAX^4d$3z0oEOH{83|eOtW4rh|Y2corDTI#yK@!67 z(j1`(fe)SGs1aMD6h$~PD*n&&n27+q*972<2uB=2;boex4OUI0Ua1B zDiT`+lxRuf@alH5rja$*t`Z~uuZ93Fi56M9&{;uXM>4bZqX4lA!l_&VfH}L7^4nmK z=RX8sfv}k!ZHcn0yi_FLA^v#5_xiiszM_yl?ImW6joY1R~9LREzXpTwpJi#vi|{!Rvh{&bt6j1SQjl z;}%p9@zfcsaZi8tMX@7^ZyC=pf?%HZM7hd`q#w~G7RIgX;wTIUynNapb0Z+RRp3BT z&FkS{=&jRvS#-MxPRSm`^K7_;xeuJmyG?0LN7`BM2*P&MQOKBkLN_po@Nya)0M zpquaD{0g`MYs0zaAz;}W(SxZLU9bJUgp`s?EG#44X;Ak+AFgdIM+BfwH9+qg^Zk9y z*w~nS@@P9Mb{kCu6hcH0%4lhS1nlXCzr@P}>{0Q*Wd(HBh!K013Ky(McpzDBem4O_ zz}{J>)YS+mP^6WGaD4GA@Xn$+EepasH%C4dhq>~-Kju?b{C9UUEtm1f{o06J_m z@=;4W!L(bp#IZL-A^XhHQ??j8=iFoM^ATJm$r>Gd^YdUN8NEEEJ`H`Qc*qH+9uElP zL0GXltaQ6q0L1jXDABowZ6>15wbP|sDAO4T*wCU(QaPGr%}+-+rM~7!!k_y$8}Opw z_?jG4sb(-ibvsH;fRKdeN5R{-8GRZiAFicGRS?AjJzHvW1s5e?OhsYpO_eS%(jAD{AaN=Ez273P0|>EZqkqqW7+ zDFa+}janY+<{i7h2qLJEtU;q9AzNlf$X#ANz5O)iCrjB4hGO++MVknD*<rDubUbN&R6G+%TnAJhCg;blsd(<#GMwjd)hjA%W zFc6?_lJsLifdtmXa?HzaQK-N9FfxkhH2*5b6+fNt{-E4f4 za3@(7Z_#md;vy>|EC^!10pkcLd`$FP5i;Tn1hG$Ee!hx}i`eG!uQ;#yLHoJ>eDhlG zJFk<5?&aNM|EXN}Jb_D@vUc=lS+-#+t4sH7;O5x9Fs(hvUn2&7zQYm-MQ zcv(Z#X$((8G646F1Xh5<045pugRtol@Tl_PYTOfB+Xk><0f}rp|FeZ0O67x(NNu(iU636;TRR6*SWdb@7^&%@c^?7_=#HX zw-2bVQt%={)oaTNf=|9V(t6YSJ0!B>(3*y$D|MHW^gfU_% zR02?TWL^i%rQj{*y*%~^Y(_vUi$=)5w3O(v`+Ij-*w{3|Q9v1tVqj<@6{UG6p2wlO zufjNo>a62ZG)Ip+bcm*E|7s;cY;34YUnnd^v>{DK!zl>dWrHL7gulcF0kjEnvjl-H zE5fZo=HU3i#z_H~W7!6JXG_eH7ttPyqT`MM2>DC^G6CF+ev#Kvz!fv>ZoM70F$19p77TJkAdf;qM3B-2^e1!% z6;jFx;sGB;OZm7YSBKY7yT``-HDPYkcys2IsLK>VDdQWl4bat z=kI?O1oaZXuw7tDeueA3$>@*$-=aOK1LhD!gugeq6j z?PiUVqfh{5h?bdKS)R|e2bHdpJ;4WjWdE{b4>_?6kY;p|9Yn|-$LqN;=pzxJ;cEuh zkdKe7NqM|Z7+z?<;b`k`@ke*b&2V`*?PuM|5 zgs*Jp4w-C5dUg`k7EapJ;$%Zf=b$8Yh(&4CDp}!RZ%5>euaml$fxDFkcr1b4ahptk z&bY=sQ=S-c+zsScWm6T~p8nHW(ABbT{}Cqj(sEhRJp91hEBZICPq;RyET5pq-)*Ub z!s|whz}vtns^L#{@c3#R)vs^gI9_DR3v`Z<@cq*erywD3Yhp1*USXiuJV`2Z# zaX?tWTEn5Cr<(c5R95uCf|+2I9Fe79ueD`4=&~1y{G!e?&+1s;0k3l<6YYo0RY; zf2b`6)h*;5oT1rmsM1eE0v$h)oY|+&&e(OMU6!dwHxti$0(JrZd^B+C0+fOXMkl&Q zEj!aN2>gsuP3Q9lWj57Hec(CfRqq9#PjzJ^&5QurRYVF5=G0vdgTp#x@afL=zNnrPj0TUKL zw}QZgy=QkU;}%=wVEl_mVW*IIH0wlJCCwFO$gahYs3WCTc&F()Lt5jE+NsADEcq^9 zB|kUiSi-}uv^vvFq+aUT+rEVA2Vj!|vUT>(B#Euz`oJA`FvwCMEO}`x?Uhm9C^mT% zA^Rk314a9WN(u>Q1lk8to0oX~7~6T(btD)|JfL2%r3^eWvuDz} z{M!?XYDL8}&UE~Ekv-UlD&54dZ2lqbvDZlFY*Kc0$`J*tr14~vick>XUIxf?Zgo&E z1$}XlFa?ltYF&QS1<3UFs*0L|e5n(RgZ8~g2#8w?2w=x8*}!!6?D03Mb}3=CEEAYs zUsyA9!G7@~N>Y7N))@QdKId-)S&k6nN?@18rp4WCRr3+{L21%$=HhdWZ{uK3NmcFI z_ZH%gtC4-MR2l@WOhVo?;GDAcn|g+%52MdJ4+3i_;tmB!tfo<)UylI%n!mSmo*5{- z$Uxu#4h4DH^$sThBLgnq*>b}THhz%2&w1I& z?W#Yw;ZJL%qa}EbuJebb$boWXM6j16QOR_yxRR;5hAXw18k>t|%BOerVK7M_Lt4oI zesu`wU&1VyKn4CF)(3nsN>98!yzdd zNZ}Ce>FqYr`eZr0b9|=y?(%K8`VLj8j~wZC$bwr_<#UmvIK#&wSIT{^{0E(gfuWmf zk?~vF;c0o)@CjPVK(I0R&gJKpIuD5hvo+uc)9vi+0M~gsAJ@NiXnT3;()hc@*ULd8 z&QtRywf!dpnrTRFW)UlksR3%1JSm+a344$$sr$Y4^1KdgUdFw>X+OTZ-%ep@Rmbjl zY!dpg0bS4I#+pgsNYW0{*Fvq&W3kYQ9U~I<-418PrJ6Cd$yPy4%^a0pso@Dc*03Gy#{X2p;H_&tAl4>W3eoWUn)& z2R7sNL_WJJ9wO}kogEdFF`7)#HO8wh8~v7HB`3)?=2rT~!qyt%PX&OqIB)~uSu|CE z=6-20@HMZIB9n*{>HKv}{Kkcgghjsb4|Qse7blK^M8TDO|HjtGMV<^{Q_(_Dl*G!% zl3WaVi9TfdEN>2EzJ6In;LIfT76lV=$$`wF5=s2w@Gi_+D)TvbNQB((H;E-%Eax&Sf-2d_G~N%V2B=rXvfMjPahVOL_5Jauy~>zrVA%~Hq{q%Wg=Ml%10k`?(wgWqjqwk$gGFH5oE{gv#H zG_&V0U)maXB)w8Pq1JnFPH@K+BEh-kghNo_~z20~RZgxs4bv z!UKOc94y`gBtigAiz_bzf_>yt3YwdM4nT3B7{hYr@@_umJbIYxlKFz_FsPEMgh!v< z(rJ}K^HbYva2E0pSmBZ%oOEEq+kJ4YbMhfO3<+WEw6e)JDS%f_LusS|F91L+)ecx1 z8vAzP4!kU#Hp7W)d(6a}RdOU+P!<1sU@o~In;1xp6?xH{8~yfN008=tK^}qxa>H(* zHOTM7y=5)XKm+L(M$0WP_1fX?=m*w&bsKD;LbUwu0C0R-!Rhq~Y1;yLahd@74QNSE zT|Yj|%NgabWpx8-DSjzSk;(Zd$*sDc$DC__b|=dP6xphh^q{s|kle(KR?riMl#M9h z^p~LFtLW!pqrOzGnPFGF6_gB`$w72huI==c_dr25D&&AQv^p-tp+$fu=}?shp~#7OLgsEuNy8!Mwl`-nJin$=5bS#_5i`B9);ff#aCF zrqbul^ex5)a<5CD-;|%#=xI4a2Mrm~1$eM-vurSmEso#IfXN(ZPhL`PxSS@*n3_XT zImk(hpY#Ah+GZf_XfZv>`B-UJb!UKWrULh)ZUu@y(oJm)i*rxQEj1cakM)wrBY6+B ztVGz zyA=C}X2x=UwuKaV)xcm2&7=_FS{v49Zvvd%Ky8t5sj!6?(i)lQ_Fci;gdK~-nk=i1 z9-I=DvBwa9d)-{Hsi4jt(c_@YaBr6(WxV|OYQB6>Eg79L8XrQZ#nlTh>`!5hc~*LE zbswv%;8K=nHZ z4_nT!Jc{eeJlDC&&qEq?I7U#tRQ0js>-6kS?IRXLK1iaPj4HIMLRy?DAx3|s!BMwU z1yVy)leY!!>Xz#F?iSkCaY{;#pWt5u*p%P(drJv-k-`?46e0^~4NsCecCQ};&5nTK z)d6Iyy60<4RMxt*oI(x&vo9rj?c2+NJ6+6Q*ZXS(cV}zv7De7nO6^y^Z43)u+FY<1 z>05v1@s;%mvpC~JWIl0jO`cgc09*c%d*(k`=5DWpqnf3nTo_WDv87a!q!&8GGF7DU zTyU%qZNOea?PTX(Bj?YAC^%x3_BhdAkA{!=UKmQbGe9yVNjWmT50~a8T4f$J>!Ro_^49Ax9gc@9vKyh zcQJIR-PbO09?jgPsB{UnyNdBsIX)7WZ;7K&*KM~=iliFqtw9koxw%_G!F8-=#y`eC zm;1x03qfNWVGIKLj+;5Emx{ve%Qe#oC$p9>?$=$Mxajq50;&)3ifwfjxYKM1dC1<+XLn z4|~?kXM^UfeX2JP`@UO-2>IWsJG3qdHcjq$BF&O~|6KKI1N@4c7V1{`kEoRC++I~l z6Tt;}qH}dw-&hB5uXECMizqR*@>AZqCSC4-0Z-Ug?CIx5B{^)}FFx@Yw|D)~(~(q1 zg%c6&1)1Ag_7|GjF^3moYP{fIVOF+2HThMQc>!JC)N+B=fp2CkjVNJA>W)dbuflVE z-$iQ|k@cmzpx+TO*B<+*c3DATKbFfgxm-tJ8(Po&9f;1mbMJ%MQCj$eygUqoFtxO@ zlDyHug51E6HY{^`l%7eif$H$&{?KJY{sOWl!l9N5S{eiVBJ=lAuXe2=sDEK zCQic4rNpY%07jxBxPY^wgtQ#BrcI#Ap$AP-=w7W)%=nK~0{0en)T_Ay@`2!uQ5%vr zgZ7kIi@WO2ZEtMPfoMZMOzfdmU3F$Xa7^q|5rF2d7qq650e9nP4>=@JNb0hqvlFT7 zc<=avmQt-CloJ?z3|cY)!u4e-DX9#wdxM|+;@5sdJ>-nh*Uxyslj+1xIe0I6U8D(= zDf?QjZ&1TgaZkOPZZs+mEmHQt<&ll>^>f7UE>{V&%UIxxyC`bMK5|n>6&uf~dgf(Z z0ME;fql=%hv}NwI#*e_g8ci3=TJ~Fl{-ZL3Idu2_l}|Y*0^hFqJA|3jldl57IY)JC zr&K)M$twho!?wmU2G=3WH0s7^gsQod;ltJboY@XK9{!dpyZ7r z!n}>K(DjLS28n37$YELe{A^>KnW#N8;jAWg(o?c~=YQ*M<0ehvPx@7PecZ_h@DZx? zJ;m_hE7zb+o2DCF9+1f;LEy*(_AFQ~*Ff%gl>KH8CS_a(^992zM;z7fry=kMmK)-d zXLZ!eTFT0-E<9+a4D?f2`I`PQZikwcZRy&MaouNle^rOvsX#n1OrC4{*|6aDDvQq= zRq8JR*@{7*pH`j2mYVQEIl{bmm&|ruS3Yperlt`b9?S=Qfv=U7wdz^L zbC2Ne=#y)VRB*0eaG?Y|Y%Nkje8Q!f^#e44igTQ2(frkN1-vkkudIYo!(UsXhh-l6 zN+N=_32%&c{H>C?NRKt;Bp%i%a_fiU7mk(Ed*1W7cj~L8G74`EO5l*`^btH3O9%w| zUEdzVzPo@Z-kGg(L6u}#C+4|db9YY}>l?+ZXK^>56D$(8xo=m(6T*a1WmZ!XGW8f< zW=Gpt!oD$#riObWQAJ!0lkBVrjfdZN$YJ6nJtS zt|e}7D%I_T{JJnX(9!4WFyb1AMpty^wZB`p;_Szsei-XHf*i97xY0PeQDT{89?UWH@qltY1* zTijtDdVUpao&sCdGB|B$Mx{FPJYgs`f+`~~LNO;jAJh<)Dt#(K4dvx~fR}c^;iK@o zAGzx8P;EDE#2!1R(Vh~qeB6jp`_aO53yDH9Xp?BDXMo$<=U(H9dNnG(ePE?ZY~spR;OBYP~HDwtjp9~ zJAR+FrpRN;j$?2|ZvX(iHne#PC<^pEpWQnW6YPui+|Cm+mL*zSRq%2JJOxT!;0cqw ztlfX>B&jZwL0ytywc)HNW`O)X$?%mJGL%2<-Tz79u+CxU`wsJ5`O+* zJA59)kmP`Mg)GwRL$6Gw%2zmU{H-yRUosN%51&7j{2ZE%#dyQ$sUuib@)&R6apMo~ z+gk@O@8oWS)YvohClO*k^jZr{)5`#W7_?>v+(j$1(mlB^xsu?Ar0T4B2X z$m9h!uMNhqJR?mcovLLO8WppqH-+R~RJFM>7+mR9P^IbJPM{GCCmsHe$;0FPxX23b z?MX{MbyGZj^46J%1oH2&78^)9(f3!0LaCLFC^Pu^BB~_9kQ&KLL-lffw(_T%%cBti z!!nlCD&~7hD(B#|o;@X}5z@-XBc}zz*ND@w(0vQsBy{#$AZ>U1=c-YPj0XPrERY4v zTw~n{RGAn+cE?&Y4&yCwd|{(~*9~mvv|qSL9cjcmHD8`BkIa^rkeJ087Lz{?Q@@!; zsi{c!Q7=(UxB5e_{BTUYhn{?XS|~;3y+?NJs_nCdZ(kIMAlAwqo3Vsx zg}7uSF3EKcT%^g`N>^Ayl@@E?x4k!^zbM5Zj5WA}Gxvlp@AF&JDGeO`9!@%wt1rax zWBqbQy|!t2)Tl47X5 zWU&v8N> zR`wCOKm8|t;a+WN&|yMmRP%!jK5S_^iHjr)%0DMA#)2YUO`4j3oBRzp&t=ZZC<#5x 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 Dpb5ZH literal 57701 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 ;)bZCB51?>r5Sv-cj?8{xPF(u1hG)GKl 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 IbnS2d6V2DFng9R* diff --git a/baselines/fedrep/_static/cifar10_100_5.png b/baselines/fedrep/_static/cifar10_100_5.png index 1d20a953f9c4b49baf7d5ca6d2790554d1cf7ab4..54a9143d8fd9e728d59894b0c39e9aedd71109fd 100644 GIT binary patch literal 54133 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 literal 58541 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 DxUX-f diff --git a/baselines/fedrep/conf/cifar100_20.toml b/baselines/fedrep/conf/cifar100_20.toml new file mode 100644 index 000000000000..2b6bb5f5e1eb --- /dev/null +++ b/baselines/fedrep/conf/cifar100_20.toml @@ -0,0 +1,11 @@ +algorithm = "fedrep" + +# model specs +model-name = "cnncifar100" + +# dataset specs +dataset-name = "cifar100" +dataset-split = "sample" +dataset-split-num-classes = 20 +dataset-split-seed = 42 +dataset-split-fraction = 0.83 diff --git a/baselines/fedrep/conf/cifar100_5.toml b/baselines/fedrep/conf/cifar100_5.toml new file mode 100644 index 000000000000..9903ea374028 --- /dev/null +++ b/baselines/fedrep/conf/cifar100_5.toml @@ -0,0 +1,11 @@ +algorithm = "fedrep" + +# model specs +model-name = "cnncifar100" + +# dataset specs +dataset-name = "cifar100" +dataset-split = "sample" +dataset-split-num-classes = 5 +dataset-split-seed = 42 +dataset-split-fraction = 0.83 diff --git a/baselines/fedrep/conf/cifar10_2.toml b/baselines/fedrep/conf/cifar10_2.toml new file mode 100644 index 000000000000..307ba7101bd1 --- /dev/null +++ b/baselines/fedrep/conf/cifar10_2.toml @@ -0,0 +1,8 @@ +algorithm = "fedrep" + +# dataset specs +dataset-name = "cifar10" +dataset-split = "sample" +dataset-split-num-classes = 2 +dataset-split-seed = 42 +dataset-split-fraction = 0.83 diff --git a/baselines/fedrep/conf/cifar10_5.toml b/baselines/fedrep/conf/cifar10_5.toml new file mode 100644 index 000000000000..cd09c9e07ec2 --- /dev/null +++ b/baselines/fedrep/conf/cifar10_5.toml @@ -0,0 +1,8 @@ +algorithm = "fedrep" + +# dataset specs +dataset-name = "cifar10" +dataset-split = "sample" +dataset-split-num-classes = 5 +dataset-split-seed = 42 +dataset-split-fraction = 0.83 diff --git a/baselines/fedrep/docs/make_plots.py b/baselines/fedrep/docs/make_plots.py new file mode 100644 index 000000000000..9474e87a2471 --- /dev/null +++ b/baselines/fedrep/docs/make_plots.py @@ -0,0 +1,50 @@ +"""Generate plots from json files.""" + +import json +import os +from typing import List, Tuple + +import matplotlib.pyplot as plt + +# Get the current working directory +DIR = os.path.dirname(os.path.abspath(__file__)) + + +def read_from_results(path: str) -> Tuple[str, str, List[float], str, str]: + """Load the json file with recorded configurations and results.""" + with open(path, "r", encoding="UTF-8") as fin: + data = json.load(fin) + algorithm = data["run_config"]["algorithm"] + model = data["run_config"]["model-name"] + accuracies = [res["accuracy"] * 100 for res in data["round_res"]] + dataset = data["run_config"]["dataset-name"] + num_classes = data["run_config"]["dataset-split-num-classes"] + + return algorithm, model, accuracies, dataset, num_classes + + +def make_plot(dir_path: str, plt_title: str) -> None: + """Given a directory with json files, generated a plot using the provided title.""" + plt.figure() + with os.scandir(dir_path) as files: + for file in files: + file_name = os.path.join(dir_path, file.name) + print(file_name, flush=True) + algo, m, acc, d, n = read_from_results(file_name) + rounds = [i + 1 for i in range(len(acc))] + print(f"Max accuracy ({algo}): {max(acc):.2f}") + plt.plot(rounds, acc, label=f"{algo}-{d}-{n}classes") + plt.xlabel("Rounds") + plt.ylabel("Accuracy") + plt.title(plt_title) + plt.grid() + plt.legend() + plt.savefig(os.path.join(DIR, f"{plt_title}-{algo}")) + + +if __name__ == "__main__": + # Plot results generated by the baseline. + # Combine them into a full file path. + res_dir = os.path.join(DIR, "../results/") + title = "Federated Accuracy over Rounds" + make_plot(res_dir, plt_title=title) diff --git a/baselines/fedrep/fedrep/__init__.py b/baselines/fedrep/fedrep/__init__.py index a5e567b59135..f2dbc04ee34e 100644 --- a/baselines/fedrep/fedrep/__init__.py +++ b/baselines/fedrep/fedrep/__init__.py @@ -1 +1 @@ -"""Template baseline package.""" +"""fedrep: A Flower Baseline.""" diff --git a/baselines/fedrep/fedrep/base_model.py b/baselines/fedrep/fedrep/base_model.py index e6a74c01bf9b..82a18cec2622 100644 --- a/baselines/fedrep/fedrep/base_model.py +++ b/baselines/fedrep/fedrep/base_model.py @@ -1,61 +1,23 @@ -"""Abstract class for splitting a model into body and head.""" +"""fedrep: A Flower Baseline.""" -import os +import collections from abc import ABC, abstractmethod -from typing import Any, Dict, List, Optional, OrderedDict, Tuple, Union +from typing import Any, Dict, List, OrderedDict, Tuple, Union -import numpy as np import torch -import torch.nn as nn -from omegaconf import DictConfig -from torch import Tensor +from torch import Tensor, nn from torch.utils.data import DataLoader -from fedrep.constants import ( +from flwr.common import Context, NDArrays, ParametersRecord, array_from_numpy + +from .constants import ( DEFAULT_FINETUNE_EPOCHS, DEFAULT_LOCAL_TRAIN_EPOCHS, DEFAULT_REPRESENTATION_EPOCHS, + FEDREP_HEAD_STATE, ) -def get_device( - use_cuda: bool = True, specified_device: Optional[int] = None -) -> torch.device: - """Get the tensor device. - - Args: - use_cuda: Flag indicates whether to use CUDA or not. Defaults to True. - specified_device: Specified cuda device to use. Defaults to None. - - Raises - ------ - ValueError: Specified device not in CUDA_VISIBLE_DEVICES. - - Returns - ------- - The selected or fallbacked device. - """ - device = torch.device("cpu") - if use_cuda and torch.cuda.is_available(): - if specified_device is not None: - cuda_visible_devices = os.environ.get("CUDA_VISIBLE_DEVICES") - if cuda_visible_devices is not None: - devices = [int(d) for d in cuda_visible_devices.split(",")] - if specified_device in devices: - device = torch.device(f"cuda:{specified_device}") - else: - raise ValueError( - f"Specified device {specified_device}" - " not in CUDA_VISIBLE_DEVICES" - ) - else: - print("CUDA_VISIBLE_DEVICES not exists, using torch.device('cuda').") - else: - device = torch.device("cuda") - - return device - - class ModelSplit(ABC, nn.Module): """Abstract class for splitting a model into body and head.""" @@ -110,7 +72,7 @@ def head(self, state_dict: OrderedDict[str, Tensor]) -> None: """ self._head.load_state_dict(state_dict, strict=True) - def get_parameters(self) -> List[np.ndarray]: + def get_parameters(self) -> NDArrays: """Get model parameters. Returns @@ -164,65 +126,86 @@ class ModelManager(ABC): def __init__( self, - client_id: int, - config: DictConfig, + context: Context, trainloader: DataLoader, testloader: DataLoader, - client_save_path: Optional[str], model_split_class: Any, # ModelSplit ): """Initialize the attributes of the model manager. Args: - client_id: The id of the client. - config: Dict containing the configurations to be used by the manager. + context: The context of the current run. trainloader: Client train dataloader. testloader: Client test dataloader. - client_save_path: Path to save the client model head state. model_split_class: Class to be used to split the model into body and head \ (concrete implementation of ModelSplit). """ super().__init__() - self.config = config - self.client_id = client_id + self.context = context self.trainloader = trainloader self.testloader = testloader - self.device = get_device( - use_cuda=getattr(self.config, "use_cuda", True), - specified_device=getattr(self.config, "specified_device", None), - ) - self.client_save_path = client_save_path - self.learning_rate = config.get("learning_rate", 0.01) - self.momentum = config.get("momentum", 0.5) + self.learning_rate = self.context.run_config.get("learning-rate", 0.01) + self.momentum = self.context.run_config.get("momentum", 0.5) self._model: ModelSplit = model_split_class(self._create_model()) @abstractmethod def _create_model(self) -> nn.Module: - """Return model to be splitted into head and body.""" + """Return model to be split into head and body.""" @property def model(self) -> ModelSplit: """Return model.""" return self._model - def train(self) -> Dict[str, Union[List[Dict[str, float]], int, float]]: + def _load_client_state(self) -> None: + """Load client model head state from context state; used only by FedRep.""" + # First, check if the fedrep head state is set in the context state. + if self.context.state.parameters_records.get(FEDREP_HEAD_STATE): + state_dict = collections.OrderedDict( + { + k: torch.from_numpy(v.numpy()) + for k, v in self.context.state.parameters_records[ + FEDREP_HEAD_STATE + ].items() + } + ) + # Second, check if the parameters records have values stored and load + # the state; this check is useful for the first time the model is + # tested and the head state might be empty. + if state_dict: + self._model.head.load_state_dict(state_dict) + + def _save_client_state(self) -> None: + """Save client model head state inside context state; used only by FedRep.""" + # Check if the fedrep head state is set in the context state. + if FEDREP_HEAD_STATE in self.context.state.parameters_records: + head_state = self._model.head.state_dict() + head_state_np = {k: v.detach().cpu().numpy() for k, v in head_state.items()} + head_state_arr = collections.OrderedDict( + {k: array_from_numpy(v) for k, v in head_state_np.items()} + ) + head_state_prec = ParametersRecord(head_state_arr) + self.context.state.parameters_records[FEDREP_HEAD_STATE] = head_state_prec + + def train( + self, device: torch.device + ) -> Dict[str, Union[List[Dict[str, float]], int, float]]: """Train the model maintained in self.model. Returns ------- Dict containing the train metrics. """ - # Load client state (head) if client_save_path is not None and it is not empty - if self.client_save_path is not None and os.path.isfile(self.client_save_path): - self._model.head.load_state_dict(torch.load(self.client_save_path)) + # Load state. + self._load_client_state() num_local_epochs = DEFAULT_LOCAL_TRAIN_EPOCHS - if hasattr(self.config, "num_local_epochs"): - num_local_epochs = int(self.config.num_local_epochs) + if "num-local-epochs" in self.context.run_config: + num_local_epochs = int(self.context.run_config["num-local-epochs"]) num_rep_epochs = DEFAULT_REPRESENTATION_EPOCHS - if hasattr(self.config, "num_rep_epochs"): - num_rep_epochs = int(self.config.num_rep_epochs) + if self.context.run_config["num-rep-epochs"] in self.context.run_config: + num_rep_epochs = int(self.context.run_config["num-rep-epochs"]) criterion = torch.nn.CrossEntropyLoss() weights = [v for k, v in self._model.named_parameters() if "weight" in k] @@ -238,6 +221,7 @@ def train(self) -> Dict[str, Union[List[Dict[str, float]], int, float]]: correct, total = 0, 0 loss: torch.Tensor = 0.0 + self._model.to(device) self._model.train() for i in range(num_local_epochs + num_rep_epochs): if i < num_local_epochs: @@ -247,10 +231,9 @@ def train(self) -> Dict[str, Union[List[Dict[str, float]], int, float]]: self._model.enable_body() self._model.disable_head() for batch in self.trainloader: - images = batch["img"] - labels = batch["label"] - outputs = self._model(images.to(self.device)) - labels = labels.to(self.device) + images = batch["img"].to(device) + labels = batch["label"].to(device) + outputs = self._model(images) loss = criterion(outputs, labels) optimizer.zero_grad() loss.backward() @@ -258,35 +241,35 @@ def train(self) -> Dict[str, Union[List[Dict[str, float]], int, float]]: total += labels.size(0) correct += (torch.max(outputs.data, 1)[1] == labels).sum().item() - # Save client state (head) - if self.client_save_path is not None: - torch.save(self._model.head.state_dict(), self.client_save_path) + # Save state. + self._save_client_state() return {"loss": loss.item(), "accuracy": correct / total} - def test(self) -> Dict[str, float]: + def test(self, device: torch.device) -> Dict[str, float]: """Test the model maintained in self.model. Returns ------- Dict containing the test metrics. """ - # Load client state (head) - if self.client_save_path is not None and os.path.isfile(self.client_save_path): - self._model.head.load_state_dict(torch.load(self.client_save_path)) + # Load state. + self._load_client_state() num_finetune_epochs = DEFAULT_FINETUNE_EPOCHS - if hasattr(self.config, "num_finetune_epochs"): - num_finetune_epochs = int(self.config.num_finetune_epochs) + if "num-finetune-epochs" in self.context.run_config: + num_finetune_epochs = int(self.context.run_config["num-finetune-epochs"]) - if num_finetune_epochs > 0 and self.config.get("enable_finetune", False): + if num_finetune_epochs > 0 and self.context.run_config.get( + "enable-finetune", False + ): optimizer = torch.optim.SGD(self._model.parameters(), lr=self.learning_rate) criterion = torch.nn.CrossEntropyLoss() self._model.train() for _ in range(num_finetune_epochs): for batch in self.trainloader: - images = batch["img"].to(self.device) - labels = batch["label"].to(self.device) + images = batch["img"] + labels = batch["label"] outputs = self._model(images) loss = criterion(outputs, labels) optimizer.zero_grad() @@ -296,11 +279,12 @@ def test(self) -> Dict[str, float]: criterion = torch.nn.CrossEntropyLoss() correct, total, loss = 0, 0, 0.0 + self._model.to(device) self._model.eval() with torch.no_grad(): for batch in self.testloader: - images = batch["img"].to(self.device) - labels = batch["label"].to(self.device) + images = batch["img"].to(device) + labels = batch["label"].to(device) outputs = self._model(images) loss += criterion(outputs, labels).item() total += labels.size(0) diff --git a/baselines/fedrep/fedrep/client.py b/baselines/fedrep/fedrep/client.py deleted file mode 100644 index f857fd2cf82a..000000000000 --- a/baselines/fedrep/fedrep/client.py +++ /dev/null @@ -1,319 +0,0 @@ -"""Client implementation - can call FedPep and FedAvg clients.""" - -from collections import OrderedDict -from pathlib import Path -from typing import Callable, Dict, List, Tuple, Type, Union - -import numpy as np -import torch -from flwr.client import Client, NumPyClient -from flwr.common import NDArrays, Scalar -from flwr_datasets import FederatedDataset -from flwr_datasets.partitioner import PathologicalPartitioner -from flwr_datasets.preprocessor import Merger -from omegaconf import DictConfig -from torch.utils.data import DataLoader -from torchvision import transforms - -from fedrep.constants import MEAN, STD, Algorithm -from fedrep.models import CNNCifar10ModelManager, CNNCifar100ModelManager - -PROJECT_DIR = Path(__file__).parent.parent.absolute() - -FEDERATED_DATASET = None - - -class BaseClient(NumPyClient): - """Implementation of Federated Averaging (FedAvg) Client.""" - - # pylint: disable=R0913 - def __init__( - self, - client_id: int, - trainloader: DataLoader, - testloader: DataLoader, - config: DictConfig, - model_manager_class: Union[ - Type[CNNCifar10ModelManager], Type[CNNCifar100ModelManager] - ], - client_state_save_path: str = "", - ): - """Initialize client attributes. - - Args: - client_id: The client ID. - trainloader: Client train data loader. - testloader: Client test data loader. - config: dictionary containing the client configurations. - model_manager_class: class to be used as the model manager. - client_state_save_path: Path for saving model head parameters. - (Just for FedRep). Defaults to "". - """ - super().__init__() - - self.client_id = client_id - self.client_state_save_path = ( - (client_state_save_path + f"/client_{self.client_id}") - if client_state_save_path != "" - else None - ) - self.model_manager = model_manager_class( - client_id=self.client_id, - config=config, - trainloader=trainloader, - testloader=testloader, - client_save_path=self.client_state_save_path, - ) - - def get_parameters(self, config: Dict[str, Scalar]) -> NDArrays: - """Return the current local model parameters.""" - return self.model_manager.model.get_parameters() - - def set_parameters( - self, parameters: List[np.ndarray], evaluate: bool = False - ) -> None: - """Set the local model parameters to the received parameters. - - Args: - parameters: parameters to set the model to. - """ - _ = evaluate - model_keys = [ - k - for k in self.model_manager.model.state_dict().keys() - if k.startswith("_body") or k.startswith("_head") - ] - params_dict = zip(model_keys, parameters) - - state_dict = OrderedDict({k: torch.tensor(v) for k, v in params_dict}) - - self.model_manager.model.set_parameters(state_dict) - - def perform_train(self) -> Dict[str, Union[List[Dict[str, float]], int, float]]: - """Perform local training to the whole model. - - Returns - ------- - Dict with the train metrics. - """ - self.model_manager.model.enable_body() - self.model_manager.model.enable_head() - - return self.model_manager.train() - - def fit( - self, parameters: NDArrays, config: Dict[str, Scalar] - ) -> Tuple[NDArrays, int, Dict[str, Union[bool, bytes, float, int, str]]]: - """Train the provided parameters using the locally held dataset. - - Args: - parameters: The current (global) model parameters. - config: configuration parameters for training sent by the server. - - Returns - ------- - Tuple containing the locally updated model parameters, \ - the number of examples used for training and \ - the training metrics. - """ - self.set_parameters(parameters) - - train_results = self.perform_train() - - # Update train history - print("<------- TRAIN RESULTS -------> :", train_results) - - return self.get_parameters(config), self.model_manager.train_dataset_size(), {} - - def evaluate( - self, parameters: NDArrays, config: Dict[str, Scalar] - ) -> Tuple[float, int, Dict[str, Union[bool, bytes, float, int, str]]]: - """Evaluate the provided global parameters using the locally held dataset. - - Args: - parameters: The current (global) model parameters. - config: configuration parameters for training sent by the server. - - Returns - ------- - Tuple containing the test loss, \ - the number of examples used for evaluation and \ - the evaluation metrics. - """ - self.set_parameters(parameters, evaluate=True) - - # Test the model - test_results = self.model_manager.test() - print("<------- TEST RESULTS -------> :", test_results) - - return ( - test_results.get("loss", 0.0), - self.model_manager.test_dataset_size(), - {k: v for k, v in test_results.items() if not isinstance(v, (dict, list))}, - ) - - -class FedRepClient(BaseClient): - """Implementation of Federated Personalization (FedRep) Client.""" - - def get_parameters(self, config: Dict[str, Scalar]) -> NDArrays: - """Return the current local body parameters.""" - return [ - val.cpu().numpy() - for val in self.model_manager.model.body.state_dict().values() - ] - - def set_parameters(self, parameters: List[np.ndarray], evaluate=False) -> None: - """Set the local body parameters to the received parameters. - - Args: - parameters: parameters to set the body to. - evaluate: whether the client is evaluating or not. - """ - model_keys = [ - k - for k in self.model_manager.model.state_dict().keys() - if k.startswith("_body") - ] - - if not evaluate: - # Only update client's local head if it hasn't trained yet - model_keys.extend( - [ - k - for k in self.model_manager.model.state_dict().keys() - if k.startswith("_head") - ] - ) - - state_dict = OrderedDict( - (k, torch.from_numpy(v)) for k, v in zip(model_keys, parameters) - ) - - self.model_manager.model.set_parameters(state_dict) - - -# pylint: disable=E1101, W0603 -def get_client_fn_simulation( - config: DictConfig, client_state_save_path: str = "" -) -> Callable[[str], Client]: - """Generate the client function that creates the Flower Clients. - - Parameters - ---------- - model : DictConfig - The model configuration. - cleint_state_save_path : str - The path to save the client state. - - Returns - ------- - Tuple[Callable[[str], FlowerClient], DataLoader] - A tuple containing the client function that creates Flower Clients and - the DataLoader that will be used for testing - """ - assert config.model_name.lower() in [ - "cnncifar10", - "cnncifar100", - ], f"Model {config.model_name} not implemented" - - # - you can define your own data transformation strategy here - - # These transformations are from the official repo - train_data_transform = transforms.Compose( - [ - transforms.RandomCrop(32, padding=4), - transforms.RandomHorizontalFlip(), - transforms.ToTensor(), - transforms.Normalize(MEAN[config.dataset.name], STD[config.dataset.name]), - ] - ) - test_data_transform = transforms.Compose( - [ - transforms.ToTensor(), - transforms.Normalize(MEAN[config.dataset.name], STD[config.dataset.name]), - ] - ) - - use_fine_label = False - if config.dataset.name.lower() == "cifar100": - use_fine_label = True - - partitioner = PathologicalPartitioner( - num_partitions=config.num_clients, - partition_by="fine_label" if use_fine_label else "label", - num_classes_per_partition=config.dataset.num_classes, - class_assignment_mode="random", - shuffle=True, - seed=config.dataset.seed, - ) - - global FEDERATED_DATASET - if FEDERATED_DATASET is None: - FEDERATED_DATASET = FederatedDataset( - dataset=config.dataset.name.lower(), - partitioners={"all": partitioner}, - preprocessor=Merger({"all": ("train", "test")}), - ) - - def apply_train_transforms(batch): - """Apply transforms for train data to the partition from FederatedDataset.""" - batch["img"] = [train_data_transform(img) for img in batch["img"]] - if use_fine_label: - batch["label"] = batch["fine_label"] - return batch - - def apply_test_transforms(batch): - """Apply transforms for test data to the partition from FederatedDataset.""" - batch["img"] = [test_data_transform(img) for img in batch["img"]] - if use_fine_label: - batch["label"] = batch["fine_label"] - return batch - - # pylint: disable=E1101 - def client_fn(cid: str) -> Client: - """Create a Flower client representing a single organization.""" - cid_use = int(cid) - - partition = FEDERATED_DATASET.load_partition(cid_use, split="all") - - partition_train_test = partition.train_test_split( - train_size=config.dataset.fraction, shuffle=True, seed=config.dataset.seed - ) - - trainset = partition_train_test["train"].with_transform(apply_train_transforms) - testset = partition_train_test["test"].with_transform(apply_test_transforms) - - trainloader = DataLoader(trainset, config.batch_size, shuffle=True) - testloader = DataLoader(testset, config.batch_size) - - model_manager_class: Union[ - Type[CNNCifar10ModelManager], Type[CNNCifar100ModelManager] - ] - if config.model_name.lower() == "cnncifar10": - model_manager_class = CNNCifar10ModelManager - elif config.model_name.lower() == "cnncifar100": - model_manager_class = CNNCifar100ModelManager - else: - raise NotImplementedError( - f"Model {config.model_name} not implemented, check name." - ) - - if config.algorithm.lower() == Algorithm.FEDREP.value: - return FedRepClient( # type: ignore[attr-defined] - client_id=cid_use, - trainloader=trainloader, - testloader=testloader, - config=config, - model_manager_class=model_manager_class, - client_state_save_path=client_state_save_path, - ).to_client() - return BaseClient( # type: ignore[attr-defined] - client_id=cid_use, - trainloader=trainloader, - testloader=testloader, - config=config, - model_manager_class=model_manager_class, - client_state_save_path=client_state_save_path, - ).to_client() - - return client_fn diff --git a/baselines/fedrep/fedrep/client_app.py b/baselines/fedrep/fedrep/client_app.py new file mode 100644 index 000000000000..78755f4484aa --- /dev/null +++ b/baselines/fedrep/fedrep/client_app.py @@ -0,0 +1,186 @@ +"""fedrep: A Flower Baseline.""" + +from collections import OrderedDict +from typing import Dict, List, Tuple, Union + +import torch + +from flwr.client import ClientApp, NumPyClient +from flwr.client.client import Client +from flwr.common import Context, NDArrays, ParametersRecord, Scalar + +from .constants import FEDREP_HEAD_STATE, Algorithm +from .dataset import load_data +from .models import CNNCifar10ModelManager, CNNCifar100ModelManager +from .utils import get_model_manager_class + + +class BaseClient(NumPyClient): + """Implementation of Federated Averaging (FedAvg) Client.""" + + # pylint: disable=R0913 + def __init__( + self, model_manager: Union[CNNCifar10ModelManager, CNNCifar100ModelManager] + ): + """Initialize client attributes. + + Args: + model_manager: the model manager object + """ + super().__init__() + self.model_manager = model_manager + + self.device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") + + def get_parameters(self, config: Dict[str, Scalar]) -> NDArrays: + """Return the current local model parameters.""" + return self.model_manager.model.get_parameters() + + def set_parameters(self, parameters: NDArrays, evaluate: bool = False) -> None: + """Set the local model parameters to the received parameters. + + Args: + parameters: parameters to set the model to. + evaluate: whether to evaluate or not. + """ + _ = evaluate + model_keys = [ + k + for k in self.model_manager.model.state_dict().keys() + if k.startswith("_body") or k.startswith("_head") + ] + params_dict = zip(model_keys, parameters) + state_dict = OrderedDict({k: torch.tensor(v) for k, v in params_dict}) + self.model_manager.model.set_parameters(state_dict) + + def perform_train(self) -> Dict[str, Union[List[Dict[str, float]], int, float]]: + """Perform local training to the whole model. + + Returns + ------- + Dict with the train metrics. + """ + self.model_manager.model.enable_body() + self.model_manager.model.enable_head() + + return self.model_manager.train(self.device) + + def fit( + self, parameters: NDArrays, config: Dict[str, Scalar] + ) -> Tuple[NDArrays, int, Dict[str, Union[bool, bytes, float, int, str]]]: + """Train the provided parameters using the locally held dataset. + + Args: + parameters: The current (global) model parameters. + config: configuration parameters for training sent by the server. + + Returns + ------- + Tuple containing the locally updated model parameters, \ + the number of examples used for training and \ + the training metrics. + """ + self.set_parameters(parameters) + self.perform_train() + + return self.get_parameters(config), self.model_manager.train_dataset_size(), {} + + def evaluate( + self, parameters: NDArrays, config: Dict[str, Scalar] + ) -> Tuple[float, int, Dict[str, Union[bool, bytes, float, int, str]]]: + """Evaluate the provided global parameters using the locally held dataset. + + Args: + parameters: The current (global) model parameters. + config: configuration parameters for training sent by the server. + + Returns + ------- + Tuple containing the test loss, \ + the number of examples used for evaluation and \ + the evaluation metrics. + """ + self.set_parameters(parameters, evaluate=True) + + # Test the model + test_results = self.model_manager.test(self.device) + + return ( + test_results.get("loss", 0.0), + self.model_manager.test_dataset_size(), + {k: v for k, v in test_results.items() if not isinstance(v, (dict, list))}, + ) + + +class FedRepClient(BaseClient): + """Implementation of Federated Personalization (FedRep) Client.""" + + def get_parameters(self, config: Dict[str, Scalar]) -> NDArrays: + """Return the current local body parameters.""" + return [ + val.cpu().numpy() + for val in self.model_manager.model.body.state_dict().values() + ] + + def set_parameters(self, parameters: NDArrays, evaluate: bool = False) -> None: + """Set the local body parameters to the received parameters. + + Args: + parameters: parameters to set the body to. + evaluate: whether the client is evaluating or not. + """ + model_keys = [ + k + for k in self.model_manager.model.state_dict().keys() + if k.startswith("_body") + ] + + if not evaluate: + # Only update client's local head if it hasn't trained yet + model_keys.extend( + [ + k + for k in self.model_manager.model.state_dict().keys() + if k.startswith("_head") + ] + ) + + state_dict = OrderedDict( + (k, torch.from_numpy(v)) for k, v in zip(model_keys, parameters) + ) + + self.model_manager.model.set_parameters(state_dict) + + +def client_fn(context: Context) -> Client: + """Construct a Client that will be run in a ClientApp.""" + model_manager_class = get_model_manager_class(context) + algorithm = str(context.run_config["algorithm"]).lower() + partition_id = int(context.node_config["partition-id"]) + num_partitions = int(context.node_config["num-partitions"]) + trainloader, valloader = load_data( + partition_id, num_partitions, context + ) # load the data + if algorithm == Algorithm.FEDAVG.value: + client_class = BaseClient + elif algorithm == Algorithm.FEDREP.value: + # This state variable will only be used by the FedRep algorithm. + # We only need to initialize once, since client_fn will be called + # again at every invocation of the ClientApp. + if FEDREP_HEAD_STATE not in context.state.parameters_records: + context.state.parameters_records[FEDREP_HEAD_STATE] = ParametersRecord() + client_class = FedRepClient + else: + raise RuntimeError(f"Unknown algorithm {algorithm}.") + + model_manager_obj = model_manager_class( + context=context, trainloader=trainloader, testloader=valloader + ) + + # Return client object. + client = client_class(model_manager_obj).to_client() + return client + + +# Flower ClientApp +app = ClientApp(client_fn) diff --git a/baselines/fedrep/fedrep/conf/base.yaml b/baselines/fedrep/fedrep/conf/base.yaml deleted file mode 100644 index 0d74c4fe78b6..000000000000 --- a/baselines/fedrep/fedrep/conf/base.yaml +++ /dev/null @@ -1,46 +0,0 @@ ---- -num_clients: 100 # total number of clients -num_local_epochs: 5 # number of local epochs -num_rep_epochs: 1 # number of representation epochs (only for FedRep) -enable_finetune: false -# num_finetune_epochs: 10 -batch_size: 50 -num_rounds: 100 -learning_rate: 0.01 -momentum: 0.5 -algorithm: fedrep -model_name: cnncifar10 - -client_resources: - num_cpus: 2 - num_gpus: 0.5 - -use_cuda: true -specified_device: null # the ID of cuda device, if null, then use defaults torch.device("cuda") - -dataset: - name: cifar10 - split: sample - num_classes: 2 - seed: 42 - num_clients: ${num_clients} - fraction: 0.83 - -model: - _target_: fedrep.implemented_models.cnn_cifar100.CNNCifar10 - -fit_config: - drop_client: false - epochs: ${num_local_epochs} - batch_size: ${batch_size} - -strategy: - _target_: fedrep.strategy.FedRep - fraction_fit: 0.1 - fraction_evaluate: 0.1 - min_fit_clients: 2 - min_evaluate_clients: 2 - min_available_clients: 2 - evaluate_fn: null - on_fit_config_fn: null - on_evaluate_config_fn: null diff --git a/baselines/fedrep/fedrep/conf/cifar100_100_20.yaml b/baselines/fedrep/fedrep/conf/cifar100_100_20.yaml deleted file mode 100644 index 30f9fd209d58..000000000000 --- a/baselines/fedrep/fedrep/conf/cifar100_100_20.yaml +++ /dev/null @@ -1,44 +0,0 @@ ---- -num_clients: 100 # total number of clients -num_local_epochs: 5 # number of local epochs -num_rep_epochs: 1 # number of representation epochs (only for FedRep) -enable_finetune: false -# num_finetune_epochs: 10 -batch_size: 50 -num_rounds: 100 -learning_rate: 0.01 -momentum: 0.5 -algorithm: fedrep -model_name: cnncifar100 - -client_resources: - num_cpus: 2 - num_gpus: 0.5 - -use_cuda: true -specified_device: null - -dataset: - name: cifar100 - num_classes: 20 - seed: 42 - fraction: 0.83 - -model: - _target_: fedrep.implemented_models.cnn_cifar100.CNNCifar100 - -fit_config: - drop_client: false - epochs: ${num_local_epochs} - batch_size: ${batch_size} - -strategy: - _target_: fedrep.strategy.FedRep - fraction_fit: 0.1 - fraction_evaluate: 0.1 - min_fit_clients: 2 - min_evaluate_clients: 2 - min_available_clients: 2 - evaluate_fn: null - on_fit_config_fn: null - on_evaluate_config_fn: null diff --git a/baselines/fedrep/fedrep/conf/cifar100_100_5.yaml b/baselines/fedrep/fedrep/conf/cifar100_100_5.yaml deleted file mode 100644 index e0add8f03b45..000000000000 --- a/baselines/fedrep/fedrep/conf/cifar100_100_5.yaml +++ /dev/null @@ -1,44 +0,0 @@ ---- -num_clients: 100 # total number of clients -num_local_epochs: 5 # number of local epochs -num_rep_epochs: 1 # number of representation epochs (only for FedRep) -enable_finetune: false -# num_finetune_epochs: 10 -batch_size: 50 -num_rounds: 100 -learning_rate: 0.01 -momentum: 0.5 -algorithm: fedrep -model_name: cnncifar100 - -client_resources: - num_cpus: 2 - num_gpus: 0.5 - -use_cuda: true -specified_device: null - -dataset: - name: cifar100 - num_classes: 5 - seed: 42 - fraction: 0.83 - -model: - _target_: fedrep.implemented_models.cnn_cifar100.CNNCifar100 - -fit_config: - drop_client: false - epochs: ${num_local_epochs} - batch_size: ${batch_size} - -strategy: - _target_: fedrep.strategy.FedRep - fraction_fit: 0.1 - fraction_evaluate: 0.1 - min_fit_clients: 2 - min_evaluate_clients: 2 - min_available_clients: 2 - evaluate_fn: null - on_fit_config_fn: null - on_evaluate_config_fn: null diff --git a/baselines/fedrep/fedrep/conf/cifar10_100_2.yaml b/baselines/fedrep/fedrep/conf/cifar10_100_2.yaml deleted file mode 100644 index 83ee34a298ae..000000000000 --- a/baselines/fedrep/fedrep/conf/cifar10_100_2.yaml +++ /dev/null @@ -1,44 +0,0 @@ ---- -num_clients: 100 # total number of clients -num_local_epochs: 5 # number of local epochs -num_rep_epochs: 1 # number of representation epochs (only for FedRep) -enable_finetune: false -# num_finetune_epochs: 10 -batch_size: 50 -num_rounds: 100 -learning_rate: 0.01 -momentum: 0.5 -algorithm: fedrep -model_name: cnncifar10 - -client_resources: - num_cpus: 2 - num_gpus: 0.5 - -use_cuda: true -specified_device: null - -dataset: - name: cifar10 - num_classes: 2 - seed: 42 - fraction: 0.83 - -model: - _target_: fedrep.implemented_models.cnn_cifar10.CNNCifar10 - -fit_config: - drop_client: false - epochs: ${num_local_epochs} - batch_size: ${batch_size} - -strategy: - _target_: fedrep.strategy.FedRep - fraction_fit: 0.1 - fraction_evaluate: 0.1 - min_fit_clients: 2 - min_evaluate_clients: 2 - min_available_clients: 2 - evaluate_fn: null - on_fit_config_fn: null - on_evaluate_config_fn: null diff --git a/baselines/fedrep/fedrep/conf/cifar10_100_5.yaml b/baselines/fedrep/fedrep/conf/cifar10_100_5.yaml deleted file mode 100644 index 0cbd104406f0..000000000000 --- a/baselines/fedrep/fedrep/conf/cifar10_100_5.yaml +++ /dev/null @@ -1,44 +0,0 @@ ---- -num_clients: 100 # total number of clients -num_local_epochs: 5 # number of local epochs -num_rep_epochs: 1 # number of representation epochs (only for FedRep) -enable_finetune: false -# num_finetune_epochs: 10 -batch_size: 50 -num_rounds: 100 -learning_rate: 0.01 -momentum: 0.5 -algorithm: fedrep -model_name: cnncifar10 - -client_resources: - num_cpus: 2 - num_gpus: 0.5 - -use_cuda: true -specified_device: null - -dataset: - name: cifar10 - num_classes: 5 - seed: 42 - fraction: 0.83 - -model: - _target_: fedrep.implemented_models.cnn_cifar10.CNNCifar10 - -fit_config: - drop_client: false - epochs: ${num_local_epochs} - batch_size: ${batch_size} - -strategy: - _target_: fedrep.strategy.FedRep - fraction_fit: 0.1 - fraction_evaluate: 0.1 - min_fit_clients: 2 - min_evaluate_clients: 2 - min_available_clients: 2 - evaluate_fn: null - on_fit_config_fn: null - on_evaluate_config_fn: null diff --git a/baselines/fedrep/fedrep/constants.py b/baselines/fedrep/fedrep/constants.py index 27e68f2b786c..a4527e1f36d4 100644 --- a/baselines/fedrep/fedrep/constants.py +++ b/baselines/fedrep/fedrep/constants.py @@ -1,7 +1,16 @@ -"""Constants used in machine learning pipeline.""" +"""fedrep: A Flower Baseline.""" from enum import Enum +DEFAULT_LOCAL_TRAIN_EPOCHS: int = 10 +DEFAULT_FINETUNE_EPOCHS: int = 5 +DEFAULT_REPRESENTATION_EPOCHS: int = 1 +FEDREP_HEAD_STATE = "fedrep_head_state" + +MEAN = {"cifar10": [0.485, 0.456, 0.406], "cifar100": [0.507, 0.487, 0.441]} + +STD = {"cifar10": [0.229, 0.224, 0.225], "cifar100": [0.267, 0.256, 0.276]} + class Algorithm(Enum): """Algorithm names.""" @@ -10,10 +19,8 @@ class Algorithm(Enum): FEDAVG = "fedavg" -DEFAULT_LOCAL_TRAIN_EPOCHS: int = 10 -DEFAULT_FINETUNE_EPOCHS: int = 5 -DEFAULT_REPRESENTATION_EPOCHS: int = 1 +class ModelDatasetName(Enum): + """Dataset names.""" -MEAN = {"cifar10": [0.485, 0.456, 0.406], "cifar100": [0.507, 0.487, 0.441]} - -STD = {"cifar10": [0.229, 0.224, 0.225], "cifar100": [0.267, 0.256, 0.276]} + CNN_CIFAR_10 = "cnncifar10" + CNN_CIFAR_100 = "cnncifar100" diff --git a/baselines/fedrep/fedrep/dataset.py b/baselines/fedrep/fedrep/dataset.py index a616e38ae220..621baf98249a 100644 --- a/baselines/fedrep/fedrep/dataset.py +++ b/baselines/fedrep/fedrep/dataset.py @@ -1 +1,107 @@ -"""FedRep uses flwr-datasets.""" +"""fedrep: A Flower Baseline.""" + +from typing import Tuple + +from flwr_datasets import FederatedDataset +from flwr_datasets.partitioner import PathologicalPartitioner +from flwr_datasets.preprocessor import Merger +from torch.utils.data import DataLoader, Dataset +from torchvision import transforms + +from flwr.common import Context + +from .constants import MEAN, STD + +FDS = None # Cache FederatedDataset + + +def load_data( + partition_id: int, num_partitions: int, context: Context +) -> Tuple[DataLoader, DataLoader]: + """Split the data and return training and testing data for the specified partition. + + Parameters + ---------- + partition_id : int + Partition number for which to retrieve the corresponding data. + num_partitions : int + Total number of partitions. + context: Context + the context of the current run. + + Returns + ------- + data : Tuple[DataLoader, DataLoader] + A tuple with the training and testing data for the current partition_id. + """ + batch_size = int(context.run_config["batch-size"]) + dataset_name = str(context.run_config["dataset-name"]).lower() + dataset_split_num_classes = int(context.run_config["dataset-split-num-classes"]) + dataset_split_seed = int(context.run_config["dataset-split-seed"]) + dataset_split_fraction = float(context.run_config["dataset-split-fraction"]) + + # - you can define your own data transformation strategy here - + # These transformations are from the official repo + train_data_transform = transforms.Compose( + [ + transforms.RandomCrop(32, padding=4), + transforms.RandomHorizontalFlip(), + transforms.ToTensor(), + transforms.Normalize(MEAN[dataset_name], STD[dataset_name]), + ] + ) + test_data_transform = transforms.Compose( + [ + transforms.ToTensor(), + transforms.Normalize(MEAN[dataset_name], STD[dataset_name]), + ] + ) + + use_fine_label = False + if dataset_name == "cifar100": + use_fine_label = True + + partitioner = PathologicalPartitioner( + num_partitions=num_partitions, + partition_by="fine_label" if use_fine_label else "label", + num_classes_per_partition=dataset_split_num_classes, + class_assignment_mode="random", + shuffle=True, + seed=dataset_split_seed, + ) + + global FDS # pylint: disable=global-statement + if FDS is None: + FDS = FederatedDataset( + dataset=dataset_name, + partitioners={"all": partitioner}, + preprocessor=Merger({"all": ("train", "test")}), + ) + + def apply_train_transforms(batch: Dataset) -> Dataset: + """Apply transforms for train data to the partition from FederatedDataset.""" + batch["img"] = [train_data_transform(img) for img in batch["img"]] + if use_fine_label: + batch["label"] = batch["fine_label"] + return batch + + def apply_test_transforms(batch: Dataset) -> Dataset: + """Apply transforms for test data to the partition from FederatedDataset.""" + batch["img"] = [test_data_transform(img) for img in batch["img"]] + if use_fine_label: + batch["label"] = batch["fine_label"] + return batch + + partition = FDS.load_partition(partition_id, split="all") + + partition_train_test = partition.train_test_split( + train_size=dataset_split_fraction, shuffle=True, seed=dataset_split_seed + ) + + trainset = partition_train_test["train"].with_transform(apply_train_transforms) + testset = partition_train_test["test"].with_transform(apply_test_transforms) + + trainloader = DataLoader(trainset, batch_size, shuffle=True) + testloader = DataLoader(testset, batch_size) + + return trainloader, testloader diff --git a/baselines/fedrep/fedrep/dataset_preparation.py b/baselines/fedrep/fedrep/dataset_preparation.py deleted file mode 100644 index a616e38ae220..000000000000 --- a/baselines/fedrep/fedrep/dataset_preparation.py +++ /dev/null @@ -1 +0,0 @@ -"""FedRep uses flwr-datasets.""" diff --git a/baselines/fedrep/fedrep/main.py b/baselines/fedrep/fedrep/main.py deleted file mode 100644 index 223b98aa21fa..000000000000 --- a/baselines/fedrep/fedrep/main.py +++ /dev/null @@ -1,123 +0,0 @@ -"""Create and connect the building blocks for your experiments; start the simulation. - -It includes processioning the dataset, instantiate strategy, specify how the global -model is going to be evaluated, etc. At the end, this script saves the results. -""" - -from pathlib import Path -from typing import List, Tuple - -import flwr as fl -import hydra -from flwr.common.parameter import ndarrays_to_parameters -from flwr.common.typing import Metrics -from hydra.core.hydra_config import HydraConfig -from hydra.utils import instantiate -from omegaconf import DictConfig, OmegaConf - -from fedrep.utils import ( - get_client_fn, - get_create_model_fn, - plot_metric_from_history, - save_results_as_pickle, - set_client_state_save_path, - set_client_strategy, -) - - -@hydra.main(config_path="conf", config_name="base", version_base=None) -def main(cfg: DictConfig) -> None: - """Run the baseline. - - Parameterss - ---------- - cfg : DictConfig - An omegaconf object that stores the hydra config. - """ - # Print parsed config - print(OmegaConf.to_yaml(cfg)) - - # set client strategy - cfg = set_client_strategy(cfg) - - # Create directory to store client states if it does not exist - # Client state has subdirectories with the name of current time - client_state_save_path = set_client_state_save_path() - - # Define your clients - # Get client function - client_fn = get_client_fn(config=cfg, client_state_save_path=client_state_save_path) - - # get a function that will be used to construct the config that the client's - # fit() method will received - def get_on_fit_config(): - def fit_config_fn(server_round: int): - # resolve and convert to python dict - fit_config = OmegaConf.to_container(cfg.fit_config, resolve=True) - _ = server_round - return fit_config - - return fit_config_fn - - # get a function that will be used to construct the model - create_model, split = get_create_model_fn(cfg) - - model = split(create_model()) - - def evaluate_metrics_aggregation_fn( - eval_metrics: List[Tuple[int, Metrics]] - ) -> Metrics: - weights, accuracies = [], [] - for num_examples, metric in eval_metrics: - weights.append(num_examples) - accuracies.append(metric["accuracy"] * num_examples) - accuracy = sum(accuracies) / sum(weights) # type: ignore[arg-type] - return {"accuracy": accuracy} - - # Define your strategy - strategy = instantiate( - cfg.strategy, - initial_parameters=ndarrays_to_parameters(model.get_parameters()), - on_fit_config_fn=get_on_fit_config(), - evaluate_metrics_aggregation_fn=evaluate_metrics_aggregation_fn, - ) - - # Start Simulation - history = fl.simulation.start_simulation( - client_fn=client_fn, - num_clients=cfg.num_clients, - config=fl.server.ServerConfig(num_rounds=cfg.num_rounds), - client_resources={ - "num_cpus": cfg.client_resources.num_cpus, - "num_gpus": cfg.client_resources.num_gpus, - }, - strategy=strategy, - ) - - # Experiment completed. Now we save the results and - # generate plots using the `history` - print("................") - print(history) - - # Save your results - save_path = Path(HydraConfig.get().runtime.output_dir) - - # save results as a Python pickle using a file_path - # the directory created by Hydra for each run - save_results_as_pickle(history, file_path=save_path) - # plot results and include them in the readme - strategy_name = strategy.__class__.__name__ - file_suffix: str = ( - f"_{strategy_name}" - f"_C={cfg.num_clients}" - f"_B={cfg.batch_size}" - f"_E={cfg.num_local_epochs}" - f"_R={cfg.num_rounds}" - f"_lr={cfg.learning_rate}" - ) - - plot_metric_from_history(history, save_path, (file_suffix)) - - -if __name__ == "__main__": - main() diff --git a/baselines/fedrep/fedrep/models.py b/baselines/fedrep/fedrep/models.py index b230f4e49766..314d7cc91688 100644 --- a/baselines/fedrep/fedrep/models.py +++ b/baselines/fedrep/fedrep/models.py @@ -1,11 +1,11 @@ -"""Model, model manager and model split for CIFAR-10 and CIFAR-100.""" +"""fedrep: A Flower Baseline.""" from typing import Tuple import torch -import torch.nn as nn +from torch import nn -from fedrep.base_model import ModelManager, ModelSplit +from .base_model import ModelManager, ModelSplit # pylint: disable=W0223 @@ -58,17 +58,12 @@ class CNNCifar10ModelManager(ModelManager): """Manager for models with Body/Head split.""" def __init__(self, **kwargs): - """Initialize the attributes of the model manager. - - Args: - client_id: The id of the client. - config: Dict containing the configurations to be used by the manager. - """ + """Initialize the attributes of the model manager.""" super().__init__(model_split_class=CNNCifar10ModelSplit, **kwargs) def _create_model(self) -> nn.Module: - """Return CNNCifar10 model to be splitted into head and body.""" - return CNNCifar10().to(self.device) + """Return CNNCifar10 model to be split into head and body.""" + return CNNCifar10() # pylint: disable=W0223 @@ -104,6 +99,11 @@ def __init__(self): self.head = nn.Sequential(nn.Linear(128, 100)) + def forward(self, x: torch.Tensor) -> torch.Tensor: + """Forward pass of the model.""" + x = self.body(x) + return self.head(x) + class CNNCifar100ModelSplit(ModelSplit): """Split CNNCifar100 model into body and head.""" @@ -117,14 +117,9 @@ class CNNCifar100ModelManager(ModelManager): """Manager for models with Body/Head split.""" def __init__(self, **kwargs): - """Initialize the attributes of the model manager. - - Args: - client_id: The id of the client. - config: Dict containing the configurations to be used by the manager. - """ + """Initialize the attributes of the model manager.""" super().__init__(model_split_class=CNNCifar100ModelSplit, **kwargs) def _create_model(self) -> CNNCifar100: - """Return CNNCifar100 model to be splitted into head and body.""" - return CNNCifar100().to(self.device) + """Return CNNCifar100 model to be split into head and body.""" + return CNNCifar100() diff --git a/baselines/fedrep/fedrep/server.py b/baselines/fedrep/fedrep/server.py deleted file mode 100644 index 5b0c34035ae6..000000000000 --- a/baselines/fedrep/fedrep/server.py +++ /dev/null @@ -1 +0,0 @@ -"""Server strategies pipelines for FedRep.""" diff --git a/baselines/fedrep/fedrep/server_app.py b/baselines/fedrep/fedrep/server_app.py new file mode 100644 index 000000000000..0f98a3bc8876 --- /dev/null +++ b/baselines/fedrep/fedrep/server_app.py @@ -0,0 +1,80 @@ +"""fedrep: A Flower Baseline.""" + +import json +import os +import time +from typing import Dict, List, Tuple + +from flwr.common import Context, Metrics, ndarrays_to_parameters +from flwr.server import ServerApp, ServerAppComponents, ServerConfig + +from .utils import get_create_model_fn, get_server_strategy + +RESULTS_FILE = "result-{}.json" + + +def config_json_file(context: Context) -> None: + """Initialize the json file and write the run configurations.""" + # Initialize the execution results directory. + res_save_path = "./results" + if not os.path.exists(res_save_path): + os.makedirs(res_save_path) + res_save_name = time.strftime("%Y-%m-%d-%H-%M-%S") + # Set the date and full path of the file to save the results. + global RESULTS_FILE # pylint: disable=global-statement + RESULTS_FILE = RESULTS_FILE.format(res_save_name) + RESULTS_FILE = f"{res_save_path}/{RESULTS_FILE}" + data = { + "run_config": dict(context.run_config.items()), + "round_res": [], + } + with open(RESULTS_FILE, "w+", encoding="UTF-8") as fout: + json.dump(data, fout, indent=4) + + +def write_res(new_res: Dict[str, float]) -> None: + """Load the json file, append result and re-write json collection.""" + with open(RESULTS_FILE, "r", encoding="UTF-8") as fin: + data = json.load(fin) + data["round_res"].append(new_res) + + # Write the updated data back to the JSON file + with open(RESULTS_FILE, "w", encoding="UTF-8") as fout: + json.dump(data, fout, indent=4) + + +def evaluate_metrics_aggregation_fn(eval_metrics: List[Tuple[int, Metrics]]) -> Metrics: + """Weighted metrics evaluation.""" + weights, accuracies, losses = [], [], [] + for num_examples, metric in eval_metrics: + weights.append(num_examples) + accuracies.append(float(metric["accuracy"]) * num_examples) + losses.append(float(metric["loss"]) * num_examples) + accuracy = sum(accuracies) / sum(weights) + loss = sum(losses) / sum(weights) + write_res({"accuracy": accuracy, "loss": loss}) + return {"accuracy": accuracy} + + +def server_fn(context: Context) -> ServerAppComponents: + """Construct components that set the ServerApp behaviour.""" + config_json_file(context) + # Read from config + num_rounds = context.run_config["num-server-rounds"] + + # Initialize model parameters + create_model_fn, split_class = get_create_model_fn(context) + net = split_class(create_model_fn()) + parameters = ndarrays_to_parameters(net.get_parameters()) + + # Define strategy + strategy = get_server_strategy( + context=context, params=parameters, eval_fn=evaluate_metrics_aggregation_fn + ) + config = ServerConfig(num_rounds=int(num_rounds)) + + return ServerAppComponents(strategy=strategy, config=config) + + +# Create ServerApp +app = ServerApp(server_fn=server_fn) diff --git a/baselines/fedrep/fedrep/strategy.py b/baselines/fedrep/fedrep/strategy.py index 3bee45326a6f..ba4d8b75724f 100644 --- a/baselines/fedrep/fedrep/strategy.py +++ b/baselines/fedrep/fedrep/strategy.py @@ -1,4 +1,4 @@ -"""FL server strategies.""" +"""fedrep: A Flower Baseline.""" from flwr.server.strategy import FedAvg diff --git a/baselines/fedrep/fedrep/utils.py b/baselines/fedrep/fedrep/utils.py index b706ebf1e041..086abde2c46c 100644 --- a/baselines/fedrep/fedrep/utils.py +++ b/baselines/fedrep/fedrep/utils.py @@ -1,204 +1,87 @@ -"""Utility functions for FedRep.""" +"""fedrep: A Flower Baseline.""" -import logging -import os -import pickle -import time -from pathlib import Path -from secrets import token_hex -from typing import Callable, Optional, Type, Union +from typing import Callable, Type, Union -import matplotlib.pyplot as plt -import numpy as np -from flwr.client import Client -from flwr.server.history import History -from omegaconf import DictConfig +from flwr.common import Context, Parameters +from flwr.server.strategy import FedAvg -from fedrep.base_model import get_device -from fedrep.client import get_client_fn_simulation -from fedrep.constants import Algorithm -from fedrep.models import ( +from .constants import Algorithm, ModelDatasetName +from .models import ( CNNCifar10, + CNNCifar10ModelManager, CNNCifar10ModelSplit, CNNCifar100, + CNNCifar100ModelManager, CNNCifar100ModelSplit, ) - - -def set_client_state_save_path() -> str: - """Set the client state save path.""" - client_state_save_path = time.strftime("%Y-%m-%d") - client_state_sub_path = time.strftime("%H-%M-%S") - client_state_save_path = ( - f"./client_states/{client_state_save_path}/{client_state_sub_path}" - ) - if not os.path.exists(client_state_save_path): - os.makedirs(client_state_save_path) - return client_state_save_path - - -# pylint: disable=W1202 -def set_client_strategy(cfg: DictConfig) -> DictConfig: - """Set the client strategy.""" - algorithm = cfg.algorithm.lower() - if algorithm == Algorithm.FEDREP.value: - cfg.strategy["_target_"] = "fedrep.strategy.FedRep" - elif algorithm == Algorithm.FEDAVG.value: - cfg.strategy["_target_"] = "flwr.server.strategy.FedAvg" - else: - logging.warning( - "Algorithm {} not implemented. Fallback to FedAvg.".format(algorithm) - ) - return cfg - - -def get_client_fn( - config: DictConfig, client_state_save_path: str = "" -) -> Callable[[str], Client]: - """Get client function.""" - # Get algorithm - algorithm = config.algorithm.lower() - # Get client fn - if algorithm == "fedrep": - client_fn = get_client_fn_simulation( - config=config, client_state_save_path=client_state_save_path - ) - elif algorithm == "fedavg": - client_fn = get_client_fn_simulation(config=config) - else: - raise NotImplementedError - return client_fn +from .strategy import FedRep def get_create_model_fn( - config: DictConfig, + context: Context, ) -> tuple[ - Callable[[], Union[type[CNNCifar10], type[CNNCifar100]]], - Union[type[CNNCifar10ModelSplit], type[CNNCifar100ModelSplit]], + Union[Callable[[], CNNCifar10], Callable[[], CNNCifar100]], + Union[Type[CNNCifar10ModelSplit], Type[CNNCifar100ModelSplit]], ]: """Get create model function.""" - device = get_device( - use_cuda=getattr(config, "use_cuda", True), - specified_device=getattr(config, "specified_device", None), - ) - split: Union[Type[CNNCifar10ModelSplit], Type[CNNCifar100ModelSplit]] = ( - CNNCifar10ModelSplit - ) - if config.model_name.lower() == "cnncifar10": + model_name = str(context.run_config["model-name"]) + if model_name == ModelDatasetName.CNN_CIFAR_10.value: + split = CNNCifar10ModelSplit - def create_model() -> Union[Type[CNNCifar10], Type[CNNCifar100]]: + def create_model() -> CNNCifar10: # type: ignore """Create initial CNNCifar10 model.""" - return CNNCifar10().to(device) + return CNNCifar10() - elif config.model_name.lower() == "cnncifar100": + elif model_name == ModelDatasetName.CNN_CIFAR_100.value: split = CNNCifar100ModelSplit - def create_model() -> Union[Type[CNNCifar10], Type[CNNCifar100]]: + def create_model() -> CNNCifar100: # type: ignore """Create initial CNNCifar100 model.""" - return CNNCifar100().to(device) + return CNNCifar100() else: - raise NotImplementedError("Model not implemented, check name. ") + raise NotImplementedError(f"Not a recognized model name {model_name}.") return create_model, split -def plot_metric_from_history( - hist: History, save_plot_path: Path, suffix: Optional[str] = "" -) -> None: - """Plot from Flower server History. - - Parameters - ---------- - hist : History - Object containing evaluation for all rounds. - save_plot_path : Path - Folder to save the plot to. - suffix: Optional[str] - Optional string to add at the end of the filename for the plot. - """ - metric_type = "distributed" - metric_dict = ( - hist.metrics_centralized - if metric_type == "centralized" - else hist.metrics_distributed - ) - try: - _, values = zip(*metric_dict["accuracy"]) - except KeyError: # If no available metric data - return - - # let's extract decentralized loss (main metric reported in FedProx paper) - rounds_loss, values_loss = zip(*hist.losses_distributed) - - _, axs = plt.subplots(nrows=2, ncols=1, sharex="row") - axs[0].plot(np.asarray(rounds_loss), np.asarray(values_loss)) # type: ignore - axs[1].plot(np.asarray(rounds_loss), np.asarray(values)) # type: ignore - - axs[0].set_ylabel("Loss") # type: ignore - axs[1].set_ylabel("Accuracy") # type: ignore - - axs[0].grid() # type: ignore - axs[1].grid() # type: ignore - # plt.title(f"{metric_type.capitalize()} Validation - MNIST") - plt.xlabel("Rounds") - # plt.legend(loc="lower right") - - plt.savefig(Path(save_plot_path) / Path(f"{metric_type}_metrics{suffix}.png")) - plt.close() - - -def save_results_as_pickle( - history: History, - file_path: Union[str, Path], - default_filename: Optional[str] = "results.pkl", -) -> None: - """Save results from simulation to pickle. - - Parameters - ---------- - history: History - History returned by start_simulation. - file_path: Union[str, Path] - Path to file to create and store both history and extra_results. - If path is a directory, the default_filename will be used. - path doesn't exist, it will be created. If file exists, a - randomly generated suffix will be added to the file name. This - is done to avoid overwritting results. - extra_results : Optional[Dict] - A dictionary containing additional results you would like - to be saved to disk. Default: {} (an empty dictionary) - default_filename: Optional[str] - File used by default if file_path points to a directory instead - to a file. Default: "results.pkl" - """ - path = Path(file_path) - - # ensure path exists - path.mkdir(exist_ok=True, parents=True) - - def _add_random_suffix(path_: Path): - """Add a random suffix to the file name.""" - print(f"File `{path_}` exists! ") - suffix = token_hex(4) - print(f"New results to be saved with suffix: {suffix}") - return path_.parent / (path_.stem + "_" + suffix + ".pkl") - - def _complete_path_with_default_name(path_: Path): - """Append the default file name to the path.""" - print("Using default filename") - if default_filename is None: - return path_ - return path_ / default_filename - - if path.is_dir(): - path = _complete_path_with_default_name(path) - - if path.is_file(): - path = _add_random_suffix(path) - - print(f"Results will be saved into: {path}") - # data = {"history": history, **extra_results} - data = {"history": history} - # save results to pickle - with open(str(path), "wb") as handle: - pickle.dump(data, handle, protocol=pickle.HIGHEST_PROTOCOL) +def get_model_manager_class( + context: Context, +) -> Union[Type[CNNCifar10ModelManager], Type[CNNCifar100ModelManager]]: + """Depending on the model name type return the corresponding model manager.""" + model_name = str(context.run_config["model-name"]) + if model_name.lower() == ModelDatasetName.CNN_CIFAR_10.value: + model_manager_class = CNNCifar10ModelManager + elif model_name.lower() == ModelDatasetName.CNN_CIFAR_100.value: + model_manager_class = CNNCifar100ModelManager # type: ignore + else: + raise NotImplementedError( + f"Model {model_name} not implemented, please check model name." + ) + return model_manager_class + + +def get_server_strategy( + context: Context, params: Parameters, eval_fn: Callable +) -> Union[FedAvg, FedRep]: + """Define server strategy based on input algorithm.""" + algorithm = str(context.run_config["algorithm"]).lower() + if algorithm == Algorithm.FEDAVG.value: + strategy = FedAvg + elif algorithm == Algorithm.FEDREP.value: + strategy = FedRep + else: + raise RuntimeError(f"Unknown algorithm {algorithm}.") + + # Read strategy config + fraction_fit = float(context.run_config["fraction-fit"]) + fraction_evaluate = float(context.run_config["fraction-evaluate"]) + min_available_clients = int(context.run_config["min-available-clients"]) + + strategy = strategy( + fraction_fit=float(fraction_fit), + fraction_evaluate=fraction_evaluate, + min_available_clients=min_available_clients, + initial_parameters=params, + evaluate_metrics_aggregation_fn=eval_fn, + ) # type: ignore + return strategy # type: ignore diff --git a/baselines/fedrep/pyproject.toml b/baselines/fedrep/pyproject.toml index e4c3551af19a..9a45199032ef 100644 --- a/baselines/fedrep/pyproject.toml +++ b/baselines/fedrep/pyproject.toml @@ -1,73 +1,39 @@ [build-system] -requires = ["poetry-core>=1.4.0"] -build-backend = "poetry.masonry.api" +requires = ["hatchling"] +build-backend = "hatchling.build" -[tool.poetry] +[project] name = "fedrep" version = "1.0.0" -description = "Exploiting Shared Representations for Personalized Federated Learning" +description = "" license = "Apache-2.0" -authors = ["Jiahao Tan "] -readme = "README.md" -homepage = "https://flower.ai" -repository = "https://github.com/adap/flower" -documentation = "https://flower.ai" -classifiers = [ - "Development Status :: 3 - Alpha", - "Intended Audience :: Developers", - "Intended Audience :: Science/Research", - "License :: OSI Approved :: Apache Software License", - "Operating System :: MacOS :: MacOS X", - "Operating System :: POSIX :: Linux", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: Implementation :: CPython", - "Topic :: Scientific/Engineering", - "Topic :: Scientific/Engineering :: Artificial Intelligence", - "Topic :: Scientific/Engineering :: Mathematics", - "Topic :: Software Development", - "Topic :: Software Development :: Libraries", - "Topic :: Software Development :: Libraries :: Python Modules", - "Typing :: Typed", +dependencies = [ + "flwr[simulation]>=1.13.1", + "flwr-datasets[vision]>=0.4.0", + "torch==2.2.1", + "torchvision==0.17.1", ] -[tool.poetry.dependencies] -python = ">=3.10.0, <3.11.0" # don't change this -flwr = { extras = ["simulation"], version = "1.9.0" } -hydra-core = "1.3.2" # don't change this -pandas = "^2.2.2" -matplotlib = "^3.9.0" -tqdm = "^4.66.4" -torch = "^2.2.2" -torchvision = "^0.17.2" -setuptools = "<70" -flwr-datasets = { extras = ["vision"], version = ">=0.3.0" } - -[tool.poetry.dev-dependencies] -isort = "==5.13.2" -black = "==24.2.0" -docformatter = "==1.7.5" -mypy = "==1.4.1" -pylint = "==2.8.2" -flake8 = "==3.9.2" -pytest = "==6.2.4" -pytest-watch = "==4.2.0" -ruff = "==0.0.272" -types-requests = "==2.27.7" -virtualenv = "==20.21.0" +[tool.hatch.metadata] +allow-direct-references = true + +[project.optional-dependencies] +dev = [ + "isort==5.13.2", + "black==24.2.0", + "docformatter==1.7.5", + "mypy==1.8.0", + "pylint==3.2.6", + "flake8==5.0.4", + "pytest==6.2.4", + "pytest-watch==4.2.0", + "ruff==0.1.9", + "types-requests==2.31.0.20240125", +] [tool.isort] -line_length = 88 -indent = " " -multi_line_output = 3 -include_trailing_comma = true -force_grid_wrap = 0 -use_parentheses = true +profile = "black" +known_first_party = ["flwr"] [tool.black] line-length = 88 @@ -76,7 +42,9 @@ target-version = ["py38", "py39", "py310", "py311"] [tool.pytest.ini_options] minversion = "6.2" addopts = "-qq" -testpaths = ["flwr_baselines"] +testpaths = [ + "flwr_baselines", +] [tool.mypy] ignore_missing_imports = true @@ -84,14 +52,22 @@ strict = false plugins = "numpy.typing.mypy_plugin" [tool.pylint."MESSAGES CONTROL"] -good-names = "i,j,k,_,x,y,X,Y" -signature-mutators = "hydra.main.main" +disable = "duplicate-code,too-few-public-methods,useless-import-alias" +good-names = "i,j,k,_,x,y,X,Y,K,N" +max-args = 10 +max-attributes = 15 +max-locals = 36 +max-branches = 20 +max-statements = 55 -[tool.pylint."TYPECHECK"] +[tool.pylint.typecheck] generated-members = "numpy.*, torch.*, tensorflow.*" [[tool.mypy.overrides]] -module = ["importlib.metadata.*", "importlib_metadata.*"] +module = [ + "importlib.metadata.*", + "importlib_metadata.*", +] follow_imports = "skip" follow_imports_for_stubs = true disallow_untyped_calls = false @@ -137,3 +113,49 @@ exclude = [ [tool.ruff.pydocstyle] convention = "numpy" + +[tool.hatch.build.targets.wheel] +packages = ["."] + +[tool.flwr.app] +publisher = "dimitris" + +[tool.flwr.app.components] +serverapp = "fedrep.server_app:app" +clientapp = "fedrep.client_app:app" + +[tool.flwr.app.config] +algorithm = "fedrep" + +# dataset specs +dataset-name = "cifar10" +dataset-split = "sample" +dataset-split-num-classes = 2 +dataset-split-seed = 42 +dataset-split-fraction = 0.83 + +# model specs +model-name = "cnncifar10" +batch-size = 50 +learning-rate = 0.01 +momentum = 0.5 +enable-finetune = false +num-finetune-epochs = 5 +num-local-epochs = 5 # number of local epochs +num-rep-epochs = 1 # number of representation epochs (only for FedRep) + +# server specs +num-server-rounds = 100 +fraction-fit = 0.1 +fraction-evaluate = 0.1 +min-available-clients = 2 +min-evaluate-clients = 2 +min-fit-clients = 2 + +[tool.flwr.federations] +default = "local-sim-100" + +[tool.flwr.federations.local-sim-100] +options.num-supernodes = 100 +options.backend.client-resources.num-cpus = 2 +options.backend.client-resources.num-gpus = 0.5 # GPU fraction allocated to each client