From a2adf4bdd199779d446bfe152256a174cc9919b3 Mon Sep 17 00:00:00 2001 From: Shengkang Chen <billyskc@ucla.edu> Date: Sun, 26 May 2019 15:44:41 -0700 Subject: [PATCH] modification on comm and analyzer --- CoLo-AT/Cooperative_Localization_Journal1.py | 107 ++++++++++-------- ...ative_Localization_Journal1.cpython-35.pyc | Bin 0 -> 2926 bytes CoLo-AT/colo_d1.pdf | Bin 0 -> 24692 bytes CoLo-AT/colo_d2.pdf | Bin 0 -> 24608 bytes CoLo-AT/colo_d3.pdf | Bin 0 -> 25601 bytes CoLo-AT/colo_d3.png | Bin 0 -> 1274 bytes CoLo-AT/colo_d4.pdf | Bin 0 -> 24832 bytes .../__pycache__/data_analyzer.cpython-35.pyc | Bin 6028 -> 7519 bytes .../__pycache__/realtime_plot.cpython-35.pyc | Bin 6487 -> 6408 bytes CoLo-AT/data_analysis/data_analyzer.py | 38 ++++--- .../realworld_dataset_manager.cpython-35.pyc | Bin 14495 -> 15683 bytes CoLo-AT/j1_rw.py | 14 +++ .../__pycache__/ekf_gs_ci2.cpython-35.pyc | Bin 4669 -> 4669 bytes .../__pycache__/ekf_gs_sci2.cpython-35.pyc | Bin 0 -> 5880 bytes .../__pycache__/ekf_ls_bda.cpython-35.pyc | Bin 5386 -> 5482 bytes .../__pycache__/ekf_ls_ci.cpython-35.pyc | Bin 0 -> 4280 bytes .../__pycache__/gs_ci_bound.cpython-35.pyc | Bin 0 -> 3781 bytes CoLo-AT/requests/.DS_Store | Bin 0 -> 6148 bytes CoLo-AT/robots/.DS_Store | Bin 0 -> 6148 bytes .../__pycache__/sim_manager.cpython-35.pyc | Bin 5331 -> 5858 bytes .../__pycache__/state_recorder.cpython-35.pyc | Bin 5180 -> 5275 bytes CoLo-AT/simulation_process/sim_manager.py | 67 +++++++---- 22 files changed, 135 insertions(+), 91 deletions(-) create mode 100644 CoLo-AT/__pycache__/Cooperative_Localization_Journal1.cpython-35.pyc create mode 100644 CoLo-AT/colo_d1.pdf create mode 100644 CoLo-AT/colo_d2.pdf create mode 100644 CoLo-AT/colo_d3.pdf create mode 100644 CoLo-AT/colo_d3.png create mode 100644 CoLo-AT/colo_d4.pdf create mode 100644 CoLo-AT/j1_rw.py create mode 100644 CoLo-AT/localization_algos/__pycache__/ekf_gs_sci2.cpython-35.pyc create mode 100644 CoLo-AT/localization_algos/__pycache__/ekf_ls_ci.cpython-35.pyc create mode 100644 CoLo-AT/localization_algos/__pycache__/gs_ci_bound.cpython-35.pyc create mode 100644 CoLo-AT/requests/.DS_Store create mode 100644 CoLo-AT/robots/.DS_Store diff --git a/CoLo-AT/Cooperative_Localization_Journal1.py b/CoLo-AT/Cooperative_Localization_Journal1.py index 445f809..abad62f 100644 --- a/CoLo-AT/Cooperative_Localization_Journal1.py +++ b/CoLo-AT/Cooperative_Localization_Journal1.py @@ -27,77 +27,84 @@ from ekf_gs_sci2 import EKF_GS_SCI2 # dataset_path = "/Users/shengkangchen/Documents/CoLo/CoLo-D/CoLo-Datasets/official_dataset3/" + dataset_path = "/home/william/CoLo/CoLo-D/CoLo-Datasets/official_dataset3/" # for desktop Ubuntu robot_labels = [1,2,3] duration = 180 # duration for the simulation in sec -testing_dataset = RW_Dataset_Manager('testing') -start_time, starting_states, dataset_data, time_arr = testing_dataset.load_datasets(dataset_path, robot_labels, duration) -analyzer = Analyzer('analyzer', robot_labels) -loc_algo = EKF_GS_CI2('algo') -robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = True) -sim = SimulationManager('sim gs_ci') -state_recorder = StatesRecorder('GS_CI', robot_labels) -sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder, simple_plot = False) -loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder, plot_graphs = True) -############################################################################## -testing_dataset.dataset_reset() -loc_algo = GS_CI_Bound('algo') -robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = True) +def all_algorithms_comp(dataset_path, robot_labels, duration, graph_name, robots_cant_observe_lm): + + + testing_dataset = RW_Dataset_Manager('testing') + start_time, starting_states, dataset_data, time_arr = testing_dataset.load_datasets(dataset_path, robot_labels, duration) + analyzer = Analyzer('analyzer', robot_labels) + + loc_algo = EKF_GS_CI2('algo') + robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = True) + sim = SimulationManager('sim gs_ci') + state_recorder = StatesRecorder('GS_CI', robot_labels) -sim = SimulationManager('sim gs_ci_bound') -state_recorder_bound = StatesRecorder('GS_CI_bound', robot_labels, state_var_only = True) -sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_bound, simple_plot = False) -loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_bound, plot_graphs = False) + sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder, simple_plot = False , robots_cant_observe_lm = robots_cant_observe_lm) + loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder, plot_graphs = True) + ############################################################################## + ''' + testing_dataset.dataset_reset() + loc_algo = GS_CI_Bound('algo') + robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = True) -############################################################################## + sim = SimulationManager('sim gs_ci_bound') + state_recorder_bound = StatesRecorder('GS_CI_bound', robot_labels, state_var_only = True) + sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_bound, simple_plot = False, robots_cant_observe_lm = robots_cant_observe_lm) + loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_bound, plot_graphs = False) + ''' + ############################################################################## -testing_dataset.dataset_reset() -loc_algo = Centralized_EKF('algo') -robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = False) + testing_dataset.dataset_reset() + loc_algo = Centralized_EKF('algo') + robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = False) -sim = SimulationManager('sim cen_ekf') -state_recorder_LS_cen = StatesRecorder('LS_cen', robot_labels) -sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_LS_cen, simple_plot = False) -loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_LS_cen, plot_graphs = False) + sim = SimulationManager('sim cen_ekf') + state_recorder_LS_cen = StatesRecorder('LS_cen', robot_labels) + sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_LS_cen, simple_plot = False, robots_cant_observe_lm = robots_cant_observe_lm) + loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_LS_cen, plot_graphs = False) -############################################################################## + ############################################################################## -testing_dataset.dataset_reset() -loc_algo = EKF_LS_BDA('algo') -robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = False) + testing_dataset.dataset_reset() + loc_algo = EKF_LS_BDA('algo') + robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = False) -sim = SimulationManager('sim ls_bda') -state_recorder_LS_BDA = StatesRecorder('LS_BDA', robot_labels) -sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_LS_BDA, simple_plot = False) -loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_LS_BDA, plot_graphs = False) + sim = SimulationManager('sim ls_bda') + state_recorder_LS_BDA = StatesRecorder('LS_BDA', robot_labels) + sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_LS_BDA, simple_plot = False, robots_cant_observe_lm = robots_cant_observe_lm) + loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_LS_BDA, plot_graphs = False) -############################################################################## + ############################################################################## -testing_dataset.dataset_reset() -loc_algo = EKF_LS_CI('algo') -robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = False) + testing_dataset.dataset_reset() + loc_algo = EKF_LS_CI('algo') + robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = False) -sim = SimulationManager('sim ls_ci') -state_recorder_LS_CI = StatesRecorder('LS_CI', robot_labels) -sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_LS_CI, simple_plot = False) -loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_LS_CI, plot_graphs = False) + sim = SimulationManager('sim ls_ci') + state_recorder_LS_CI = StatesRecorder('LS_CI', robot_labels) + sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_LS_CI, simple_plot = False, robots_cant_observe_lm = robots_cant_observe_lm) + loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_LS_CI, plot_graphs = False) -############################################################################## + ############################################################################## -testing_dataset.dataset_reset() -loc_algo = EKF_GS_SCI2('algo') -robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = True) + testing_dataset.dataset_reset() + loc_algo = EKF_GS_SCI2('algo') + robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = True) -sim = SimulationManager('sim gs_sci') -state_recorder_GS_SCI = StatesRecorder('GS_SCI', robot_labels) -sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_GS_SCI, simple_plot = False) -loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_GS_SCI, plot_graphs = False) + sim = SimulationManager('sim gs_sci') + state_recorder_GS_SCI = StatesRecorder('GS_SCI', robot_labels) + sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_GS_SCI, simple_plot = False, robots_cant_observe_lm = robots_cant_observe_lm) + loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_GS_SCI, plot_graphs = False) -analyzer.algos_comparison([state_recorder, state_recorder_LS_cen, state_recorder_LS_BDA, state_recorder_LS_CI, state_recorder_GS_SCI, state_recorder_bound], only_trace = ['GS_CI_bound']) + analyzer.algos_comparison([state_recorder, state_recorder_LS_cen, state_recorder_LS_BDA, state_recorder_LS_CI, state_recorder_GS_SCI], graph_name = graph_name) diff --git a/CoLo-AT/__pycache__/Cooperative_Localization_Journal1.cpython-35.pyc b/CoLo-AT/__pycache__/Cooperative_Localization_Journal1.cpython-35.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d61288577566f07d1c62e5c45568989959feb045 GIT binary patch literal 2926 zcma)8-EJH;6h5>6JNuXahPH%l`Hc`+5-89Jp|%M{fwV&1BBW6zYqB%hOzN3g*|V(@ zWv{{u@EF|l3cQ4GxvF>ruJ~;4HXD+t-DEuH9Qz!9w$J%I*BTA?uhu`$eqSK^o2GsR z$oKHb=MGUo<e_ya$PstQgJ9(xdAW(4CofN7jt&cSSftP~LTMtDDXh>byz+FK(}JTz z6o^+TcFA+CUL;<lxK3W(>Lub0iksv$tzIVHqIib98LL-_&r&=`-kjB|#OEnqAa8-3 zH$!o!q11>kQoKaok_}ZSevRT~@|LaMApQ=;*U7tX^(OHf6yGH8rqx@--=%nkycMg@ z5Py&2HhFF6v*g{PV2*-$3Kpo3t-4LYB6;squtdQ%`VAZWf!^Kj>hkf|?v@DsEDYLd z(tdg{Y(Mgk+UsAn*Y9k8xxRU4y}j}I`d!z(=MS@kRBX0iMw~}}?7q^+_gFb=tB#s` z@+;f+Ghc=od*mm6KNPUecB6R6{VYn8Gh^*Zx|e3%BbkLU#x%Pb=9W*wUMd3PRk@$| z{OH)obw7z>^s@m^GjEQkJ)cL%CL;5BKb45k+6t3QXnPp2?|*s-lZzMI?Xm~k_n}qC z+Sbmb>xVAe+S!0sGZK4{4wFEudL&F;^d4_^4$?U6jF;QlN_SJ!e6~G)+4ag!y1yUw zBA>IsTE6JKLK4%foNn^E`4dgAh(`aG@Ko_^;gLo3XC~K?qoX376zR~R6QUEeNZdR< zE6}J!qcV*uG^$dD0?6rJr1i+9EN@aAzBS4UI>WVNje;TtCAd4II%SZ{x&}rK%1RVe zChko-Y0zQWxM1o!oir(^Qs7chqmu%i7IMysONVekN8LnpoM(9&wP-X$qgeyDN~c6l z1}D_or9hDQuYokCfM9;Rj=2j!kh_-yK?i^!;*~(K__qPlngTL20WyC92rB4uAn14l z5Olu{kl869*a*8L3m1SaTm=LjZvfJ`8pw2x%ufNq{1(XK1t5!80YS&5K#)N=Y5Ze# z*kFWSq&{*Iq4oYa4*0&iy7X9;K?GTp^i>5EVkkfrbd{^3(43*FK_oN5<dJ-OT$NGW z?n~B-RM8Z%s=+egmMR{qCF6pAKgn3SCqwZfWIR?i%_OWZ{K0`d)-LT{n6U8qzAAw* zARoKh$R*ngd}9NN*x6vyvtiiQjva;hB}^qt8Ok+bS>ngxYD?(KR}G%}!Gsv3D8nY| zy3uSP^sOgKXw)1gWdo7+LMag-i(Z6k17z3J{0ZP`kA*@oKM5GPt`{<?X_LM1MdT+? z2cckMn5f2>gO~`x#X|FpaCKADO;b-bV~CUW(s%%GnI@}Csy=ZW_}PJ~o4sS)-wU}^ zm0&0g<BGP9ab3q~jZbQ_GUWn~$XFJ|p=uc!=V(F7v*>yjRndc(FNDBH0I7;zn}#Gb zF{(T^LN)E`#Q0KBt;zadFVk+qL@j1Io?1Nbrf&co=w)V{sam)=dTZyxV0*NGkoX4Z z{{6Z03o=P|<UyG9pZiI_2cff__J%PoAvtwP+<yus1weC_Y<K$R`Y{~}B>4K;;7HB; zoZIC`*+Gm9!?ApfspKvi%GaG+PAgY;mYq7@x1E)i3uzgamIJMDPAi_%&iCcSCgQDr zsLG55*m0(Esl;v{NmcHL*}#`l70l_E{J|hh0#!InqePX12v~8d6~^`>lowO0lVpkQ zO}~cE2mUe@{B@$UagVKm6&&gKGhmY9YdYO0gLD<Bd0Ve*HuV4tp9iK$)UC_hP4-Xn z!<Ntu4GR?l=8%zGJJawfVG2+EZ-j<za#2%)sAv=|<jd=C36O#*Amu`0mJv)bsp{C! zi%ebF0fvk=Om(Z8QP`gTt`H3!xu#t#Uu>8<6d%DX^ihjXbfb^QB-vDR7dBP-Hco>f d55LpoA@$f&PN&1C&dk|g{+w1U<yuau_#XyZ@0S1o literal 0 HcmV?d00001 diff --git a/CoLo-AT/colo_d1.pdf b/CoLo-AT/colo_d1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e89ec15c4e87ec63d59e8d974489179e14fc4d3b GIT binary patch literal 24692 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�&Ak1^Yu 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 S6HE*PUtThVr)OwP81Wx@iwf%i literal 0 HcmV?d00001 diff --git a/CoLo-AT/colo_d2.pdf b/CoLo-AT/colo_d2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1d537142ebc33cd13f5aef68d63c176cfb682f90 GIT binary patch literal 24608 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 literal 0 HcmV?d00001 diff --git a/CoLo-AT/colo_d3.pdf b/CoLo-AT/colo_d3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1180d28aba82324f8033794146bd84a7237a041e GIT binary patch literal 25601 zcma%jW0WP!x^3CEZLYFy+qP}nwr#t+++`bG=&I_n?dsC&zUSQc&c1JtJNB<!kr@%+ zjF}N%&Ws#$kt>Rd(=#!!!jRW)5Y=?TFcATW9E`1DczKB!6^$&+T!@%|pHU`aRP}N+ zBVrUWay7Dbupr{+hcUA^{Zo<iKN^U6x=N_H8o8PgvHq)(xP!eb5zD`RD;l}FnmOAO zvHdB+Fe*Abn5dY!66ySoBP#y8e=|>4B1S2@-!X;%eH8ikQHn^9h*8DT$kfW-f{6WJ z%{3K_t<6kai8%hN^Zy5j3Gn;Ge-A*&-rm90<#&kR?L~e=F|+?&;`&zy63z~8jzoWk zDWXEeC~D?zWn!i*@jLYIlB%<jy^Eufvzfh#*ME=vU-f?nVw5v8wK5WR@ciBHpJ1#k z%tXwboPS~{{%PX+-;61nxj48voBXEm4@du(!auD32Y-Ly{5M{4E8E``5iyF}{^n5B z%*4U;H|4Ts_7<*|L`;9~jPjp`F0RgIMs_fsxd(oe^=6|^2XFqv1YaQiQm;nmn!BRd zH$Y>+c#&*_s4`a3G)c12YJWayBX_Wn-fbA`r4I$!fkK>>KaS@mj74hFl9;@nAu@ja zI&@wky#5U6_4j#){djfA_}1I^8F06Iy%Ldu2Kw=u_r}p09?)^~^YiKU_BF%cou1$w zS;6-vdGSCdfOSRW{@Kj-V%~Pqql9|@SrR&67xV6C$=AXjzYt_YRZq`2*sJZ&Tjh1q z^uvuC?jO1YH~t5c4OjZ_4@VgW0dDW70k4x?XEi^+rM_L)i5WOYWz4=H`^rx*FAP2` zf9rWeeBxNq2x$LU(Qwhkn~8aPcA$qxw7dGb{*xW(YJv1M+s}%)mpe4kfDlxj{)_Gp zCa}e~5#-Wejzwe{&M_}-$omPk!m|nARj41Zg6#tKu(SjAGePrZn|j#8fBm8fT_qSF z&b{LguY0#MfdUTJQa&we-#5Sw@n~QawY;47lcXjHX}oa26Maa~G_hqcrfNXgCA~!g zl~=k(c34d)v<vt_RGg6TU6=|!q~Xss5@e@*Z`Xc8<&L&*PDt3ZZV4G*AFEY=k)yn# zbY4r+KWW~y>=SYg@7}(xY5er}{QN=qd9b`wa7x=HvDLPsP`^HSBEuwd1RCm4l{9*G zCU$YOONxf~!~NS_Yxhl9kAQN2Pz<yHE+ZVFpAlWcsfmnPuVY*HMHn#zl>5o@B-KOM z$?~S-@nL{B)kR_xRR<Wtib}U~Wn9DCX-Fov`)$tW>w$y7RNc#G#wOzCGZyOM{BDV* zi0j3#o%e^?6~YFlQ^)tgFuBpy%|Q`UX<A^Bk>`o$Z_xtPA)4UUxn~>(y5D}iK7D>% zbUl50*<D%bA~evymX@q`nA_!yN1t7eY^&y-rkBW#R5xVzMy^pCEa?k(#dEf7LP8nJ zojyVKL#&c=ne4Fe>NKwMnZ=(3s-mhY5@0ofY`R+I^Xh!gUzNJc3@ITQ9$Y12>ZIq@ zzE)iOWlJws5Jue3<)G=6xq7NhlQ#`+a?55-*jA>`oO4zZv29s(?V2#>yWkOkCMzVa zM*v;2UD#xVd^#`Y#rd>-utQ+P2{>c`JsBQmP^gd?Uf9j>C1nSgkk7|{6sC80qd)fl zUQhSo*yVyvf-75X(O(O(QDFg+`XfOq1-N00Jhpa{dXGR9A>1^QJn^!H?}<k?cT$83 znPv<osLp{lie){9*~4+r{pTIEn|(o0<nh=}no8?ND@|KzD#l$kLa$Fq35t2~5H(qP z$>!A?*`~^wZZ2y+RuNy3t<$uOII)At2X8WsE%`CDa4~g`_12qKfq5`m@!7d$1b|0z z5j2&h=%8yBOYx6LTrFic6ZdVBcJ|K2T&V{~dri2RWOxk1qui_#wjvl7gUM^>(|q0l z$J{fKDqx$N`%VT#d<*ccK@rnfgQMwl=gs)$VD)N8u1>ZmyJM}!;Z2AeFbW+C;4qTw zH+y4uAxE2_r)3lu5g^ebQ%}m^=yY&DPzi$d?ly)a52oZre^gvYDxxvh-S-8r&<!d; zFAncgWT_8fJFMq3ZHoRFQb}LLLU=1iQ;8QbAwPbgy1-wQi(3q?2w5v9tAW#lkt#Oz z9OHh|tq@LTf{0YDU)VapYw9q*SCo(=939HBwZD8W;f_avgj1fcsnzaZDvGquctjvp zC8h>0X;2H#YW%E1w^P94SFLa*1W@X+Vo_HAVv>%fsJ6wxla61Ld1^yHGP@7U*Lv!R z7l}Ve_b<d2IbVbHva7ZmV_q^!=rPjfv^%b-V8{XSgL)a}oQoIPAkJ9`7~UXW$;2p# zP#*mxySUgvnUY&@mu#Pc!Hs)&!=jijtq7g8p*CFQgkx!kOQPqJd|I`%wHyYl#ZN<b za&tZcH`5K41_w<|%%{1arof?AlyKNm{U8P=H;TqH-*ZOL8q^+6?S@00gezz{y#sha z&y;q55oD}6Hyo#JwVAl(Y?M}63&N3w{xv>%2jE+4%2SE(Jk;HP$t0$bTc=LctRlLo z=Y|tqcS7JCr5Ox$+zCi`&+<vKGBUztt8Ntmb5sPv49-}N=uCPPZ$mND20&kzz+_}0 z4vU78c140Fi4B4g0`#DK(@9~BLKYI;BT>p@LgHKC{cu__&lRoFTZ%!ba_ckPEz`gr z_RH}74bX6dLZa7<b5*g>Vz%7S3n5)juT{$eCYn<|L_7_F`Gk<r;oOx%A-f&}qi39` zVuJ(5tAzy8&!3UbUrP@0V)zluGEe$sc&0KZo3o2Vi1?QE3JD7z;YorDjQ3h%nMK6L zUMgBb>kgPov?rmp)wf_YMnt4#l8$gqMOFw-lUOpel$HvQT6=^?#Rym)K}&#rXfFVK zS%pIDMq4TM%uA%c2(mIG*e6tDo`nQAvdLOp1mCNDz#pIvB<co^SkRIxoyOqJV+7nB znnv`dcng6uXnef7g~cLCg4{-2jq2UJ8dHrsng$U&1NtY|MM8YiuHhUYc!*nqPpOU# z3L<z?VDCQw5LFU>1Qm2EL@fg}s+q3Xd`r}-w#45D@;#15X$13%pBP#O?$D5}BDmwg zx;tT3tt)C&NYdmUn6)fb8j7LYqVCdzqbY2CRQeemwVCPC)|<EVkWr=aGJ;6CWNnK_ zZ<dy;?k}89OCsqIN-^mX9E4nHBcl8r3v&=qPn-IxX1zmk@MzJerK<-QA(U>Nu0?fF zod)b9gt0@bqg*RX@#A5Zg5e6h!5+na>{RucRi+9Z<LBz!kbw+s4t{Zd-~!=9m;X^j zYt)vVFN)VoR4m(&2p7!2Z@Z+((^vtlv+zJ<-0VuQddZ~IPH#mOSRD_E0AZffv#1tG z=BmeLsUkQ=wwUaHdt9K8oIuC{TSspFbZyXRor}KtQ&<A_Vjdc1Ovw(<pZWtl9*08b z7|zr67`iv4b?^<N-CIbOToj&CY`q9pdO8=~PY=(#;(hL=ici7`i+i|I(nqD^a)E#+ zzLFQwEP7?YFXIuegzl6|ILkQW1mZ!^YQ86$;8I4ZPl6Uak5(Igam3aq?o@3+2TCm* z(JtGOR~uOXoV_mYai)VT3uDQ5SSZyWWSrI$T@9!#<O4+oV)io${AB!A&<PUXztG`; z8p}3gW#YO>u1Qg@TrJ9X!7`#-gDP+*sjus79g!U3h~tdeq{J;ZG$*Yyc`)J(sf%4? zO*ON>xCUB4(llrc2_r^RGPaAfJJsDDA43lx%T~>SId^O?b-OXjd34dys0<%LVR)b_ z<BZ!~Z!5=eg=U{2S|e&RPV7ff8_{?!M&1nwE#>sJ$F|3Wy^zzQQ1Y5^&WQGq#qb+| z3^+;CR{Q6WR*?sk2KqjDOv1d#Gz3%owRlf+rDDPyk{(9EFQ{UQ9H@uPAkCNwB7+=L z^$w@#;hGvmm5ZVAFoWp%ulj26>R2jy=u4!cUaM%4hBNDUUY#;3I*LVU!!=~z_9VLz zOn|NclQyvZSm&wouoklK_?AfVMe)O<IoX`wnv!vVJYxor!h7f3Gtb0j87Nl<$*KXq zrSAum83COi!XMkWjEb0fC5Wy8C!rLp=-V5QQVT%dpkMZg;F&S$Vo1%TLd0u{Bqy99 z=CCu9pIOp;QS@t$Q6Cwi2aPJh*cU+yp)_fLYv4|h7aJ?Vg7Opbh~e28fDt(GpYmk- zs)py0Y)sq1;&Dn)1IC=8@AVAV%hnvBJ%f*AJOjljTsuWHSrC3CLT`9kb09cUqQby6 z@Qi^;287vA)y2pP5?%wTifA(jdAe{Krpxx(RGP;;Uxv%}@$lp$Q0DZ_D+9n_u-SoO za4VqG-`3Z_S_hqK<NzT?sB;K8%c*RcrXUan+s?4#%}LO!3X%pI^2SNfx`0^Wq-b(f z95ofiZHw_x@%J=zbRA~k?+qD2hQUWmA&z8;z?BpS!gS+;PpwsPTapmxzNC6S_+%oK zEH%x&NpNu^nwX1@aL3>@u8yGLCVlP$=t%UvPH>55m$|E!lT55P_o@Qg48V}Xs6hsh zX@L)cBIL&ARbc$`b#$9LG(p9IDs`zt;^c<Nr>JRx?zTTrQ-EkeMEBEh0J0#a@|n_B z6$0>Im6<rUC7svpu^`@18F6M)+!$MJb}P3l!OO7V9ugx}rN2MnoEmY0DlCBt$v;hW zYMlmEGFC@@Spwb1l~5n&k>L~FUCB)Y$y5cop@r)lV3r~G<W9CfFDgRuOfA%kRz?Yz zK3?*bG8<Kfc2zCGp?BLaf-A+<t}R6itca(=GVe<o5~`!g3irNF6<^iDE-xZ*q!@1< z+r>QumcXiBp<Vhq1^Qy#8MQLPI|pxFU&UjV3HeJX4J>NPnh8;uy&aeX^N#3TbtIjN zm?;bL1N8@CYK`s`XaS_IvsPB<IPdjKszYjfCS=r|Q2$GaSK-P^p0h`|ClX~7g8Kv# z;=Ms(tIVQ3#SPJ5C~hsl2^lf9O7~3=E8LUFtdFxga8Zi4Z-5J`dgZ&=?{_43Je><O zWJJ@Vq8oHS?A@SPV%zdWm2}TS_aZ~<R}uoKIyD-EUEm*xAvyP6BD{0jC=~iUH-T%? zrV{Ed$cT#7*B1~>jggQu7zj2QU$u9EM?fNl&lAWAj-kVL3Uzja#_$=ud`SqJk9%rE zgNU(U>O53xZJ{9~`RPJ@NU#b8h_|Jpz(fGsvHeMj^c-)(C|v|;y?{56Hb;eGS&m>} zY1C>}@(C0;EItz;1u#(4{(fhw{>DhKbGr!8)q+ScO>jh0@{+Hj!bDO6m7F4EhG0?A zfpxnZUH$Rf_uhIYgN&?~oIvplXfXzfZL%S@#X35<2{b{hNWs4FJwU*r9e6<NbFg^4 zV7hdnWtdcB&=SI(2KOLZNbQd_4dMDk-c_-{x;#CCzZyi!3hqJlb%c9fg2fme6$0Z* z_`e;48#6x>zU(76er?oHTiLpX3dKa?R?`ocC^RiE#u&JT+U+xbF~i14m;?7&Dc+<b z2&yNa2`AYdCRLOJk*4})83_ha<Rs{~^e9Dk?IrBi5ZX_M61pcpM=gzoMG~}%Oi<Fh zf&{(VUW+k&3qFS{>L|@f*Bb~CW?ySaJ&5UQjEJXuvUv+0`wq`+Yyx{+LM5nc8x)IQ zOs;8W0&AJD82BTdJ`j0CF{U_R5Q8;%I58~_U<=&Z;)#T-rkJ%|lxSQ5V+e^3dnF58 zB1^)Ct1>4Ao!$>cR~{H7^PC=?M6V(^4KhtG@>Nzy-B>iej~U!{bQenUi!3nOx5bif zCU8YpP8;sEVYI}%Tm7Wj5wyfP+f%UJ^93$T&|pkiMP21p<SC4iE^Ai0$^@%Oa6TBd zO&=LLKr+ncwt{gHb1L^PU%F;x>j_+j0Z)_QE=sk?c#9aFqdFWBRZt@`c<{%)lL*?} zWSm^<nK+tYSu(XR2^bD~cm7*K+b3Hj2nCKHRT^$P-m-4+aEa5_N5*G%6a-KzNqstQ zpfBKg-00j30wG;93v3X6jy%FW!xm@|{(2~!NP5f}lv6~JGh4~99a#7!dAQPULy%GI zKDi8HySpC<HmXAf^cqz{bwL?4*6X<*YWxs8u?U-CK^z|H`fi81sBk<yH3bAILNUCN z5>3^JfEA>d60LAhy#NKqaZKCG7|7AuM<K)z00%S$c^?bnEdpd34(Js3rw1m|f@l*! z1|o}awo?ED+Al`H^dkiVfLQL|rkW8c@wwr|yMhQ`)=vcn{Yt~JnWMuvg}gCx#eQ@J z@s#N)H~|w42e0_p2dV~Qfxp4S6AY5b%wK@+2DrXRQX0-7MF?vV4g$|bSedahA_Ss< zKvB)N#eoKj8o8mrX(I?46Ihj^Vj%z>u|Fage!&X_q12L<0iGMIk$%*H5zK7UAEZSC znzO1>Sc3$xUhnN?`4N3MLH#aG!P7ACn-Mnp<UiWX@)IFB!+p`0coZ_{WWXPX+?5ps z%jLIEMs)nOqiq%6pY8*+c$KQq6bkHt;any<KnAzH)gRm`1VlFw$OT<mC_m5_^%CXX z_^1n>@5iU<Qx7sDC#lc@BZY_GFpE19Nbv<B-^>EeP_@VN1lI&eP<n061^rn@lQ@pn zAr@FI$YVAZSjs8;(Z&KU)X-Ke&t?#dwdoMYp*a>frP0!?tw0RB5kK2?A3!$|hyl?X z4<amrE$OUISolK`LNy-l%qBgk2+ojf=fLLN^?=4zUNk7h435Yp(P7#K5DL5`&cJce zXhyRH2S;<^Qx3w5`6*o-Y(mmbfn^&71CR~@UqeL)5fxhGv@I4UZdbsm*Yg!Jh1#@Q z4?TdD^et<;PG>Ci^?0D;=mok9bXwY?HvkgqqY#(}ccd+haP_mx2LWzP=wwe9-|jvu zq(;CYre^eOgmS!faPMz~;v~n8De>(uMrN+cu3u<cgu?%#qSR}I-2T96NCF8NGv}vT z*xdrvmw5Wq)(Ym?s)9@(vI}Xb<a^@749U`}Gp`nyTTB{%3#%|0^K#y%78psft2y<y zlVHfRC<)Y!a+(*@IPALIa$egxh*b3X$X&QzVL5y@k@0vK6`!^B&@P7OZZ53FDaZ>} zd(A<Vj$ts=R6D;zJGg=%c4}ek28enlLW?s(xQ?W36d|=bg-1{@&|UrMxHH0joH&@# z9tPHY$SBpjrhU;IW(?_y(E*jJd3iil$Fx}B)~J;vWCW3s!?C@b-l{V)C-QJPJ0>uK zI6+N^5|k&{*7%qk01d=^a)ZQc>yQMn+>3ZR;0PP0`s%r^2-|ANz%Hi*SQ0js4(zlK z7gZc6EiE?f7bg)E6j$|D;BrK>^7AK!z5e*ct(6#Ue2~Xz7%3YSB!+2t;v_4E>);E_ z$J$Vzc>s%rNSB@0H4hHAD#Qn6+U5#eWKNK{ya3*6vrIk2cN{Fw|L84E7pSDp)^h`n zf&`~^5|*YVXp8u1K*-@6RAEca)w~D}%-;fHISIQRs<v$~d>4*MM8j}z<E}5b*eCpb z2qeW3C@H*tUb0t?vu|jJux2AC6cmJ^DNSMk_~V34wCey@kg=HOQ<M|{&uSHYmE{1m z(rT#>jE#1c_lu~N{e~JbC^l~qtSnBPNH(avMqvI!qZl*0lxW*ioEavtAS$Xs>m%_M z{#yM5w~P!h&4pa5o9+%JDl0pmTyYXoh}*uE4U!lMk(o34O#tgu@LoWdzN5pD1+vu= zfrL&VZwfe$b+qLOt<RV#>U0J?a|n2vunG>GGlsKJNM<TWP1pzp((x&a@^~Xj1;}@n zHMR0(Hb$}VLEbTFQHW{`otaZRJ465)`~;#?KB5H*ys3*RVeXU!Z4NuVcK<FM<dqmq zy|$MMJlicZ%PGm&3FaJf1V9^(h$o+D)%MB|cqc1?hifv&dliOpZmg<qSnTB)Ohz<- zJ$J-Lk=vcb-ZaMx4tnca;_F;8)zK~i^oax+J^o|@23xr}nn-I2seGiqQwsO|HIe(B zj*3ujlT{KQSIT4+O@qF4CNud?Dg+y%3i1t==U~Q??<*c^ZOJF}@(B$K48t^RRm9Mk zVvIy>e!jE32hIrCX)c<7rW*js+B~Pil~Kh=z1pFfrdbv?8#4due5w40B|ppbG4D_p z{^Q_J9YWp<^v#9&5@0pglqMA%Za^UnWjvDBA{<<0a$SQ5uWJ!aJy2o?L>@-v?!}z& z%IVk#1xRuHyx|gvS}21focPo^gqp8F{Ip;itm@4>fHXRcqICD{W}=edE?CtU9uF^| z)PImp7^heUCo3;8df+E@U-T+P=>T>F<7VE7FlK2nPb@aOm@TZbQ}@yVsfCX*4K{^- zebZc66(==km0n3Qs>;oR?e>NAg}*Tk1C6WDt;8jVg$!;9mTeFX|4*4J3(NF|y8F1Y zPw;%x%zb9oC!cV0P$?OzLEk_cFM>~XK^`G=4KB&cr?wy(dpnDdNaMz+YR;+efhP&8 zbO#O4EnaqwFeHO?pwo$(mC-*Mys{vaol=;}%9+0rp?l!TSFI%O52$X)-u8joY!*sC zwwr}PLZ~+34{FFZ1JH9?`qpd)Rndr#Z-L)1%8SR0{CXCMU{#v%x3bDFab$<J>fR#5 zsyx9+wS?eXXE+&t(55{gj~>vla$-F6X)i$~dCB?UVWNBnhG;{k<~ZrnaOLj<hpXdZ zUTBIe53$GRSPs=}y*4`O(%~*i$Vv!v#&f4St5d870+bLHch#DHf*J85_Amu}t_xxn zM8qjlx)}o)DA;nm7hpr@2X00NBlqNyMnEA(+u)Jd_qv4Y#rBFw2PQ)x-z!dXFmlbr z{f){FdSG*-{4MurLV+#L3jo?B-(ho|P>TZ3#%K$+V@D}FYEvhKEs6<&sL%rGT*Wa< zU7s7Xf69d&QvpZ`^Vx%;=j~S0z+;JKIC1q;u!~n;q{*25Gl!*7BN7Pf=co};!uj@r zF5<Y5{XT9jpJ`v-y~qd$7oB3=5z+cyCxd}d&{q^*-=o?i4*l+4$9uZY6Do^KDImgb zNBS*T6l*GP`Kl!a<YaFM)Jy|K5w<YYhMEuumM#$ZYaNr?W8rBB+6?QL2{cMI&^FuW zn|Gs0Y-4#8rPXzl#3Ad0ZLv~<yh<1tSb^Ns-&wGTtcN4_f#_HZDYywNfhfY>YQS3H z@B+n#sFnqFI0bR}m4Cru1$KsPh{7LX1Aw@y8d+}oKzOMD8mGHBbVy!#;Mcqant`(x z7|yFrKzVz<N6k2NKy@Rm5D&}n7=Z@6RiwXyz)}3B_gV3b8U>3f^B3FGx*LJ=+*Vrj z*K}{hZjOtZPMu=75|!zDr`k!?bC^<bc@oWQTyW_{E7gKKI^`iqOh-u660|}Ui`%bH z3skrkJhHIBlT|Z49C@n0w^*10n`>+Ic|M|e#$}I-&u*zG)D!Ud8R?(*_~`a_Z_n>4 z80Zg-G91sv=!TRtcKBLthw-lr{90i3^2nU~wP31isJ^=+&2mD|qGr+hHGR`pAr;9C zi~DZyFeqM!_3}}+=*N!8CQY(Zq4=T?t%iwdj-!Bg%@3S4X@R+iB-gfBx;7-!o+@O< zSgk?PSq?T3q=HG`Mdq(?ct_t;uUs_mb18|6f`*FQeeAy*O50m0+5g0mUCoYv^wlja zCJqyx`jCuDzFX}~=Lb+L4MDT=b%Kl}?rt-&eBsAl7?R=AgKuXlm0IXXD5Vm1JZ`{I z;L(O^)Y92ePH!=~HoL@1BCfUkW;T&%?<%rmU&D&C5XVE|k$Qitkm9rD_NZAh)L!nV zSDTec;^@cbazT1ASiK<JS+Stl1@BwEZ#*GelvB~EN;uQ0>Uj)5Tzg-2Q?l~Qky)MI z?BJ`g`p+qDY9Sh;@tzUh4X!Qaq-d(o=l8CL&-;s~fbOl&>%k|1+GGYL*jCGf`Za3( zdbciplDln&k-_m;ZgX_<k*%iusjr$BKa29H@{}xp<U`qCR%E3ry!Wt`zs`Fwmh+KS zGj1iM)ywfX*!3OVWOxzduiUg^=Ue%4m>Xvk5z=uMrs>N1?B{{J=64mX%@otgXfJ-t zx#Y^8nRe!_JK|BN%_(ypvf9I#9ByhObf6QwYld|&Wi^Ov%An)7%@@cP?KH1z)fxNX zr7g7+^Hfe`E5+Y$kl4hJT){N>xV-w9RiYZx4eatC0dHqI?&~Sz_yW<B&2KR$wDFod zh<7jG|I+1g_4z!n6kyN3l^KZmwS5Y@wtO}Vs5W-5p(d}d;q${Gz!;=p^yv(Y%miyD zMu*2Ro8JV)nIrz&misp4(4mXdB$j|5|4|RJ&*DATo&`5#Ku^?rhC9fXwTj0QZYh6Q za)KF+XPi<sTOebh;$^aS_>Z3jDzl3ECLf{4dJYYSSee1Yv7H>t45=P#-vnNoOSE?$ zI~BfDFRj!G2)uvkVcvQCqOd}?w378r;Jvp8X6Lb2VTCaD=}+a}lHKjcUXCT4CCu#K zR|k4Jw?76HR(@}t8Gd~1!zM@vzrqUWi6|Oaetg`+eyt9AedX6?M7jzKH&zZXJEYKS z>{8x-KrI8=qbtM|P~t?4|2WP7h8Q)S>7v_~I0Iqs%m^dIVbp?m@WtFqR(%cPU3~9N zNCyY|Vv3J^c)l5is4<EAbG6D!DrHz_@m76OVFmm?dDID6!aWmbx75@I#Q)`jgRu8w zGhxL+;LRpehiQzh_I0*n&f&c&W0n>wGm}U1$$4)PMTQqx^;ew2U@9Id^+3)vfLqJo z9C$d+G-k<_0Ur++8s7MZFPuQjw&b+#Ww?y#46MBV3j0@*p&6MmBL#hOiAv%ZPgZ87 zyq8hjxO9?5p6F+OTAqSZA8BFdhK)DTU0SQ*Zm}wIj6@r0d^vG?DFpFKA9H`{WH<b$ zXKrG<SyG6uXI58WqND|6J<1oI0lh<qTdQL*m$RG5y1NtkV(W^<RgdGcl{`7pny`+g z#uoETkCH(ZkA+w!W(oFyqY<pwL%qFj6_co>O@MtKqd8rivbY!J$ec&`c4$c_VQI_G zCQgLj$-}A$L0t3C28Ahk_b0YrSuO?QH(&SM`BFA_#tXpTP*mdPTip3xI3Us*JxWrf zzL9Sk(kbz1-Q%X?ZiP|^XWRPJ(z+MfWCoD`U~wAnaw0T2T&MJ2^H+`1MfM#}JGFP^ z1AQi07PFc`@0GAIMq<3sB^Z|ys84Rd@-qhGuz8?BEykS34)cYp`Tec1dWUfElzarZ zYtaXkR+!NUJu=DJ&m%Bjh``*(#@C->fdv?L5oekuA)nN&TevH~=@(g<O*Rk1RtXoA z%F|e}g0oUlY~P1$vBJ=-nQDvX_^p(KS?Ien-`ZksYj&Mfn#CAcbFp57tXH_NqxUbR zr37f?+Lg+eM;3*AR$Ldu`+;}a6pKP2;kATl|MSqVPw_SnSvXu4e%=RT7UACSe$b!t zNt8iTtBXm*vyP+<->p90WfNz~XmU{CDFk`}XSEgnx|NJe5Q<LPI}YZfEa3GfvM54& z<2OhdtB_pQ&U-hk?nJTj=GMMDdhbHCIaALAt227Mw&Wu+{DSx#R}$L1at2sYITZB# zNgY$aI>i_$_1kYcnZkADV+Bib681fM<8OF-UilYUEA#wR?Ke%W6!lU!PL+xgBf`~; zC1A$J<`tbZs9C6Sq>`~)^fe5)aH2G;C8jA2sBy@=f;?S4Y0*iU5J1SC$-c4}!_}#? zks4DNJ9=tLOxqTmU|3!(x4D`&-jUsaT;|&fy{ElHl{M(XvYY&1&GIkPo|^-zN!vr= z&F(nG`DPG>5yg=s&FQ?-LIGS#>c+<+kKetuWiXDZ6<YN|`UD~Z!@KF@#TS0$8181F zekf*c3X1DZrVqrntD8!CK{Cl)=1SILG2Zf>ho9msSSW*YscXE;5DV;k6@e8db7`jQ zDXl^9W*G8MjuVur-XgE1^N1|^{#KQ9ah_!IxeX%%HZG$BX|xd#2|a`qnxI~z{A%fg ziPXfTrOK=~TBTrAneGH<J1-PhwzY^@pK>XH7&1egzL};LO4_)AU*j{aRIrC?OV=O+ zi*E|`pb)J_<}o~Kl+1jWCxvH9N%t^5G)k*6r{~F7LLrs7Caaun<_YqKQTRTq&8~a` z)zpsUPHnnI6v(I^Mhc!%R@pG`fX!swm@=R-f%ggfL`wPloK@2o^y8wjL1IUVBHkO; zZgqVoBLeT}Il+rDGlgU<g0rNFnf<thWN{1iSjg%8wxdVc$0=bRsgfCrAySH~nHvMI zbH!IqHMOg(2443uUjKvEqpV?lEsXMqBs->*)dQ5_c5GwkRb1pxDj{p-)f}Lo^%+eX z5M8=$)%q3ucdYG6_WSKwZ*G;KoIkVMEN)krtSzlHE@fkrnuWfBZmTsg)z&`JmF0Go z57m~sA7(4x5qfM^iS7hj8&6AHS<G1CT}F;uQt}mC@xZYZ<=vR}ImRK^`?^c%MCvuz z)Xr%q!!VozWsTwRS=W~8OKNJJff*CWai`E)<vr7+dw(AjX$iT?y&KKZIGmUTTk&b! zKA2v<MPZ|iX*-X^$us8nSCFN2KeRx9w7E(&;Qa0lJ4IyOgkPNoSA0nqTJ=>KqqzJl z2{|TXO3OgdK_#0D=9Kve=vfqubUq-*AAYj?3j7JRAsd0if9HJYN4HwccdT5wo-Gw# zNA{~(GY=3u>+kD(`nCnzi20qBBq3E=Wylrc-kO=&FVc?NY-PSi)`x7K)5UF>*?nYI zO{y_fW#xGoZOn<>*EqxQE10E+ao_l*vv4Kpdo{d+my$a6Ne?y!t-YC~YS6JI<*3r{ zK_bPLkaXTG(JFKzwXG{gm5%+1t*Ob;(3<LT&p3~t>lR}UVU-rWc5tYAdyv^SNsbep z(P~SigF6JIcTo*M^kd=Dz$@1_t_FU=DzezI#~JTHD5BoRx?YD>6isdm#l1a;RamX9 zQ{~xRyB39Va^&~kur8ZUm2AHUFUl&pxh;+8IBH{vyTrmfVt}FlO4^W5O%cZR^ain@ z@!+I6Xb+Qzhr;w(sxRp4xTR2eu(0kz6RpyQThJ9cs<YY}TnK$~`@N5vqp=8_=SSr_ zF5dGcEDyFpK3<0yf~SP5rSeLtg<(EwXSmB|bVd|j@d~Eu2;BA81$g}sa8=6&Z#T=a zgQQ;f#*Nw%Pmv3{fDWt>_VLsZ$f4)4+AVZmmJ3T|Jb3Orxcj)x`~Y}v%0}|pWxHO! zniEx=aiEK_c$0ZOZsgPj5Rx*N4pJ7szil>%B@wfVm?r-AI+C;5ug}V^HlSu*kF&uh z1E8!7j>}s@2qGE(v~2N^1g&pK1QCaEjJ~o#rzNT(!=tkL5P^$_xI``LGRnbQK>JhD zatyQtx>j1r);SYigF*5I-<l>tX0+^^<F$=oITtZQt*1ucA&dvruSgzIIbqqmRXQ;p zXIxKwu{ow3wq>&<sqs8;$AlirhmSGr591>M(Zh19vHm+n88_G6YeYv=ZLWn@K@R>? zjzv~mB0*u*5=I@;>RwAxtd80=s6tTa915J%gM#~w8FdzX!jW6;YQ6O#JXMqBW(nth zj^9lqL2a|ow&i8+kJ;>9@He2%($tEl+#E-An9QadSXTO}ahy#a*9F;rkf!Y2Z#{KV z%-~{_-78J|>!Tu)K__GIeq9*~DJ|#()mY^9ly$qek6v4xdhN%=A3oe|&oHTvN?98< zM8nA8foEONcDL=C@0)m1qt(4T1nHm1>%|mxaqG}6rVc;66+%5CmCM|`)Kw(WQ-E{% zN!p?TR=Ocg)A@cD4P+MyJCV3f3qs~7%wSRWRgl49L$v8@t5wahI{tNrRtdFK=S6sc zRXT{xEwA2Uc}^eR)>+qkHhW%K5{r!k6eqBaS45vMXTNFOls_;ob!yg*Waa4k#4L5Z zzUM=70?JLW@<e-ow<9C6?oG)+W`9q-K?KafP>*tjEF&V_(j<4+UT~#Q&;47Gqqx+s zDDMODeoxO}efAM=4U?Qg4HVCy8&+87V104+>KKWtuViizYMgM#<c3qAeT-8wDg~NE zC+h$Qqr9<N)tvrrG(h|G$51z2%?S5R#&CDmQOmIf2Hjy9W{!PeH-M2iP({p^iP4WX zR?<P6aVm#=ppI^MpgT7XcYVQ7|4~nm0Lsf)pTgd-;4R9_E5BR+m^l-(r607D1okdj z;ansKcWRQjfBL%=!xU|40KwDL3jF16*;{V?(m*%sa%Sx<GVBI3DO)@YC85=a?UW7b zgg$@6^^bsoz+2na8&d@iYsgO7u&5IKD&Wo~;ysu-kWN`l2eA?i*yCdKQL+nQvz|b8 z@ILz7N!&c7H$K-XWXCi%ab6>alvOP$F_R(G!)Dm_&y)7(etGYO80#|_@P-B<&ij!* zkou%T)?s(u!o*4YgP}U#Ow8P}gfPXmso5ZWD78)ka2a@Ev(@}zL4;767qlA&Z+}wN zo0^dau@FU4G2(beEBeTZePF5?PgSjygF$BkvG1ITzL*{QNNNo2*N;<eMykEZ6=!{w zQ?kcpUs(<(0WgPU^PAXrX5B?`?T;W;sw-F)+|so!myU~zN>X}<1m0Zy%OmoQ7Z;U9 zBR4{tXolI9jEDhIdpwS`r)NVCj225P&=CRyUB63ZBgMO4q4n8R*`A}r^r8fv-9Uj9 zj-`*jYzq0IK0GMLYIh)^K7@5X62}`}3)hof0R})joTaw?2>a4#g{3blTjf&_S!-4_ zDIDdJf!8I7@1t~6!kGtxbWd`GL-K_Tih<e{xU<6a4!CVKWX+ps%?gl{Y(T3vaJCIL z$FMiiucAyZ+JrRfQF*_(3Tha=Pw3703Tq&AdA_Tb^w(SYg6vlMQJ8M&aoYrGcq0RO zkB+W-LZ{1yf5*w8N<;LxnxSIgs0FWEXIHAORFLZj5T$ixLa6FsrR8Mi^4Juq&_}$+ zxWKyIlDUy9!5^pk^vlUeuUpdhXyb`om;}o6Poii`sJS3uGqjVGgmGK3Fn^<Tx|r7v zItRsJSe5EZd2Oe+3vQ?Txpi+6#2!g|00eog-Ix*#<ZwjCNuhJLOqS(He<yzW9KIg? zUAzNFC&7|lg~oY-%qxUJYI>2BucS?ulDfoAc#_O*s+r_0jE+23U&8DhoGz<MIRpX+ zuAVGr=Q8^URh>D8R+&o=x4QHRXYzS}O*k$2S14%1G_5Y}lg(Ka^-1q9?$eA0OZtYU zr}<Ig)GYhf6<uFYYHaB8Dn&!ik~S>r>keG-KJ(Tul5on{Jh*jc7eGg;%S`jy`khdh z)Y_9>$)d6=7<FbJ;JR6^qBgKkBMHuawAwOk1v4c3!#DCp>WOT9Xw!h$y;oV-O!FXl zzYRJAC9P2u(9?Y^O=)!$ZDzvZK~Ecs2xKHyC9RhaO*JaR;%3#UDjGOuB`x*#c3KiS z$?UWhM+rG+@e6=fPxY7LW+3o1DcJP~(Tb@M6RWC{?96?-a9k02SLrKISj_lJx@^C5 zZR@Q<6(`rW<h-DYq%yl2|ICH$xiJ&A>KOW=@d#`Pbs}zLN`qq?56Jye4k$)t;_=|z zC4V>s8%1|xd2Jeh#Cs}w`5b6hj%Y7A$Er?gzZh_as5X~Nivz~fAy$S495m{uP-Vq( zlOo9h#PU&U-CU|<>&$f3{sYk@UvdHCLMXQZG526SYoBSxUgS{;5A%L8nh)i+`23)l z+mR$C^X=m2crP>_O-H8j>GvBsUR16J<t7o68wzLXHqaFRLdgNv!<zggmBlyA!ZEj> zM+bMOKJP0~#mygSE86W8k<w>#2|S<o1j&oDxwdmCGj-zX9+u;=c|D1o(~Y=Tb3=+n z`N{rYtq*8eX6;k=Hg>D&+Ai~VtNS4M2@5bw6mQNpwY4`!)P~#q$?LNx#w0dCYv|C6 zE8Spg2Z--Srvub|qP(Mgg4Dx*Z=GH|*JpaBsiLhA*u}kJ?E%%@%>*n=Se{UQiXm)q z!GBpLq7$%G{H>b`Y7~Y&mryA$fD07%oG9wDsJS#(KwqSjb@A9xWNp7NXE`o$=`?Ab z<AH7Bk7Z1|g)Z1RVo=6>U4F2_&5f%)tI|`5%sHW1@-Am%(SynVE~%Q2l);v+wI<zk z9@?(Q@9YzRWgBh;8=@xH^cdWpoUt;Z@e^}s8f6IQW-4tZSL+<Rt7vB}$~Ve-hvAUL zdNMn?@4@3Bn8!ATO=fRWfZZ1M4V-j8!PkOFdEi-T$S2GWyW!M>)g#P~FF|x!_>jVu z7WVg!&A8lZI^o&iX|9ouJw;m6mxhTQ=V_W)TUQk>-PZCI--?T_gEW9BABYaOu5K`U zbH2ujV{+TA*`<w0pK?LesYZB<bVSR7;-vkMrpC!N31Q~xj%1{H*O3S6<-(5aAfty6 z#CxViI*N$4)BqZ6!>^t_B~f3$)m;4)Lalb?tz_tC9j!0Q*0c?&$wZO+66|bDtG;+O zi!Fp<?s9cD{?BkneudrWUs7>V-F$0*gwxY<@yg-o8_D1}PRY<}D}Yg7I?nMR(b`HS zkJ^yL!|R|_JvpX#%%HH|LI#SCc5FyBP}oZ)2n+bxT$`B5y%#b$;(j6f+-%JckpijT zpPP&X&#|O<-&opJiitBIaV5R&FwUYw<}tpZNSCT_qjhi}Vy0cBWV7rTX3oK_-9etR z71V*;NX4S0Eu^w!Ym!yBfU;JM*QBuViA!GBp-V|>aP;Sl!F1!Bopu{xK6{p*!<Z;t zkSFc#8D(w~0{y<GN%8F@|9+2GhmK{;f*x^u{KrC&|ICdLy`b55lv>E!)L$TP3xVOH z<HSc>JyGTh88h!~mK3AIu|H*uDuD=b=R+;sF)c)0#2B>HSC^fEM5!rH#HCDeJ7k^3 z+WEy8Ufd3E@{DlXWvAH2ESAw}%>8#PT}?nT-UjrSPJc*jGqZe@6^+q5Li260EiZ^N zoYZX*x*G2{4;`k&>9R*n^x|~54mj#s9HYdbEnEB)&d9fZp<<OQNZkq-mcs1}RbeWY z*12vT8{KJO@r2fB8zwc=(3PZX8W_axfeS`u`|28_?~TX(uAUL4&s?^c=3ROYgP1!) z!7!((#UGFE(7>lSj_Y2P@O%KHDy_dsWn%}D_SS7f(-}m|m7%%tQ)wEzvbLM!`_ct7 zQpzE?xx~$JaAus)UH#9UHu8!*-;UXrmVH+ugNe5l8_=v)|3=vxD7EC1ewiOPVP^~l z$g(BD_q7}snUD()_0e@47hObmEShUtBya>zNrh*5oOtha9QX%1LDkB39Vb+{8EV0@ z9aboCJ!enpc3M`mu)Ip&)?S+)zX1i;C&M!el$e4tp7=j!xq02M-z(7=ecxv?!<d28 zryc-Q-`7G4JpTB)vZFM@79+<@ONluU@ce7@_3ZVhfxySfnLy9CEx*qzgU{=Wl>pzT zkE8DgO2>WLSvp$z%iU@RTGQqE2npU9&skQbB}EGMY+l<<e8;gdw)Pivw2Tw8OF+VV zo~!C`+I1dM1dI21^y4P$5_Wkn*{@fouf~fw&mJXa)3dHU>btt52EBNQ#2!YemGzxu zH772o$$$b`|2mDWfGB5Pvh0>6yx!4nZGMw6z53L7_D#|cF`JvYEM=|^iEqEp-lzTS zJ4m=V4(Jf(g<~f34>OPVZ}S~FCb!EL_)_vYTzw5F(V1YH>TgJ&#p)*0syjtcAou(@ zIS>FM5Q?w+V-xzfVddY3q5m?n{BgW6F>|rA|F?~Z>5s4HpZH*YJ8k~c1H%^E1>XmN z67?x>M}FoEe2P*|djEl>!_e-tfO^E$H^z@BaXdtCDza1VDaBR9uf(eD!2Lzi<y*HY z3nuzI%Z6Xr#bKZ+tJFU6{DJd<7PU8j#yYP5-=O|uH2Np_nAy1g0+3Hx%6Sj~*Y%3- z3*sSlB~?Lr^tl3Zzm$Pw5)A}Z?h!Mw_H0F~<-b45z#~KQ)fdt(<u$q*veZ6!ihPt@ zBT{SPNIFroH8o4KpbBAPmaS6lc|c)GRyKkRS!PU%FS^lRAM&Ztzo+z0$MmhlBxFG+ zSr$AG=Q6D%b+u8o0B4_obu(4HAj{nhk}i(Jw2Z>-*Tdo-qzs^p5oKN|a;RY6If4$B z8uG@yeoN3(ql;)+g%*)VG&><_OBuX|iv?Ild=Y`v(C&LCks3(1m<?1b#_nyHJS_=7 z7l$iAPAxxdtWkMK(`VKa9<wvNd%@8=+3E9zu$y*k<%)3q&fN5GxcpDg*#G8vV*YKd z`peB$;&BFNf;#hq(Ia9xbSSW3X^_7BDc+c3ZUhVseZ;pKIh295fPWC}pp|Ei?N1rg z{j5cu+l{Fdq$;LKe6g)HV;$b_LaMUuOu;`nMY(7^3Q`@#ITN324uE2cJG11%H_wLT zBVK_dwLfQ_RD-kX(Wzc}(*95pdl~D@IrvVUqg|zQAIldtIdfJ;e*s$(zgteUuwxSO zL}W0OJ1j=IFzwHB(3s2$RsnuZ%9MJ#w!=0sG#d-1u(o*Omm0ppZ`s-F!FW729V&Z( zF(Emek~Wgbr1}kcn(X0SV6KHfARC}6@i&D1W0M#=;4g&nCCZ=-62XZ)<qAvmJqP5w zc1mA<tAo$8ZNv(_@AESzDZ!u&ZWxMyC>tcZwnY#10jwcAhwg*Pg*S(gIl;q2lns=d zWL=GyyDdo9cF+5-d9a%2xkl5AMYt1x9zBq3lx*XiVe=vyGL5ZEmz`$;w9U%vZ!3@6 z2p4zw5JhW-4;~=uuh%6ws;FpWPCrCFSXV!izP=LtB+N47B>Vpd%KV@1z5jJ)u(JMT zpmIu5_Cx=*%HH~b(rbsk6r%IjKMiEKv1Ad$v9xwkJSZueubaa<F}U#z*l(p*;ob;Z z4~J$W(Ld+eN$PwR?Sf>7M3d&kHZ3<uH?L_#Uz1?;tF}z0B{u3<9Zpt<Keiwjvn8r) zVQvylTue!=^iah{pXR)0;peGCz<zCn;vtoBd7~$PtRt?p&7Xf?pUSU9Ajm?Qpq#e0 zl&{DnZYd)8TBSKowNc4TbE$%D#W(hYa}r2C9(BU<x5*<r@>ZolS6E+m2)gV1Tr*OR z&K7UMU-j3}?Oh$mo<n(Cy6^~i)ErvI)~sj3mB6N^PV3*0_n+R)|BXD>zh)?wW>z(T zVq+^1N_hGq%%ONX40X7!Ab(`qBsl6Ma0^@@tELr#tQdj@4p5mW-2UGL{$mmSC%N%| zq(&AtHjRG;E-x4VOJFlgD+Kd{KrM_BK?q6gTqB^;{%jXRZ|C*}psF1t?Z1KW$7K3X zAaHX0W!~_`cOn0Ne2Dmz8-m?Ihx<8K<-Y$26tJ2T;g)ZQW`~=dzZjSa;t;wNV{Bw_ z2!tVyA;W%ooEa`w&l+wh7ds7QmCEH%I+l--J_6mlNATqDbi?=l8+d>Gu>S-eGxJ~Z zi6zR!gAybCUcdtqg&&Uj@y(|j0Xz)c^R|uTR4XhUpr}4KW3s9C-KOn4Q|JXd*Z`Mj z=}g-p*<*QK($spi9n}J;_{pvAlfoz;(V3EbaINJTcxzyb<ip^LV1}bubdH(vI`M<) z`;rx;UMmm66|aa#$-S*X)!rGd<(aN%C@Wa4<<{OrTeNWm8vz=*A2X9kP209O>c@Cn zP+b}xlrmWU-);fqr~-(azm$CSI7-gYEGRW7Y-YWVrA`bUCQ1;8ov4p7n=Yovo(w8f zlB-mFEUv8HE80h25fkmzx&DT$KL+7{!W9e4|BwR8GRZnZP(Qw@9D~$be@uJjW-sr5 z{D3;IEeygyNyOkB8<K%jigO+&^a{S=4*GU>VD-ko6}A*yLGs?$W`%n-n$4!v$ZAYI z#sBzDMLepq_Y>*3LlV{8l-ZdGJMy)SKj3?gEY}-Esg=twDk*Oy`qfPwcVDeUp@kHj z^z;1)H~Pj-D7j2r8xm};HfFZj(fl3ed@NF-WjZ3Mf_4S;SV<NF9t(P}#2wFSOh*5n zxE1Dvsth%7<}c8PhCEr&6;vch-wMe(qPi?ksp8E?vVVkyCzCvF^5y2<cYezi1=ok( zq5F;!kL^9dOvwW;U1)s(mTA=U80M7CF5RxOc%j$S@Y90AXydT4MVT3X#>tT}X9}6j zXOqbYl^`PX=@L11sQX3F7FoArs)J%N;hkz-k`Qg>NLMbaj%tUndOr$%<@xh%Yj##3 zk;AX)Z*I*$6>02$&CV<=tf~OTIW`a!^Kgp4EcE}%FjKNqfpjJ+DrD)viR{d5A&W@Z zg}{ywq5(KS)Cy?we}m(niZK?zUxDx?^CbTkV<J9z!I)#Q&nf$Nrj%(<9~b=0<LZG@ zQ9x9TZduLcyhK(M(4X@=JH|W*9;^A&Q+;isjHr{;vqiK+8)7fbS#h1s+{4v_fIOZ1 z%G{W6xs>c98X4@bu=#^+QAg>1Lx>!#m5^?6G6V3N%a&R&(~fSRJUtR?9&EgrIjW~i zm<gCl=!Y-F3dIp8(!0LARK&VI0C5bIeU*8^_!ix|TYce2gs(Ww147nPM=g}Rt8U&3 z4EC7QNQkB#s?YLD=NEG<z30-<d?;UbG%x*lvYSqDayZZZuf)Gk#MWC9`;Tc*o{<}F zs8EQZn96_Aw2xWNzbv9EcL{gFCOTb<4p%-j)~E@9<8h#4T%#LHoq}Z+uaL{<^c?e# z%f9zYJMw%7w!L%V`5WT@sdD4^AH2tQ{8s63L*8;uq{l6$SE!}QPY$TKPTau}CSMW4 z9s6`h<dV1@p}qD;q-5%wsHOy*u_H$qsR=zu#L}C;J!nK<Lh^B=75xpOe=3bQnEsOZ zS-!9;{(klVROZ-N*;N6}tm*&`7DY*>eGr%+%?@2a6CPl43T23yl|#h%BpX}UEJ>4S z&$-<Y;;3(Gaz`2z=%y8e^#6y$@=pZ}`(N|?zu~ZI{0j~{K<VFbf|*?U=^AYjFlF&W z%^-}iu(OGprUFNT$amlpvAG-<|2z_BLeLlg2FgE`1I)ic|5as6+5cW7-Dl``K|s3< z-$sQLE<PLZ7oZIdEoE}2k#TX6J)`<(h4x2uzQ<-i=Zx#!bn&7SKz|LUR07iv_gRBx zaKOrV=bZAr*4O4r!BJo)!d$z*79BIp5IpWX$5}GUv7-DH9y%K@$%d;XZy+-#Q-egM zu;yO@E8SXmI(yN=(0XB`z`1r&MVY2Rl&{kak`bpNi(!I&FM7Z*d@oep5|$r&TkMO_ z{8CAbqF0<7L<s>|BFNKt^raw5BdpNPt>8;s5e_xJ!Y4Z`n-s}DDtYeOLc7lMN50Sd z8)&(zO2OaI^-o0%Gb`I)=n_-xiW6aiJL3b#gfe`m^U3#+O#AVTPg>kDj96PBSsNuY zvQGxCDb-<DLR^Rs_8Vr{F3Zp?W|+`SXsKZC12$5YXZX6f{js~_O!pv5EEfpou(o6Q zV%DSX>V7UHCDM#t>P@V0r<5wXlWKvJ>`is^Y}`svS(|OkV$wNrT&Ro`IYoxQ3e9IL zwGPekx)^Gs<bF_!9P199fJn0ORAH*p6QC{r-l;iB!fkGREtiWvYwfb)Le>{ilOjv$ zfI9DpnV+)iPFLRVvIT#Bzqm~8HTQihDgBnD?MKn_i3Yh+R@`z$Vmt3=Y{AV3Xndj8 zfBpBzUtj83{;B?A`d#xsC!1V?5Xv9`3iQf9EI+Ub_%7eoTlyn_K9T(r{313mDI5UB zYYcY=An*2m-BBx*ab%BwA;%Wug|dd-z*Gg7Fp184UfnD@FWWsqlZ!b+c3EsKb>&c^ zvFphjd+zfq*dkQ>LY5aypmQ3^Fi&<X2I8`+3Ya||k&#KLxLDgFH0Nho`J1`$kL4Qc zUzf3*QkR|R@44_3O?MmU%*HDpR$1@SL1Y{%ae%0Zk-CB$<8ed=ZU<5av3Ea7O(cLo zfa#otj&FQ_N#L+!TotVsy*ejT5z~0*-4d)D!<CVQb^`Kef*G94%+q!WQidS~t6{B! z6b0sTH;d^&R8jn(P>w2=ha4JRJ^D1u*o8VrGj|J-ttUC^?g)@5*cxWyv|&kXQ(EG% zGeIRxGPt(k$_cJgOfYTgcWBq*??ata+cigz?i?bFx7(GSo_=s=GK~YrWj=Ji^}>Wx z_p&@5QlvfC<*3N!h~Uauc}Z#9e8zrX1wRYSXrEulXYbx&(W!K4{)WGQD&e^PntA?D zYtI4><<_+#F-Qre(s|>kqh#KBXWkhjD%Z$0O7*LgiJ469V^F$@PRgl1m58r<D3lTk zsZ+V+QjYF-=Y+0`sE&MHd~3gBT*f^A<N2R|o@clByWX|;UVE*z_gZ`J*UDw5mDUvu zl%dqX&E2-XTO576dqvLOQJ1c`4&Sb87yF4^?S!`$5jp|x#`}{}t}McrsXcBzR`Y{! zbUwKC&bkYVap&5@;%+;B{U<D1A?JIv@-xlblMI%~p>U|4jI5Js=iwx(z*U~S(q0Bf z5UZL#mbxx}^ZmlUQ1fRNpVU=U2}{01=2LdE-<IY{9T|)Lw%toSY`@F4eDq(&N3Y~| z6qhEKFRKdPKEM5_{+yHy4skQLKKsJF6YSsZ$r*;PFq<vWUaxPoE_mWs))G18jk%|8 ze5gsc&4_bJ5jDn1N<mhCJv4kBqH8hcsdD~HQGT&=@aI2Tz10pqF!#<28aY=rIlRF~ zS)sg4^|3<v)5i_E#=rcus3gJh+UbsE(`LD!ug?~ja$@vGj_3N6?KwT_fq#fX*=)^E z$LuTq(K&L`1p86<NN}}*QSESc+Dm0u%P{kb-Jy<VmBZ&IoNm-EY1e<)NFSHGE$xG9 zggM`(^xC1vjn}RBs<e584gX*;F?hMYU16ZxE7gKI)Auk}rcW-vrMmm>p1LvGDaxPg zCwwj1u6Jf<`O8C>pUt_(J>2qjoNiIv-*QAVROgO8(EVo;7m!6~4b$4H3r?m$ncBu) z&e~pVZ92|Dy}Sl(WebcB#BTGpW?3c0E*YI6m?{|UXr^e8qO4F|pz}fwEkpHp2vWu< z>~`9th^g3i9*Q-L`POWanzl&P{hqbonH`yO^81$ghM8I>ue8_V->W)q`kjAMI4S4g z&fy6L+Bce~e_FEn-a+HW8-=!opYsUO(>MBYjT*0V4=g-aw4l;F+g!&i^Ht4%vRl6u znbcf1jEBESyw4rQ4t;T+w`1(_n_f}zUu_dl?9Dpf7?~LOC2nu!<(hjsMXv0xZ;i%} zjNN!t)w#pvNW|8;O)rh3MXLX_hh6+Q_w0pI)$~A>=Bm*<Mp<2S&D|8%@~xrUyzJns z$LfoBMYYdz4!GDvXH+K?$Jn)M-~DJg?sSW~ep_{_ujtMOn^()u);_b!{PWvSEuEU~ z34(2M_&8KAjlmx1rosNV_W<j|JmvN11gq_j(^FjXV@~AFRgRjblvOxl?5z>>Ag2<w z+1{#km1|zJgGsGsrHB}>^d|o#j}65Y!hPa)e|Go`wbNtu1*4*qj_Vy6ZLZVs{#dgp zv$d{kUg+l)pXcSZ9=KV4#qY(aErQR+t?U1-zhL<@zfHG&gYO4y()lO*Y{99F7h9gx zEoUB4YR#JT{`-imaPuvLN6H$i14uArTx9o)V{G7T({hAbbKUy)oIh(bYJUX%d?4ML zZLO7*=3Jc=Z(g(Kl(C!sY^Rm+rSUI<{n$p+?dW^Y8g<sw+Ba-}sonYPUUI$-E5)C? zQH?o0d!qgwCw5xs^syyJo|ZBHqY)%l^opOH=Z)2;`#d<0iLPsoSHGG%_ICsI`7X-c zr$wC}Punafg&f<KB>s@w_2N_QpEFBcEqB?LT<S^)2+K65*@oJ$?nn^xD$Z5eq~B8_ zEfoU_6>=M*yEy*y#CkFB#%^z7WlXZ^zF%~`MKM0X<C7fr4Am($8)zBqdXM>ilr~Nk z9R6ir{-%l8{HLLACF_dJwFu7!-qv`fL+U15J=>L2kNc2C_8vPAzB_(4ctynKm(iX% zpF2lRcZ-Y+v%FcWCy%b7dVjKKXY2x4bZ{0va*zGixyie?TPI8z=b%u2<3+6M%b2Cg zb0-`#8<{&beujoZ<!g<pau_mX$B7*1YS<+fBYm+AUu31KbynqV-t}8i-C5(h<`;x0 z%#1%{<eB}`G=t2i5BxvjYeyY+G4e8bIQ9JA38IO*R`VJA*SIorj$b&M8h^K?=wx<L zgkawtVQo#trjP!MnR_j-k#DDcaC!aZuth=EYwsgx)RH#LEi^mm=+4-1X65GN2O>8a z92o!iY`uA@#)e@lgK6(N^%Mk`7Z+7Fjd(VUvsTV1hw4x<WlsEOdT@9B%uuiWPTT0C z(9+R<XtML&uiawDMI%OJ2i96Ni^^<`Hku?pSrE|pz+Q0V+J`eaH-2k#cv5A)EuhM7 zS#|QYRkkM0jB<<e*tREM^d@(mx>21!vXcI&Q_t&NmTIka<?qabvgy0ZrdQ?pv>0Ts zTjQBtmi6<)rr*0~SA>s?)xB)!e}&%lD#vim<#fBpmVze*-kQn6dHb}J<K7GFYMY%} zOcq~n>cSp1=*+TSy*TC=9#y&4bQclCw+-N}ic7Do_~+%re`P2we_hE>HyhrSI{ljB z{InZ^$FLt&Z>F3eMrY=}nLq8q0-dP0)ywjWOAk5{-ko*{H?`|puBCpC+E3)%oV7N2 zY=*1d7rk}ol{5}Ey?qpr`kVa)?$sGa>)DafqK->xOEs&r92|7+l+av{S7|#vO#YIV zkaqiS?T5coI`uYn4`Vj2A0|gAL-o>R4K0)HiMGzewK6le$~nz3xv|;AP%SZelBtcF zFCMfqFx^M6QrT}Q#=uH$D~P^m?UqB!Q2jB+z*)dV^Dm}M+s0I3LelVeavC10H^E@a zSe}2?YA8)nw`p7WT&qKGc2@koLl1wPX~EO1tiM<p%xcF~PJQfP*H?VFb*zl@gMBZ@ zcb~~mCD9&Unr{;0OFMMjh4_N<-<CS-+wki4*Hk4F7bZSG?-F+^aNokyagi3vn&(gO zb5u5F1@YdRw5wlR^lQ;|jX8-<r=u<{y1dES6Hk#dmLYp1tbwl4%mv&%idHJMuXLiV z!|$}^)$Z=>enYDn7Pr*~GoKmeUg<VEc}7D=)uMvuZK>n0MqNGnS53r3UG8Wdhuh;9 zx}02II{DJb$Vr0XAJa*bIK39dIleSbbl4i_%17@b^hl+34+7i-?!=67Vb$d$JR=@f zrIxv6?ofNb>`#rV;xYI6<J14WuX4v0LzgKY4oBZk&0<<5Djm;RaD3;aij8k-4G;1b z8Ln3Uy3FaxgYdC+6Iio!b1b+S^A;bdt*%g;G4gxq%`0{bC*)X+)(ZXOiOu%|@0vLc zw~O;DK7IK${9Gxnv!wlH;lxCj!Y>?p;}^@OmacD#Co{Zt<uGulZU{N>-jPYd8t-0T zxUili*o$yd>72$*XB`jq;=kW5QyKg7;j$5)s=UqV;iIRA!*R^Q6ixlXeUn3V3^)V( zCU@ka8w$mBne{5{B|dF?o$O#ox!zTguCJML?CSq$l*Af_Mr3`vWw^Z9*e=DlF7|m? z_6i4vz2!;6riSZo#VbN}wKmA1XQ-B#fRLK~ckHBltp*sLi>qk5C$)!f_B-TtDWW?d zsD2i2Ot<xtsw9=QS=DvMZ=7bEJ8Pad{Ugsn?R13EyP7oY(2TaDsps-;J#6#|oiO#+ z7+sFfYvIlbr1*Jkrs+QG%@sx;QrAbUdwtnWZ_R2wQKZrsn`$4`)g`(vOA0IwC%O)6 z?A}<`I<xuco{u$$CU#9c@czTB{NU%)R!17#66p|k^I6x&tBkdqY_ZlZGqf@Pe$+jd z)?I;`Yx1yM*Eu^zDfk%tx-{lpt}WN;_O6V>A*I(lHRmdL%DG4b&#dnT!kQP(r^1** zjL_9QuLw^F4GJ+s{dpo3!89CW^u#l@3x;r=C_t%&1&wYi6bSezd?*C}^v1xZ(IK3u zFN8&9WAsqINEqUW!4#!O^F<*TJtP>Se2Sw&Fwi=>078bszrsj923rbxI6smfjIp6) zMWaJ-QV5A^i@{MQeICYPLU>e+11&mZbQjDFDtkzxmttH%SSjN92Jpp!e1RC_0&35* zNVv*hOr!I{eT70_p~yEP2%|>?`|(BLz9Aw$#^qpi9>(QjbYF~tLo+~{0Hd#h2cSU+ z8N7lj!9X^IBxTX)KrQe?3=c4%NNhQ+CsJ%LKR|cr_Cis(81W1kOGn(amc&n;$-oH) zHj~9>Vhj$Kg)s;?9)dus2*s8k?kf_8ibF&g135_$GZukecw&)|ioI%z1A%B(;k_lO z>dfou32n*fuDl=^L7(JkbkB&DVk(p^3TO*_k;Ju?NO-Z(PwWpOMb01<YE}BlN`EKK zD%=+ZdF2wo2^(Ih10Qh|DnKuiH!}$)2nAxet_layOQ;^gcx6ci=|Zesp|4f&sz5%5 zL)=;38j3(*2MdJlDdq=xp?>>D(2r&GCB1}!0HouPdb!>h8^`}Y67B!m4inUc1@dFT z7Yk-^k;i7TX<S$%IpFvc91>%~(GW@`(23q7d?suTshr6{`2Sm?N#8R87bVn&G?8HH z88~8q84D6L#5Kb>9C(JAN<!xxlwdXzT#^O}<{ukoBQyef%7KZ?fm>uY4rP?1_e@Ce zT@wfDqc*u_T*xIblv9IYa%d<=M4&;T#0JGibx9bwqz%A@eyK8(1&lDG63O9GITx-~ z*Z^lU2pFKGUl#OB!X#pHQ9Tw$LT(1kLOGQPgvX|sfO6D7B{al9paB?4Lw%A^hhmD9 zIFwVGhI(S52OO~ok&T9ia!8asP<N6<BYR}l+mxgL1WKA9V8l?3L{tIgs5(*usko#$ zh>RvBgld5WiyjP{A|L5NZ~F)fjfqkwXbC;{wt|SlaT@imrvWaTi%Anw1c?qHJs6lM zUV~mBo#>Y+eLy-PO_Z+m=mgS-{t3}VJwqEvH>3%ToQ;zpL!cGufSkmI1)b6hFfi<X zNvadl95DstPNQ;E?w2T8OWq@#-h}i5NfqVGdl!fP+W{+#`XCPsiZ!gv)N%;62iS=g zMleAP<Vitk9!7n#10_ccWK6-FF@jn^Va38g+!V|MBal%AJWmWnPn8y81oHX;#slr{ zDfP2U1l1c&YPl#&28%9LqrWx7s7p6!#uwB{@|urqE`=xn#YZKY#HIohBw%D_fdkaT zDp*-0B_Re&1qBPjKz39q7^aq_6aq?yN;Jx3vwHfH+Vh?cMGz2Nf*y{+M@m!^5-Se( zMv^C~D?l|R#^4Ttf+H6I6p1SLGs$q`K!GAbl_e$0Z6GDx_bu-IZInGs5J}&C@6ogL zvkEJQB=Wfxz@+xNH+DPSmj_!lWVWpcDH?bJ5;M~m;=LalQ;LS0f)gMQ5xtl_8#UTv ziux&A9}r2Qhr~W0;?5wT)R0l}+e0G29s`9=LO<kgQ6b<xkQ*VPL=winuR&PsdRwI1 zKrD5!FeKO(MXmqE)||i@TpYZ72Fc_Q?3p-c8jephrb+O?75OEICk_n^5eEuaVuUHf zlrX{k#o|zNI=%0OX^3bQR003cFTxk%x%aOV>L<WfBF`+?Pg38wA5+$d_yQU%j!YU@ zr=A}e9}*N*fc3)A%tSvdxCchC;F@|63`cyB!Nb9EkcBZ|;gf|C;Oz~9q1lRlz5PNN zJX2X16Rd+QjKD#!(XY2IvMjRg5d;bD<v=_FZl?#q7|2VI!DEta*|9+%Xg;A|zkb<r zXyKxXJrECgDmxAaiv<Q*7LNnQKo-UwBqIii50VjsByd?CFksCe4CA6Tcp!aXKVZho zz*uN0l!1}3MUaJY(E2TdXGRVh8wVZ7%iwWX;Ec$^kVhZ`Gs6ez5W|cCpFPOpk%M_^ z#zB?_{rcp_#bNU#3nK>U0fS2p?t?35yj-(EGAD54;SB790I|uA4Wx#4edyOq9|2Vd z%_E#UNY@Akfo#~ox(wzZS;F-I?8Rj8K)n56Vi8Xm$QM!nRfl7+fZ9J&mck<>1g(cu e*;5z|JIS6qcb-U0EinX(#b(fqjO^U(Y5xTpzIMC- literal 0 HcmV?d00001 diff --git a/CoLo-AT/colo_d3.png b/CoLo-AT/colo_d3.png new file mode 100644 index 0000000000000000000000000000000000000000..1b5596b61af2e3366c6e549fa8a3e1781e214df4 GIT binary patch literal 1274 zcmeAS@N?(olHy`uVBq!ia0y~yVB7%23LI=ek*gYNnLvuA*vT`50|;t3QaXTq&H|6f zVg?3oArNM~bhqvgP|&i(HKHUqKdq!Zu_%=xH?gE3C%+^oGfAN=wWv5VKTp9(&rr`u zM<Ju6q`*pFAE7`mzbIYbl>6riphe-HE{-7;bKYKc<YiD0IACyK|MSDl@|%`~Zn*#L z%o(PJ8K12g7~&)(7(Ch7940j~PDn{$P>~$vj)ul)Vi?T}xQc>HtfqZzHisM@7XZsC N22WQ%mvv4FO#rjiDoOwV literal 0 HcmV?d00001 diff --git a/CoLo-AT/colo_d4.pdf b/CoLo-AT/colo_d4.pdf new file mode 100644 index 0000000000000000000000000000000000000000..59c75d9a449fc5144f77dddea4194bf2052e6b65 GIT binary patch literal 24832 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 F{sZfvP7weA literal 0 HcmV?d00001 diff --git a/CoLo-AT/data_analysis/__pycache__/data_analyzer.cpython-35.pyc b/CoLo-AT/data_analysis/__pycache__/data_analyzer.cpython-35.pyc index 66602b7cdaafa5773bc1edfc762f0b78535c5c2a..dfcd316fc29984c347269f77a7fd5c413093d7cd 100644 GIT binary patch literal 7519 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 delta 2579 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 I=+Jxr02CnZJOBUy diff --git a/CoLo-AT/data_analysis/__pycache__/realtime_plot.cpython-35.pyc b/CoLo-AT/data_analysis/__pycache__/realtime_plot.cpython-35.pyc index b1e353177970a2d22a0aa09fab3db2049328c9f9..fdb509e8ea38f6e74a44a8a0e3b1d91533e76324 100644 GIT binary patch delta 133 zcmca^)M3OW&dbZS;`O7L8A=<ue(*ESnanKU&uB6^SincbltHqYk)f8Gp@fYgi-)0x ziy_5q^JanbOiJbqDf$d4%nT{U3@LmJ%?vDzASH@G76W4n14FQ;#pb=jJ&cpfMGYC1 jHm?-5WZe8hOpB2*ZnCgM0yA4t|KtjZ35@-dIVJr7Dzzej delta 214 zcmeA$x^BcJ&dbYnKk#zQQN@j1KlmB9PG%PHXSAFgEZ`$z#UR<t$WY78P{PKL#luj; z#gJmXd9%QICTkmp6n%yiW`-1Fh7>-AW(F2UkP<~8i-EC5o*_$#A;p9t#grk%j3LFG zA;p5BnURSxg@GYh({}R`;T}f4D&FM$oc#Ed)ZBc%^vtwdY~@9nC8<TXxHEGT(^G*s zGdVkoIjx}hr40iE!(;<dLq_GzNurjFY`0j76U$OJ&lb~SWK5WROgw>=iHoUd@?=ek M35=5`?~?EX0F(1OVgLXD diff --git a/CoLo-AT/data_analysis/data_analyzer.py b/CoLo-AT/data_analysis/data_analyzer.py index 1d5064c..a7dcf7b 100644 --- a/CoLo-AT/data_analysis/data_analyzer.py +++ b/CoLo-AT/data_analysis/data_analyzer.py @@ -216,7 +216,7 @@ class Analyzer(): return robot_loc_time_unit - def algos_comparison_graph(self, arr_loc_err, arr_trace, only_trace): + def algos_comparison_graph(self, arr_loc_err, arr_trace, only_trace, graph_name): fig = plt.figure() fig1 = fig.add_subplot(211) fig2 = fig.add_subplot(212) @@ -225,31 +225,37 @@ class Analyzer(): fig1.plot(loc_err[0], loc_err[1], label = loc_err[2]) for trace in arr_trace: - if trace[2] in only_trace: + if only_trace != None and trace[2] in only_trace: fig2.plot(trace[0], trace[1], '--' ,label = trace[2]) else: fig2.plot(trace[0], trace[1], label = trace[2]) - fig1.set_title('Location error', fontsize = 24) - fig1.set_xlabel('Time[s]', fontsize = 22) - fig1.set_ylabel('RMS[m]', fontsize = 22) - fig1.set_ylim(0, 1) - fig1.legend(loc=1, fontsize = 20) - fig1.tick_params(labelsize=18) + fig1.set_title('Location error') + fig1.set_xlabel('Time[s]') + fig1.set_ylabel('RMS[m]') + fig1.set_ylim(0, 0.5) + fig1.legend(loc=1) + fig1.legend(loc='center left', bbox_to_anchor=(1, 0.5)) + #fig1.tick_params(labelsize=18) - fig2.set_title('Trace of state covariance', fontsize = 24) - fig2.set_xlabel('Time [s]', fontsize = 22) - fig2.set_ylabel('Sigma_s [m^2]', fontsize = 22) - fig2.set_ylim(0, 0.1) - fig2.legend(loc=1, fontsize = 20) - fig2.tick_params(labelsize=18) + fig2.set_title('Trace of state covariance') + fig2.set_xlabel('Time [s]') + fig2.set_ylabel('Sigma_s [m^2]') + fig2.set_ylim(0, 0.05) + fig2.legend(loc=1) + fig2.legend(loc='center left', bbox_to_anchor=(1, 0.5)) + #fig2.tick_params(labelsize=18) plt.subplots_adjust(hspace=.6) + plt.savefig(graph_name+'.pdf') + print('image saved') plt.show() - def algos_comparison(self, arr_data_recorder, only_trace=None): + + + def algos_comparison(self, arr_data_recorder, only_trace=None, graph_name = 'Algorithm Comparison'): print("************Algorithm Comparison***************") arr_loc_err = [] arr_trace = [] @@ -260,7 +266,7 @@ class Analyzer(): arr_trace.append([time_stamps, trace_per_run, data_recorder.name] ) print('Plotting Comparison Graphs') - self.algos_comparison_graph(arr_loc_err, arr_trace, only_trace) + self.algos_comparison_graph(arr_loc_err, arr_trace, only_trace, graph_name) return arr_loc_err, arr_trace diff --git a/CoLo-AT/dataset_manager/__pycache__/realworld_dataset_manager.cpython-35.pyc b/CoLo-AT/dataset_manager/__pycache__/realworld_dataset_manager.cpython-35.pyc index 401ad6cc646bff1fee55da87fdee3ea78068da04..05d541571c3a1f104bf21d05dd2af9bcad2fc929 100644 GIT binary patch delta 2348 zcmbtVU1*zC7=F+9<^N~R+OFyPW9quKi?dlryS6K1Q;d_kcIsLTOPj^4Us}I4Kh62R zc5O_S>89<#;kM&MM9|%cq9~FZL71p`Aqd|10}*zih={^KRJ;*=-;=f}Q?Cp;Pu_FR zd*0{$J14K?KF+)RUa#x*pT3<s5PR1(YGED`v3xUd0U+7{+Ah$#K<kDJ45E#o?FKCf z+Ff$G4YWO=-3_GK1X>S_2Sep4>qA=`D!z0wVJz@uI+-!!TEa|J$~T(AjE$Am=5eK@ zK=tFr9~vqSLt_9sKv4mdGzDfAD5{|0*CJ&LEFEShKmp)1gYyi+u@IX=B`Xwda#ewg zDl9dzRdsDjsw((b6=<Ggz$e*~2?Z5O;aCbTGFZW{0xK%aAc++;8$44rZ-Igpwuh0U zXa~~@1v~K-9bnqvw0(W*1k(YU9gt3QK*0v9=(iIJ4k@^x;DqxoV7Xa{5U&LtMp}TC z5{?aC_a<IEyw2;Aye`S>Ugxb&J^$bZ$?Jwy6p+_b<-G|JbPa<a#I)p&KqMD}h~|Ou zQqX&h--|iV`x2Sig;aufEGARgY294rhjE$TgD{QdkRK|R6-NUO;}F8EOj4{Lij1sd z)cyiS4zS&#&RHP4hgRpTkWoNk97}_0xOqi^oDF+~@sq=7g>OX&D!d<mDlVQqm92J4 zP_1~fS~k9z;CkXzDp{#B66yJro|%o$C%K;0`1JZ|UQg0~gs*WJ<fs$!gW|(LgBWXd zloFXlYT3|@&_N6?kunaUpd03NHa&kRZ!`6Da=0V!l++y~;o-bBo=z;$k6~)V|3CiH ze<tAe_&KH&C~&$qGI9)@<7I$<3-)F$Sl&nnUHllS-cN9xV2t2FY%}1G5I7MkDn`Y_ zG#x<*dU+?wL=vrA&s3ZzjfIpM-KYTiVMM)~-7<JHor}>qI~B@E=BffFZ*9fYqK<U3 zgt5>jiYU=;RU$uR@h$u`nR=X{7AzID;-g2yNSg6=&pyLdV<!SAHpRm{N*i;scIIVW z%){!Gpi-0S)qLmiNIWb)3Di*^*w<``iI(fW6KH`yKoBB`3f9&l0<Bxvk0R7MezmPt zyxdyHeim=FPOu5w46$3Hx9tQQBSpVw7G2U7c*4}PnP1R=Y&sA(0xjapwn_Gz*w_BH zuU3tRiDOdSY7eoPxYE`j_TAxUe~6Jgeh<`?qNF4>YsH%sCj%|MQQFx^H|J=gS-cu> zu)o9`f$wZ`ds1BO*u@sadmW>Si<ND6I+<Hq+)jr_Mazy(_ZbrX1Z1K?OzzmCG%_)_ z<2gU6236S$6$ek|;^s15vom6AXQ$H6$^)HEDq9p|UF|+;bdrpW6HJMG*Fe=WKC{I1 ze%C%G?O*NQ#&(vQy5F?A&(hW~L8I{Y9k9`(!b`&4vom~-#3u=498DzA8^ezhOc8Vt zNXl-KWP>|Us#x`mmR#b?!st1;3;%yGFk0RsJ5A5bFPL<T_|vo_y*nem=;?RIY5o{N zLNtU%m?mPOKDH#Tga+9}`O{D@J6dyCUY{XU4qEs*IwO6R-jH)ad-Vcsuy1A~^-D6< zk=_>eTABA=R@hmg_T5*KX6YHNJ+%`@g6`WXWF}-{YUyy(sUrl>6Hpm~zM2=&I(pLL znm#iVPw8ph+~m=-s2la-b=@1UrAM~KB{H=sF*LnQfd7TmFTeI3X77~y`^Q<!Ia+yw z;01ye0-2AZxW2#HCNq&2AM9@qP~xNB#Y9Ti=t-H+X0)|B&>7hzPW#%%SE7F4TI)ur zL92`?YM(XZ6c0ZuJ{lNiKZrjO{bFcv@1rwhBt?)W$Pi=+<_U5H2Eii1GJ$luNRo6~ rrtca}Wgst-^pc1T`Nijht}VN9>QOwZ$5(&B(=NUr9ApvEKJ?VzqcjN6 delta 1199 zcmZ9LTSydP6vw}B^S-WbZMmk@uB*G-xTUF;vYHl^<%LSNP^ZhZHKUHUw{K_7q6|u* zp!=bhAPjm5f-cNMKJ*ejRU`;SU{6s*L_Gx&71Vb=!(DpV-<~t)eCP6?Z=Rl*N)$M4 zwt^3zwEc&A9~N|HQ3AbLZ>v==nV>{=5Y<OiKT%f+cPUXNqE?d$LgZyc4Umwu+8oN> zwb&usBU(6_Vp>Ft8j2b=!m|0iWGkgzW^rlA0^e3n*?S2gY&)U`(FZPf89a6s(HHQ- z6{5SjFVPw3aPNVY?sAxRFQv2a(%nzHFtey|P~(+TENtkp=quP&F;3sWOvOEWH&)w* z*oo+e3!WOf58kbFz>LR9=isB~yDOd4w~)CTt*-eqzbeb@ooJRK_92EviKZ$WeFyDT z?{h@BA8Nf`8iBpuZp#;9-uC8GtEjjfk95K#U!^sMrZZjQhp));oj{)dvJ+FKMXZwl z&E+vIp%};G8jE2kSFypuM@BT3R8n!Sp!SC+C9^n)#Ys<iU~`!R*820!-~O)_8imi* zE9|0kKhI!22pOD#4fE{{^gE$1P)FzYxEWYRb4)XEH=B-vQn!O1gFAIqTgNc(xJX8n zARLGegp6<_L=!(+Lg_qi&1LIRRU2aou-CVEPhxBs9~a?OQ1oa#WhkRz#!g{G%oBq| z{W|Lb^baBwcu?O#55v#;1{#N&hDN%<9B5ceyGAh@L>xmjaY$J#J*$`ohm&%JmTaMW zW;Z-K$)#OG&zZ&RuUPovw;H#c7A0FT*oN4|v8P?K{$F0GAl`Xe3M(FHM_fRl=#o7> zfn03p5lvC`fdS>H9?^}AY4|roWLr#))n-T|ZptK<$`A$JbBJ-oFkEeFqgTz@rVuR? z3MBFICB$ij&>{t`!O|R|0)zd*QWuIY+eX7jbyZ<nG9HVn|K0(f5mzEV_g`Qd?gy`z zFRUtMi;d*mK|{fP7{4#gLHZ1CaF)R9=Gq<=i)e@e#2{h_p(92RQA7eE=1rj`<`v3a pL|5!^1+8m9H#$pL1-BdcFX`hbv=lBXv@bae=UW=-UU<@S<}ZU`C~^P* diff --git a/CoLo-AT/j1_rw.py b/CoLo-AT/j1_rw.py new file mode 100644 index 0000000..acce482 --- /dev/null +++ b/CoLo-AT/j1_rw.py @@ -0,0 +1,14 @@ +from Cooperative_Localization_Journal1 import all_algorithms_comp + +# for all colo datasets + +datasets_path = "/Users/shengkangchen/Documents/CoLo/CoLo-D/CoLo-Datasets/official_dataset" +robot_labels = [1,2,3] +duration = 180 # duration for the simulation in sec + +for i in [1, 2, 3, 4]: + dataset_label = str(i) + dataset_path = datasets_path + dataset_label + "/" + graph_name = 'colo_d'+dataset_label + print(dataset_path) + all_algorithms_comp(dataset_path, robot_labels, duration, graph_name, robots_cant_observe_lm = [2]) \ No newline at end of file diff --git a/CoLo-AT/localization_algos/__pycache__/ekf_gs_ci2.cpython-35.pyc b/CoLo-AT/localization_algos/__pycache__/ekf_gs_ci2.cpython-35.pyc index 644e3723232ce5b977d0f3d3d8841634c8166d5c..0cb9c6ca7d16d801a09daffa4aba2705f19e4f68 100644 GIT binary patch delta 25 hcmdn1vR8#&oR^nt#p_2K+3UEO8QGXNcW`fI0|0712gm>b delta 25 gcmdn1vR8#&oR^pDNNMy&_Bw86CN{>+9o$>l09~{O=Kufz diff --git a/CoLo-AT/localization_algos/__pycache__/ekf_gs_sci2.cpython-35.pyc b/CoLo-AT/localization_algos/__pycache__/ekf_gs_sci2.cpython-35.pyc new file mode 100644 index 0000000000000000000000000000000000000000..eb0e1dd3c13bd7aa7155d791624637cefd5d3e62 GIT binary patch literal 5880 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 Z*%Y-MySjJadMf1vJ^1=_xCVLd{{X`#bIbq$ literal 0 HcmV?d00001 diff --git a/CoLo-AT/localization_algos/__pycache__/ekf_ls_bda.cpython-35.pyc b/CoLo-AT/localization_algos/__pycache__/ekf_ls_bda.cpython-35.pyc index 005931bbcedf15b2cb73c58feec0bec63bdfca66..d55b18a6c0f4845020d49f3c19a74a7cced17cd4 100644 GIT binary patch delta 731 zcmaKqOK;Oa5XW~NKhiiB#R-%aDdABH4vj1juOgLF($XH%9(V|WDj7F6sZA22u_FqK zl>_3!k-hN=5VtB<#F@{q+_)9aoMFcmRp|lC``elS?5_Sh+IO`dwXq4qD17|+edE^7 z*i%|>+7DwNVmsdQd+q0LuiX-Xy%e?jUB8#ab|Y#=8S0A<>`_Ro(lAd5QN?J85w8gh zDA|xnDv>ltQV}S`qhz3va;lPqkWeHt8L0S+!o*wY-{hG@Cf`t!YGk01`<Ap0N5!F* z1SK(XB>}hPTX{HwSpg#UEmxChz+`z@M=OMyv_R{ld-5-8o)$SE#P+?IJyt&zp&}$s zA91?EnW0^z)zO?b%&lfiOi|nYEk3w>aO2_FfHOjZvj_<xBNW8+d;L0{VLRrD>UqpB z2=IIyw7aeoZNhQXW)T$@=?ha_^ZZWYI@^DPS6q4RY`F<%Uv-zxk7~tZ>JYu{X2+wg z|9jI9c*Cy2IYbdLjX31@3TjsctV-5am_%U)F@-oOz`mIJaQ`-N4fXwta6Q@-&&COQ zp1%z@ur`O-YjeouRVN5x0i}7wO@Su{_+G!|drsCESVB$f_B%=7gm4>|Eh6q9@NL0z hcKf?*tz^*-ds+HCehTGFh!sSWHOjM8WiQGf{s7I*m$U!? delta 627 zcmaKq&r2IY6vyYq{b8~RwpkTTAxX7X*W{pRN&V4kZHxBOOAm!rSXZ;?Mx*euf|kS_ zddqb{(5tsXp(Tf2{2%mInEycUJ-6?rRK!CE=EHZs^WN~@%-oE(#^e2|RN`2@T^;%! zUkAvyPaqe2X9^)Sny+crMhJBfYno`pM59YINa!LGq5`6>iO(P!hNv6jg9GoK7}^xB z^a%aUz%gY(o07ivCT@@`APqh3Z`v<N=V^ruO8Beg593QhL8#!Pf@N1$%>rcGr)INj zr4x{*;OpNsaPn^2eVxL`WZ@7a#^5$kXAH}As{|wRp*@g$%El-`b=ShJs_*S@U_W~W zMp0f`3mMle2fLB)9sUzXO8?|-`;jZhl0MA0Tgg77nWu#7&iP!||BJKk6vx+uPZ&wY zFymgqQ|wI>oGkXR9%S%yV21ICAhWjByzK^`v47i$vi3J>0eazHIXJ`;?>%P}2?{E% zw&H~qoMUU2F+*@u7?ck-gR<AT7+hq}tRCz}p;y6q4tv3P$yi{#>U6&(zuFG$$e;Gb VgB;rv4E{j4EYEw3pv$Y?vp-KreBA&5 diff --git a/CoLo-AT/localization_algos/__pycache__/ekf_ls_ci.cpython-35.pyc b/CoLo-AT/localization_algos/__pycache__/ekf_ls_ci.cpython-35.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b6d54346a32c9a8b6ba2991e85c45b9c565672b3 GIT binary patch literal 4280 zcmb_fTXP#p6+S(q>qxd`XKYDvb_pS{h)rVH3Qz?ucDDlTrZ%{?Dxr!}Wov3IjpdQ0 z8E?<XIAZjah2H`%`~ZGRKXG|V@eg=ezSBLrSaz`mtfV<Q-F>>}^tpVeyScI9{PCZE zfBBaN(LZSAQvm+~p5zOVK7N8mL|vhIi}|rdU5f;d*}830*Ea0}jS4g_QnyIs5_L;7 zE>pKm;|g^vMxscgDvcfLI%t=uUnab#TceNq73x>H0U9{;8jIHX<<C3L8)!mD9id8N zKb7GnbE7cwM}tm5*}XVXb`nOa=%;@4o+>1t%M>Cz!P$uinb<p#{y6w;EYEs^SHg$? zi+G;kNqz{D;wLC0dMzlma;7%0mW{<QI`M<t^Nu*`*wVsuSzy8|;>E@EG)VnFk#x}h z*Cz+RP6C-6B&R_%IP;@H56r>O<KAQ(L}_yHBz_ia^6<kK2cx*>kHV>+hH<2IPY!q& zqr~flkIrAIvW!!2oL=(E3BQ<xtb_KLoqxFh13bxZK!UmN;4)aVZ)tnm?7DtI^9AY` z39ev2fGHC^!91K(rM{zibk?X}*F5~RfxU04>MuU|rT6T)_vC3$tAe-jzl}%R)dd5) z4z*n~L9b2FXtP<ef>BlRyf6w=&+Az5TQE9NRqe3|4%6l{qy|~J3Bpgl@9ECs^^fMO zT+w6U-}{(^ts7OC!V++?AQw)A9a0<K6z=m*;b`zX_s<{wZTiLgZ+IuF*iT=b2M97N zI@f+ym9P)5h3P9*JQ>A)+OgyoOFGeH?8*2zPLnmg)vYA;)4;p%W#~t}KyP?^Wgl-X z_i=;dVoPkV5*}^ZUxC2}UKVI((afe982ApBE|NPd&COn*ti(SIG=GmRuQpCBYGePi zGG%4B(>ju@6!voqe~4k}_kvC(-<{r>*GGaWk*Ins!w4bHQJSc75)Q_`m#AVG^@B?# zLbau5dyDO?o8)aod2cdev#d#K6LH`qyk8PK!VwR}^t($N{pYDYjz0bX)|TdahJ4S> zHMbRvlv(r=)+^JjLRp1o)j0}qJh097***^22l3LL)ih^=t7}eBJJS|EG=J^chIT;- zF4&~ZrficZvY{DLHh9&nPHt8sx4Alem^W-{&gC)rM)`%vVTR-^K$k7{Io`xC%iX-% z;J4$2{LU20>P215UABe@ndVomp;g5EA`NUrOVLD&WE_3N1aZTEnsiFa4x?1rqaa!W zqsA#EUUV8drequ9s+I&%5=$Lf@-{E9&*To1w^*Pt4*X;y1I9`df7|(#UOdkzRW%V9 z_hY%olgj;Il=@z(#D#JgRXmNz@@+kcY2L)USdYn_a~Yre0|UL2bHsYUx+JU%$6;NR ztUW}dBQ}L&IpTqMY&ljSrgxUHd3}jRJn}M&^!)?S<^PCB9dsOzobViNh(`nrsIHit z>Ku#g)78E!4UP+r(mb{iMc_EL8}rznZ4<{>5q&$FD}lSE3u28!d5AOtz@vQVHBb`~ zyr><fJ|Z^LqQ=#k`#)=!mS~90ZY^JjaL+p%lmfc8dC1MsKn|ORDb7Z_*)D5=1vr6W zqhVFs2<6+N7H9X~d>mU}j+-o-%QUa;*{HQgSu;Nhn76sJmKN1|=o~}Z>&AS%O&P4Q z360&{es0#L=Ipl4;AP)!8sZ2<aP2<lYzDeZS&Lc*I99!S$hnVk7mH%y)>nCbEt9J& znJmAFAeB2HSJK%s{XF>QOMK)bmZ-^lEd4Ded<0R2L6E*Mr=eZ$<T|oUe^m(6V626n zcJ3@8Kz^IWZb*Ik9UgcGL{;+qKGx|i-{k?5%lf>8(o@SBu0*On@}vIPmuDV&mBR?) zNgTWaRXz?-g`<HgGYIrU6fb7ZPeUa>R$@9wj>|cNGC%cB{j{4GxvAPRx`fdMp9A7Z z)z19U*pIw{A4cn#vg;ow@o0iF7a!vg=owh~0rXFP1hN7vfD%{S2dv=B)OxJjyW&9H z75Bxv_Fd5ux2?O@_pRwSmVk5P`U}iq{90hn<F5&G=7@n9%n<|e2@che@kAdsT&_wQ zi(KFdiXY-10t{CUxqu!{y=}%8qz6(H35w1`974GbC_};`2X!A>My6q8OdGVZkm15+ zAPI;AWZg#I0J1g+aD|)z00A>HKo<bR)qpX8CTIgQ7HtC?01VDFtpaOdDr&n4py0&9 zwicaN8X8WUS_S|L)$&rj+R!pBuG%x;0DdjTBhGT(a+_L!le|MC0zg0yUlC>1Ru^qw zpPcQXpu6jWhuLC1Y-DwbD-E_ePhHmf@;X8cICP2r`o0DNg9gqD8khs*G>~zkkwG3n zdhMDdISD%Z{}m3%_jnzy@EQVC%_NmRbxO`B`C}#;8N^T(KK8<){0X|0&8co9&E-$g z>=u#H-f*7N;hY&N5p)|SzlUBFT&6gyUppu4$^Zw~@ZxGte};9h=ky|*+oB;{eylyK zgoDHbt7Y9szL%_f)~DioVl}64T>q$3<;xP^i#$&`o;QyBlM(ZE&-;AhkIaa^B*`Y5 z;VzShOg?1tlnGxOSBSn=ZJ>{zgh9M6>NdXR`d<Bk<lfGPD&lH${>s2P--@ISq6)Z* zpDy8DGS0{{kL+Ka!3`qpQHf>&SBMXSaNsmh_*+t2t;oom&A?e2+&Rk!~QmpWNT literal 0 HcmV?d00001 diff --git a/CoLo-AT/localization_algos/__pycache__/gs_ci_bound.cpython-35.pyc b/CoLo-AT/localization_algos/__pycache__/gs_ci_bound.cpython-35.pyc new file mode 100644 index 0000000000000000000000000000000000000000..42ed054d3cff24e9171b2cf3fe800327196a6610 GIT binary patch literal 3781 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 KB!Wo8G5-T`mkosg literal 0 HcmV?d00001 diff --git a/CoLo-AT/requests/.DS_Store b/CoLo-AT/requests/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..1b0c0949cb8e8abe564701939a56003c44d04be9 GIT binary patch literal 6148 zcmeHKu};H447H&{r7o2~g7HQsBxaVVDg!eg0BT{VR5j4F16vlp8{V@GA|XR3gpeJb zpL1tBcTdXQSwwWUf4mZzipUs^s5AzI-Gf6%;d~5K%dwK3+~c{F=Yd3jv5Rw`*qm3g zk?-?=y<OMK#kyX=gY;aZUA&vX5;>8rJjsjfp&MH_-y5vFMy3WfS?FcavtE|d!?MV- zI~#rL<>8D{l7VC(8At|_fkPO;nN1l_98)I)$v`sj#Q^t*f<~+YTSwbEpsWM{j?ira zo0nzAl)x&mb;JlnJrwAn8YPB$IQmQYRe`Oehl@t>q4DL<;zjN2$Y0D|v~o<H3?u_x z23Y$-rab>|@XHJq`R0-;8At~HD+4;3-_2)OU7W2y*2%NBpgo{b=-1MK!0ucE@WOrM e+y;HT(1u?X*g7%``z;)p7Xc$ARWk4k4155Odp;-t literal 0 HcmV?d00001 diff --git a/CoLo-AT/robots/.DS_Store b/CoLo-AT/robots/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..8fb90713bc54a375d609acc4e6aa35020f3f2633 GIT binary patch literal 6148 zcmeHKJx{|h5WRyA6$Md=&oKi76B08^RF#35A5iGW5UG%=A4p}&!e2q+_wfVZ-Pwcf zrV$fD=&m|H$MKzCUX^o9MBH1AuZg-u)P@VT_R!Rr+!x=l9Y4|mvgRmgNdx?@Xtpui z2224{;IAnl?`}um*@B)ae1F$>({ePNmP5>t@^Ayc{8B@YXum#+MoHX95_e2<DrpFp zS}~#t)?H%kk)~Mx71v{}AIbXsmgG74X`Yl3e>P?sgT+D_6=1nSub>yOlA4xqQcd0i zO->_DjhRwbBszt;j-p&M=p!0Efyoj+2ge#le3oR1)!v#VWut0`Yz`wf3tFp26Y!~H zAqt1l-R9_Yb<veC0$mUEndM&@1et1978RpN5HZ`L0QPLLw$uPKQ@|831wsX+K4fsg z++*cXO9vV~0svbWRzqJt79=L~n0u@o;tq^mDA0wnKVq;8$9U%F<sK`CE}YmOKG?6! z{)EE1I`U^aoj7-Bttns%#0u=X%dYJIx7*MEagbe^0;a&fQh;0i`+g6P<oDK%hm*ZF sgFnE<WM1V^L(ur`SUa*6pTpH~FOv>1_gFc^2+TeNR0eBIfnQbN8$}VyB>(^b literal 0 HcmV?d00001 diff --git a/CoLo-AT/simulation_process/__pycache__/sim_manager.cpython-35.pyc b/CoLo-AT/simulation_process/__pycache__/sim_manager.cpython-35.pyc index 019e67c982d57ed0600d4481d0dfbe282cbd1f2e..1446b273a517e5b091890606948321464c55be8b 100644 GIT binary patch delta 2408 zcmaJ?&2Lmy6hHTU%*UIVzWHoBtt}7*8BA+I0R;>oP(h$UX+UcA`P%n7ebf2seXpfW zW-^PSJ5BViNaSB&BmMzuV%(YN#@wYY3~|NAjlp=%ohhOwPWw*I$M2kb&pG#=`(x$j zDQhH?vA)j#w)o}Pr`BUD1^{R93#%f>jvr0H9e{-xcuDndftLa=4PFNB7_blr4>d#J z*>H!!LV~Q<D_PNGvS(lr`o;0n@H>ZJ_yLj*gRTJ{K-Ywh4mE%s0FS|%2K<K7Fs0F; z?CG$^{-f>2paW3Tpr%7720IuJBN@;!VMW9BjX9ZWT=d;=gZmA?8A&VLSgQHUk#p(% zLlbvUF=V3ZM^3ce_WPXYMy^cr)>12S>h6+X52YD2J%6hb7oTY3dvqSQ(e5w%!KTlh zz}v#0J_7o@a8qOA2d$J%V{~9KEyfPAEXy<TNc&UcY4J$kT$T0{|1ff+jZkI=AqHZy z;chwHZB~7mj8?fHuD0qPFJeTQdg5A*c!@O0fp0aEI(N2+Y)d^vPJC~iVq+q0UhXYZ z;ps=sc+!M-P{1bqqww=eqYB^E6t7Vex>#Wyyg@4r;E2Q0qZU=f8L$>3t!Kb>&&1-# z=D3CNc?wC7Q$1$qD<;n%BW)^rzsRb%e29=XnTC}*be7#_<g}JTpKtn3y-_hZ9Y|gv zk|SUOJK=b4=yEz(eUc!9?bhq9+fJ+Pb2kcF%_)F9g#Cu(SsMQiFoPOWto#c(KRdUa z#1Qlw!;gxkPU}O_Hm7<CO4(5<W4ct7B&A<76>mWYMFij-(V?4CrnoYt=}^|tJxynn z(OE|UJ(YP^)emNo$F8a$1ieVr16IW~GqCjsql)9<M;8l5)-e71T9knrUO>D-2-cuG zq#6|4-H8pIT@6|nafhf;yX|HN$W96<)C7w#2quVIz1Fb-yGb|lP!A<s7SUO<@jxY# z8;D(Ga0hwl<iLwTS*3tk7s!q}T$JI?x(L8?($Y{{D^g-!T!rszN~&Jyg9{Bqr_W%a zMlebbc63<8%!<%0L8nBCuIVaP@hKkBqq_;=0*J>zPb+Z^RANL^`Ql1tiq;u{DjxVE zbcTsR4DOPOIyQ*bLmPQw26?EBtDWLXjGW8eGI-e2G6X1((uh1o89t)~3k7tUAVJk7 zzq{WDYRqBj@?`k`8cz0$xc&fccH+Rl)96r5(xjzo?GcaSWgCYe)|uoOUcn)8*q#xW z5+|*{ucEk@Slqi;nr$95qyCi}jJt3<jQj?l!9y=5lHZ#A2ywq8U&yIT%U?v1j}Xa= z8Ec$Pi!0W({bT)msqU`kHTZD^$RQeJzJs%>#c?!B@s%|kyF#ur;wS6yA`UGD*mSux ztB6~d=B8T@JaxZu$f^0OFfy^+YBU_Y?CRR9DX0b?-%s%l&~ovHABJw#=ffz8wbZlO zW5|T7NI<h#h9$-4sY4abW;V;QtR7=Ame<m3pEk-$tfW1sl~@{qS%hX#|HZGV4|S8K zmlW&vXJZc;vTDLqG^tI`NMi-JTw(kzF_A5^yW)8E)}%vlwnExnG^csQT_ktK{p=g; zeervC%6^G}anG+ut`qT>#gW|e?5J4C9qZAqRZCPA`70#8O5_BQlSEDtc@2rw>wc4; zCh-i3TC*(^F0bBR^|>$gM$qJE$@n@M6XD>I<L5|si3km1ewoO5BC|N9fnOvxPvlJ` z_>63a(pcXJBCfip-pr>u&aV=bTF&PPZ&F=Cg_Rj()x+x4gD~Q66X-gTc|wjh{jJDp zx56-3s{2k9G<?T)Id`|Qn?cj5x0a>2m!CR)gIsQsiyHU@>^}kvWWW&soSrd$OF`6w zfv<AES=69pVUq2LgN65)AwDXc&?-ssP2o^Uo#Sb8q*Kn{C9)|V7xrDChXNl7J)KM! z(#g@Q+(1Po$0rH0f<&g98;$n%bi<A6!4e-QmDUP5KBFLwwu>+J1>qJaY*l}HY^8SP LEZ-wOF3$c1?Xej= delta 1860 zcma)7O>7%g5T3W|wVm~@|Ki`K4GnEt+>)x{uc!%Wpd}$~6h$hCb``p^z1wtMJ9gf# ztE5^hhZLzd1n<xba6()vE^y$8xNrd>A#N*i;Z}(Q2Tn-*%sj_bxnX%f&3tcW-psr= zyT8u-T+_>@sek&LyK$rPq5hYy0l*?Y{tc017fvO>NrE#5jt&o0u;Nlpfn&e}1{SWG zaJ`lm0~Rf*=tVz@px|>EAAb@dWH3+(9R}r4fzlubArdjTt)REE_JpAoPaxDZF{w_7 z1+^*~>a-q53Rs+_74b;@TX~|1N3nZTR))Jx*SqI(+YjnN-?vQP-Ey9);+$5RHPJOn z{b#uu@H8=F2d0~WrE+_RVAoQ8ltf>fXJzrFcCGsMQZq?g<FATO3?Es|XX0vNW>0~Z z3i|+qBw#hIn3TsLL>0i+z)@kK%cZznN>Qn;1cWKrXTY#@QqWT_kEmg=G4dEu!yxE2 zq&9I&19tYlVYp9AlN*jf`7ZX(Qvw58COAO<eFX+4C4)u>nWP~cF}S*c86qRI9b^tH zLmenofdv=@i^5db!!$S=+*N>2p@NB{@m_}323ZJkOT;WVaj43ivCJHVXp^NJSQrQX znDkbjYH$)V(vTUKtwC$dvH;;wz@8Mza{~*=!(d!?sWi$DgCJknJIrDrWQ!1Lax)B9 zh7diAu&F?php<2b+F&Zwq{`uN7`+6os>}u*8TnQR6}snP1w7QtbpPk6iX&3Fp`(UA z6Qqrf3TrO?-?nT&hIhjR@O_2u#ZhqZf?(RmL{_inHA?m1fN`?c?$3xH^`qiuE+_8j zbJZx-aqE7cyB&8ch;+Z-Xt~Y6Ub!N^&^Jy_Mp}=1xM1*ZqZ`=mdc$q|BhBCS1Ggh; zsqe%esk6^U$xSz~gWaBMWk?#jcsNKqJcBo$8{)h%!H$bnV|}{HX%_iugh+8Z{5cZR zG=8p)GuGueewO&wD6s|ci!sYAkufVPk;?rZ4xvm&8uJu|q1lw<$R|iTO2LxNZl`0D zeWK&~etpxmMziWUqGg^)pG7nO76K?bGsP$7nJJcGIhIx9EUy@BQYo^cauU%%gDf+d zseJXj`M#=6p^qi*=RQ)nF4Fn(#2ZM+7Y?U6|5KlDdwzfk^cEh9#r)05HDn`pyT<ro zOTLZ^55?E{Wu}XN@-vweWSDT=c2Ktiep1YhpN>r<Cw|b+&()scr%;w%lO5wVQqK@j zG5mRg8G>^Nk=k~*_<2%i#ZTkqy%$J)kyeua!BO#-h?^sLmEbjkmkBNqTqH0E<`E(l zk35QP_q~8G5J|7*+L5P6$uAL0XUP{4BJDPJw|!}Anf#KwEw6`7&Ec2H>I%V|2v%jw z-3jbo*Y~|f+qDC)<Jxu3>$_H><89gPZqpK<7iMlPk;gK5B=Kye9e<0sYXsK`RtT;l zSjld~$Je;$3_k`3-KQgp3clB|d%WAkyJ7pyJFe4jyIjl`-(zv{LGhxxR!fTSi)XU( z>K><%s|2>tOH-G16b)vmM%*YAmpQ%AYdKyfgLe=tW2@ik?Vjt@gSOY;1*9US>+_o= d#CrAM4u3`TO2;ztMCjudDXXvZiuky+^e;zbn2rDd diff --git a/CoLo-AT/simulation_process/__pycache__/state_recorder.cpython-35.pyc b/CoLo-AT/simulation_process/__pycache__/state_recorder.cpython-35.pyc index 74722abe96c6d241dd00ed16acf1fa8b595bc26b..ec8b4c20cdb13d306d53d8377670fe2adbf3ddb2 100644 GIT binary patch delta 1934 zcmZuxOK%%h6h3!6V~=OX<5v<Br{q-xafCt=o<fBJt*WjHQH6@Epy?!c;yUuHcP6Mo zj*OJ51&K|#5<+6Z3W<kURYgeU53uUCniWDqEV^LB58#|TaU6>M_~yIke)qeNbME}Q z^mWau<Z{+`kN?=Ll#i_6*)K<rX9iq{+YIVDa07T6ZUfYjWPqEBr-5gITZ&`Q2JR?s z0?z?=6-PlHctLRscoBF>aTJ$<PblsHp9DUoI1a1;e@gMQF7RpKRn<V38Q^DtKdshO z06q&>Yjg5jRvTQ})*<<%@j?6o{=)|deFl914~eD-HdBgd(8M5irJ#`zeMk(5($uxf z;4m4U8H&vz$qtDHw>CE*vPT0he)tw_YH*;#fpKiPi*p)qE}3Z8Jl)8iZdj^uGlXj# zaChuV&5_?|mAo59eiV2g`NHdVTKn?8_W3jESPz5Nj-c%dgMc<4vu13x{H>t%J&3Zr zp5mEV3<JyF`z^J_26+;aI=0YLL|)Wv2g0O4+VAy(4i_1cI0QKYmmrH!vqS+Ob+wpg zr{SqZg`!A;5<;w#S!~?$dfhNK_UTctG&{|x>9@Q{_}hW}!FcX$nFc7Bpi!kTh{#Js zC#JLVA7gKpW=nJ<vDrXz$8QHK@@{%#X`G})67EMn`KqG`*S^SHV6nWI`D~r?s)P8M ziuk~#^X})MkLh!ukGV*Q3k~eeL+27ihJ2X0qQA(Zv|KRDHdcm3WkK!p=Hy@p$tXlu zpr40Bjrythb^#9YhkBYg1C)I1KW=ALJMp7_%zqB1|Es|j9mm|0aX86wtdu<o;x<%J z{%P(Hrts`OcHdl^Z_l^7+w*}Cug}-q*ru~-2Vv+p0x?aeZ|t<Xel#i|p{Zz3G&_;1 z3sI#sPyvjqj9NhzMVu1B&Da**t**+Ye3YFV)U!btd8!%`np8wyRYFodRMK^OuSe<f zqWxY_Hygtt#F7!mzABf3%2~`2JW)rE2)4U|C&n)WJPYADlmT;?#fr?*3ao%E`Q}nt zmSzju5|dwA*DG`ZYD{hAw5`n9Gt84U`-6(Q0b>+j*^6vTKCrzC-J5Y9Yt9r4<Ynj1 z8%mK%ZjqUsRg=di-5Spq;`Geu6+4uyVdo8L=iYmsuH~3HNS!A&=GwztlUqyP&23cZ z3Xd5e|ISreS6c41Rl46}6l7T@OO>2JB}Xmt-jO?_v6B3$@CloeE5)lNsx@(*Y&4N@ zDT~X?uTc0^f|Hkyz_j3NqSxw1Vu@%f+-nO<{#Crp3UakH@lIXeX*SjruAh1doxEej zOJw*&=IyZA?zIAseD~y?(&1o|RPzK21d9YK1TPS*608x>dc<g<uTk?|g3%0$(Thr? z5N!O1XAm4LpM23NI4MVWmJ#WzCr=?iExVKJsERdw6Q;ub5I5~dH$+wbSbo3yHufmD L|4k#S6N~=>tNW0& delta 1782 zcmZuxOK%%h6h3zze$2yf*KyLMCIu<3RH?0?QVT6bMW|FFYE+>>8Z=CDC$5bhn>!O! zBUh<Ng<ye1xJ!NjuN@UT7W@Uo2F(Jofek`JNQf=x+=(5x*pD;cIrlr~KE5;e^XB&} zR?T&-!p)yHpD!I+zq0QR|5(_62(V!Q$Dav=P2efuX@wDFfM*p>1Gj+N3S-a#?kb!G zo&%m&7zqX7MTKqPCE#U+kz4^@RoDf70(ebfOl-^nuPY}Hd>;4$@RRV6!3Gvugxk#} z`6X-K+14TXnD{X8e;xnfw`fKTMgSfHO#udN#2C?_l>mJV42Vn`>M%G+vQkKvXSMqN zy)}re<FS|Dx(1sX+}Gj0ag^P`@&>$+)a<0Eoy@e8RnEH|Sm%JtXRA#+Hg^495a+lb z`C$-wU4JX+hOsMx?Y`gv_qhB;dvMB(jWFo$2-=>Yea5UEn~MAuh?4w3=jKTa!=pd- zEyi;4mRY@%CSJ-P41!%QQs@Yqj6=pHlR?w8L>?b;E{y!Bz1#BW8HA!hgd&X?Q5#oi z-tz|iFgAzkA%8HRvr9x#ru<o|#unvVYHx{(CBbBbDr8!?Gur1_`AuqVWfrAGl*bR@ zoP0Wcoqa9ura#sqL!Qp8?&}Oy!k!zAwW=LxK(UcUvZ+y&Di0JMVF%gpjtS!86BK7m zp-cuHfCKztJ~coJNI@)d<Y$zx>c6T8IK2z?$4NNpQ7kt}v?sCbB!)99p1hPDwyJnG z@8_<bZ}b}7{&ph};&P+u#x@;AF9<`w6^J=HKXa$s_amjd&{SX`+Pje;fkmARDLG5x zW<liTl67G}&IV!RB^oN2=$Ma$za1o+d++%ow)Y04f)@=30qQnRA(Uj;qQBKY>Qixw zrfra!>IHOTC+Xj$@Us972rptBn8PeqWR_N71w_f$Wh<Ke$9lU)`)M-OkJANZ*Ir<6 z%8%?fYN}&rF#ffd*`}O#yc+fStQwy>CzvO{a6Y`E7<$t6nPfL@9%rb_Jzt3FnXy*v zkR0Q|E!lBz)#x>vHOG%`h3&}S-L)FMW3w2mxp~%>?cDk~dI4uJXvQ+lsB{RF4z#N7 zqrY+s8Y@bt_<&XAC&k+(Y9Dcf%4j0N^6%oAGcQv38krm!x-7(1G_f)0_9M|GsE2z! zk(IBMZmg@9-=ZPhWYi5}eW%@u4K(MKy)boYOzs46g{nTGxgEB9gKpqat-k!NbWo@e z>nSqJWKPS&a{0AO1ZhFyc%?6qyFuo-=H&VibidP)hjha^EXAAxes#xio{>M77ps>s h9BX(v>ESTMZTit&QI}Tb_4%7PqSF6YR}L%7{{d@(cC`Qi diff --git a/CoLo-AT/simulation_process/sim_manager.py b/CoLo-AT/simulation_process/sim_manager.py index e454cb1..944b20f 100644 --- a/CoLo-AT/simulation_process/sim_manager.py +++ b/CoLo-AT/simulation_process/sim_manager.py @@ -14,10 +14,13 @@ class SimulationManager(): def __init__(self, name): self.name = name - def comm_controller(self, rbt_idx, num_robots): + def comm_controller(self, rbt_idx, num_robots, rsp): receiver_idx = rbt_idx - sender_idx = (rbt_idx+1)%(num_robots) - + #sender_idx = (rbt_idx+1)%(num_robots) + sender_idx = None + if rsp.get_type()=='measurement' and rsp.get_data()['subject_ID'] <= 5: + sender_id = rsp.get_data()['subject_ID'] + sender_idx = self.robot_labels.index(sender_id) return receiver_idx, sender_idx def simulated_communication(self, receiver_status, sender_status): @@ -39,13 +42,22 @@ class SimulationManager(): else: return False + def allow_operation(self, rsp): + if rsp.get_type()=='measurement': + rbt_idx = rsp.get_robot_index() + rsp_dasa = rsp.get_data() + if rsp_dasa['subject_ID'] > 5 and self.robot_labels[rbt_idx] in self.robots_cant_observe_lm: + return False + return True + - def sim_process_native(self, robot_labels, dm, robot_system, state_recorder, simulated_comm = True, comm = True, simple_plot = False): + def sim_process_native(self, robot_labels, dm, robot_system, state_recorder, simulated_comm = True, comm = True, simple_plot = False, robots_cant_observe_lm = None): #dm: dataset manager print('******** Simulation Process Started! ********') print('communication: ', comm) self.robot_labels = robot_labels self.robot_system = robot_system + self.robots_cant_observe_lm = robots_cant_observe_lm start_time = dm.get_start_time() duration = dm.get_duration() @@ -73,33 +85,38 @@ class SimulationManager(): break if valid == False : break - robot_state = robot_system.localization_update(rsp) - state_var.append(robot_state['state variance']) - state_recorder.record_state(rsp, robot_state) + + if self.allow_operation(rsp): + robot_state = robot_system.localization_update(rsp) + state_var.append(robot_state['state variance']) + state_recorder.record_state(rsp, robot_state) # communication protocall + comm_rsp = None if comm: if rsp.get_type()=='measurement': rbt_idx = rsp.get_robot_index() - receiver_idx, sender_idx = self.comm_controller(rbt_idx, self.robot_system.num_robots) - - receiver_gt = dm.get_robot_groundtruth(self.time, receiver_idx) - sender_gt = dm.get_robot_groundtruth(self.time, sender_idx) - - if simulated_comm and self.simulated_communication([sender_idx, sender_gt], [receiver_idx, receiver_gt]): - # simulated communication - comm_rsp = request_response.Comm_req_resp(self.time, receiver_idx) - message = comm_rsp.get_message() - - sender_id = robot_labels[sender_idx] - message['data'] = {'subject_ID':sender_id} - message['groundtruth'] = rsp.get_groundtruth - comm_rsp.set_message(message) - - robot_state = robot_system.localization_update(comm_rsp) - state_var.append(robot_state['state variance']) - state_recorder.record_state(rsp, robot_state) + receiver_idx, sender_idx = self.comm_controller(rbt_idx, self.robot_system.num_robots, rsp) + + if sender_idx != None and receiver_idx != None: + receiver_gt = dm.get_robot_groundtruth(self.time, receiver_idx) + sender_gt = dm.get_robot_groundtruth(self.time, sender_idx) + + if simulated_comm and self.simulated_communication([sender_idx, sender_gt], [receiver_idx, receiver_gt]): + # simulated communication + comm_rsp = request_response.Comm_req_resp(self.time, receiver_idx) + message = comm_rsp.get_message() + + sender_id = robot_labels[sender_idx] + message['data'] = {'subject_ID':sender_id} + message['groundtruth'] = rsp.get_groundtruth + comm_rsp.set_message(message) + + if comm_rsp != None: + robot_state = robot_system.localization_update(comm_rsp) + state_var.append(robot_state['state variance']) + state_recorder.record_state(rsp, robot_state) if simple_plot: state_recorder.simple_plot(plot_title=self.name) -- GitLab